@babel/plugin-proposal-decorators
Advanced tools
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" | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
11008
153
+ Added@babel/code-frame@7.0.0-beta.44(transitive)
+ Added@babel/core@7.0.0-beta.44(transitive)
+ Added@babel/generator@7.0.0-beta.44(transitive)
+ Added@babel/helper-function-name@7.0.0-beta.44(transitive)
+ Added@babel/helper-get-function-arity@7.0.0-beta.44(transitive)
+ Added@babel/helper-plugin-utils@7.0.0-beta.44(transitive)
+ Added@babel/helper-split-export-declaration@7.0.0-beta.44(transitive)
+ Added@babel/helpers@7.0.0-beta.44(transitive)
+ Added@babel/highlight@7.0.0-beta.44(transitive)
+ Added@babel/plugin-syntax-decorators@7.0.0-beta.44(transitive)
+ Added@babel/template@7.0.0-beta.44(transitive)
+ Added@babel/traverse@7.0.0-beta.44(transitive)
+ Added@babel/types@7.0.0-beta.44(transitive)
+ Addedbabylon@7.0.0-beta.44(transitive)
- Removed@babel/code-frame@7.0.0-beta.43(transitive)
- Removed@babel/core@7.0.0-beta.43(transitive)
- Removed@babel/generator@7.0.0-beta.43(transitive)
- Removed@babel/helper-function-name@7.0.0-beta.43(transitive)
- Removed@babel/helper-get-function-arity@7.0.0-beta.43(transitive)
- Removed@babel/helper-plugin-utils@7.0.0-beta.43(transitive)
- Removed@babel/helper-split-export-declaration@7.0.0-beta.43(transitive)
- Removed@babel/helpers@7.0.0-beta.43(transitive)
- Removed@babel/highlight@7.0.0-beta.43(transitive)
- Removed@babel/plugin-syntax-decorators@7.0.0-beta.43(transitive)
- Removed@babel/template@7.0.0-beta.43(transitive)
- Removed@babel/traverse@7.0.0-beta.43(transitive)
- Removed@babel/types@7.0.0-beta.43(transitive)
- Removedbabylon@7.0.0-beta.43(transitive)