Socket
Socket
Sign inDemoInstall

@babel/plugin-proposal-decorators

Package Overview
Dependencies
Maintainers
6
Versions
124
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@babel/plugin-proposal-decorators - npm Package Compare versions

Comparing version 7.0.0-beta.43 to 7.0.0-beta.44

111

lib/index.js

@@ -9,5 +9,5 @@ "use strict";

function _helperPluginUtils() {
const data = require("@babel/helper-plugin-utils");
var data = require("@babel/helper-plugin-utils");
_helperPluginUtils = function () {
_helperPluginUtils = function _helperPluginUtils() {
return data;

@@ -20,5 +20,5 @@ };

function _pluginSyntaxDecorators() {
const data = _interopRequireDefault(require("@babel/plugin-syntax-decorators"));
var data = _interopRequireDefault(require("@babel/plugin-syntax-decorators"));
_pluginSyntaxDecorators = function () {
_pluginSyntaxDecorators = function _pluginSyntaxDecorators() {
return data;

@@ -31,5 +31,5 @@ };

function _core() {
const data = require("@babel/core");
var data = require("@babel/core");
_core = function () {
_core = function _core() {
return data;

@@ -43,33 +43,22 @@ };

const buildClassDecorator = (0, _core().template)(`
DECORATOR(CLASS_REF = INNER) || CLASS_REF;
`);
const buildClassPrototype = (0, _core().template)(`
CLASS_REF.prototype;
`);
const buildGetDescriptor = (0, _core().template)(`
Object.getOwnPropertyDescriptor(TARGET, PROPERTY);
`);
const buildGetObjectInitializer = (0, _core().template)(`
(TEMP = Object.getOwnPropertyDescriptor(TARGET, PROPERTY), (TEMP = TEMP ? TEMP.value : undefined), {
enumerable: true,
configurable: true,
writable: true,
initializer: function(){
return TEMP;
}
})
`);
var buildClassDecorator = (0, _core().template)("\n DECORATOR(CLASS_REF = INNER) || CLASS_REF;\n");
var buildClassPrototype = (0, _core().template)("\n CLASS_REF.prototype;\n");
var buildGetDescriptor = (0, _core().template)("\n Object.getOwnPropertyDescriptor(TARGET, PROPERTY);\n");
var buildGetObjectInitializer = (0, _core().template)("\n (TEMP = Object.getOwnPropertyDescriptor(TARGET, PROPERTY), (TEMP = TEMP ? TEMP.value : undefined), {\n enumerable: true,\n configurable: true,\n writable: true,\n initializer: function(){\n return TEMP;\n }\n })\n");
var _default = (0, _helperPluginUtils().declare)(api => {
var _default = (0, _helperPluginUtils().declare)(function (api) {
api.assertVersion(7);
const WARNING_CALLS = new WeakSet();
var WARNING_CALLS = new WeakSet();
function applyEnsureOrdering(path) {
const decorators = (path.isClass() ? [path].concat(path.get("body.body")) : path.get("properties")).reduce((acc, prop) => acc.concat(prop.node.decorators || []), []);
const identDecorators = decorators.filter(decorator => !_core().types.isIdentifier(decorator.expression));
var decorators = (path.isClass() ? [path].concat(path.get("body.body")) : path.get("properties")).reduce(function (acc, prop) {
return acc.concat(prop.node.decorators || []);
}, []);
var identDecorators = decorators.filter(function (decorator) {
return !_core().types.isIdentifier(decorator.expression);
});
if (identDecorators.length === 0) return;
return _core().types.sequenceExpression(identDecorators.map(decorator => {
const expression = decorator.expression;
const id = decorator.expression = path.scope.generateDeclaredUidIdentifier("dec");
return _core().types.sequenceExpression(identDecorators.map(function (decorator) {
var expression = decorator.expression;
var id = decorator.expression = path.scope.generateDeclaredUidIdentifier("dec");
return _core().types.assignmentExpression("=", id, expression);

@@ -81,6 +70,8 @@ }).concat([path.node]));

if (!hasClassDecorators(classPath.node)) return;
const decorators = classPath.node.decorators || [];
var decorators = classPath.node.decorators || [];
classPath.node.decorators = null;
const name = classPath.scope.generateDeclaredUidIdentifier("class");
return decorators.map(dec => dec.expression).reverse().reduce(function (acc, decorator) {
var name = classPath.scope.generateDeclaredUidIdentifier("class");
return decorators.map(function (dec) {
return dec.expression;
}).reverse().reduce(function (acc, decorator) {
return buildClassDecorator({

@@ -104,3 +95,5 @@ CLASS_REF: _core().types.cloneNode(name),

function hasMethodDecorators(body) {
return body.some(node => node.decorators && node.decorators.length);
return body.some(function (node) {
return node.decorators && node.decorators.length;
});
}

@@ -114,5 +107,5 @@

function applyTargetDecorators(path, state, decoratedProps) {
const name = path.scope.generateDeclaredUidIdentifier(path.isClass() ? "class" : "obj");
const exprs = decoratedProps.reduce(function (acc, node) {
const decorators = node.decorators || [];
var name = path.scope.generateDeclaredUidIdentifier(path.isClass() ? "class" : "obj");
var exprs = decoratedProps.reduce(function (acc, node) {
var decorators = node.decorators || [];
node.decorators = null;

@@ -125,4 +118,4 @@ if (decorators.length === 0) return acc;

const property = _core().types.isLiteral(node.key) ? node.key : _core().types.stringLiteral(node.key.name);
const target = path.isClass() && !node.static ? buildClassPrototype({
var property = _core().types.isLiteral(node.key) ? node.key : _core().types.stringLiteral(node.key.name);
var target = path.isClass() && !node.static ? buildClassPrototype({
CLASS_REF: name

@@ -134,9 +127,13 @@ }).expression : name;

})) {
const descriptor = path.scope.generateDeclaredUidIdentifier("descriptor");
const initializer = node.value ? _core().types.functionExpression(null, [], _core().types.blockStatement([_core().types.returnStatement(node.value)])) : _core().types.nullLiteral();
var descriptor = path.scope.generateDeclaredUidIdentifier("descriptor");
var initializer = node.value ? _core().types.functionExpression(null, [], _core().types.blockStatement([_core().types.returnStatement(node.value)])) : _core().types.nullLiteral();
node.value = _core().types.callExpression(state.addHelper("initializerWarningHelper"), [descriptor, _core().types.thisExpression()]);
WARNING_CALLS.add(node.value);
acc = acc.concat([_core().types.assignmentExpression("=", descriptor, _core().types.callExpression(state.addHelper("applyDecoratedDescriptor"), [_core().types.cloneNode(target), _core().types.cloneNode(property), _core().types.arrayExpression(decorators.map(dec => _core().types.cloneNode(dec.expression))), _core().types.objectExpression([_core().types.objectProperty(_core().types.identifier("enumerable"), _core().types.booleanLiteral(true)), _core().types.objectProperty(_core().types.identifier("initializer"), initializer)])]))]);
acc = acc.concat([_core().types.assignmentExpression("=", descriptor, _core().types.callExpression(state.addHelper("applyDecoratedDescriptor"), [_core().types.cloneNode(target), _core().types.cloneNode(property), _core().types.arrayExpression(decorators.map(function (dec) {
return _core().types.cloneNode(dec.expression);
})), _core().types.objectExpression([_core().types.objectProperty(_core().types.identifier("enumerable"), _core().types.booleanLiteral(true)), _core().types.objectProperty(_core().types.identifier("initializer"), initializer)])]))]);
} else {
acc = acc.concat(_core().types.callExpression(state.addHelper("applyDecoratedDescriptor"), [_core().types.cloneNode(target), _core().types.cloneNode(property), _core().types.arrayExpression(decorators.map(dec => _core().types.cloneNode(dec.expression))), _core().types.isObjectProperty(node) || _core().types.isClassProperty(node, {
acc = acc.concat(_core().types.callExpression(state.addHelper("applyDecoratedDescriptor"), [_core().types.cloneNode(target), _core().types.cloneNode(property), _core().types.arrayExpression(decorators.map(function (dec) {
return _core().types.cloneNode(dec.expression);
})), _core().types.isObjectProperty(node) || _core().types.isClassProperty(node, {
static: true

@@ -161,6 +158,4 @@ }) ? buildGetObjectInitializer({

visitor: {
ClassDeclaration(path) {
const {
node
} = path;
ClassDeclaration: function ClassDeclaration(path) {
var node = path.node;

@@ -171,5 +166,5 @@ if (!hasClassDecorators(node) && !hasMethodDecorators(node.body.body)) {

const ref = node.id ? _core().types.cloneNode(node.id) : path.scope.generateUidIdentifier("class");
var ref = node.id ? _core().types.cloneNode(node.id) : path.scope.generateUidIdentifier("class");
const letDeclaration = _core().types.variableDeclaration("let", [_core().types.variableDeclarator(ref, _core().types.toExpression(node))]);
var letDeclaration = _core().types.variableDeclaration("let", [_core().types.variableDeclarator(ref, _core().types.toExpression(node))]);

@@ -182,18 +177,14 @@ if (path.parentPath.isExportDefaultDeclaration()) {

},
ClassExpression(path, state) {
const decoratedClass = applyEnsureOrdering(path) || applyClassDecorators(path, state) || applyMethodDecorators(path, state);
ClassExpression: function ClassExpression(path, state) {
var decoratedClass = applyEnsureOrdering(path) || applyClassDecorators(path, state) || applyMethodDecorators(path, state);
if (decoratedClass) path.replaceWith(decoratedClass);
},
ObjectExpression(path, state) {
const decoratedObject = applyEnsureOrdering(path) || applyObjectDecorators(path, state);
ObjectExpression: function ObjectExpression(path, state) {
var decoratedObject = applyEnsureOrdering(path) || applyObjectDecorators(path, state);
if (decoratedObject) path.replaceWith(decoratedObject);
},
AssignmentExpression(path, state) {
AssignmentExpression: function AssignmentExpression(path, state) {
if (!WARNING_CALLS.has(path.node.right)) return;
path.replaceWith(_core().types.callExpression(state.addHelper("initializerDefineProperty"), [_core().types.cloneNode(path.get("left.object").node), _core().types.stringLiteral(path.get("left.property").node.name), _core().types.cloneNode(path.get("right.arguments")[0].node), _core().types.cloneNode(path.get("right.arguments")[1].node)]));
}
}

@@ -200,0 +191,0 @@ };

{
"name": "@babel/plugin-proposal-decorators",
"version": "7.0.0-beta.43",
"version": "7.0.0-beta.44",
"author": "Logan Smyth <loganfsmyth@gmail.com>",

@@ -15,12 +15,12 @@ "license": "MIT",

"dependencies": {
"@babel/helper-plugin-utils": "7.0.0-beta.43",
"@babel/plugin-syntax-decorators": "7.0.0-beta.43"
"@babel/helper-plugin-utils": "7.0.0-beta.44",
"@babel/plugin-syntax-decorators": "7.0.0-beta.44"
},
"peerDependencies": {
"@babel/core": "7.0.0-beta.43"
"@babel/core": "7.0.0-beta.44"
},
"devDependencies": {
"@babel/core": "7.0.0-beta.43",
"@babel/helper-plugin-test-runner": "7.0.0-beta.43"
"@babel/core": "7.0.0-beta.44",
"@babel/helper-plugin-test-runner": "7.0.0-beta.44"
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc