mirror of
https://github.com/idanoo/GoScrobble
synced 2025-07-01 05:32:18 +00:00
0.2.0 - Mid migration
This commit is contained in:
parent
139e6a915e
commit
7e38fdbd7d
42393 changed files with 5358157 additions and 62 deletions
19
web/node_modules/jsx-ast-utils/lib/values/expressions/ArrayExpression.js
generated
vendored
Normal file
19
web/node_modules/jsx-ast-utils/lib/values/expressions/ArrayExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromArrayExpression;
|
||||
/**
|
||||
* Extractor function for an ArrayExpression type value node.
|
||||
* An array expression is an expression with [] syntax.
|
||||
*
|
||||
* @returns - An array of the extracted elements.
|
||||
*/
|
||||
function extractValueFromArrayExpression(value) {
|
||||
// eslint-disable-next-line global-require
|
||||
var getValue = require('./index.js').default;
|
||||
return value.elements.map(function (element) {
|
||||
return getValue(element);
|
||||
});
|
||||
}
|
19
web/node_modules/jsx-ast-utils/lib/values/expressions/AssignmentExpression.js
generated
vendored
Normal file
19
web/node_modules/jsx-ast-utils/lib/values/expressions/AssignmentExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromAssignmentExpression;
|
||||
/**
|
||||
* Extractor function for a AssignmentExpression type value node.
|
||||
* An assignment expression looks like `x = y` or `x += y` in expression position.
|
||||
* This will return the assignment as the value.
|
||||
*
|
||||
* @param - value - AST Value object with type `AssignmentExpression`
|
||||
* @returns - The extracted value converted to correct type.
|
||||
*/
|
||||
function extractValueFromAssignmentExpression(value) {
|
||||
// eslint-disable-next-line global-require
|
||||
var getValue = require('./index.js').default;
|
||||
return getValue(value.left) + ' ' + value.operator + ' ' + getValue(value.right);
|
||||
}
|
78
web/node_modules/jsx-ast-utils/lib/values/expressions/BinaryExpression.js
generated
vendored
Normal file
78
web/node_modules/jsx-ast-utils/lib/values/expressions/BinaryExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,78 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromBinaryExpression;
|
||||
/**
|
||||
* Extractor function for a BinaryExpression type value node.
|
||||
* A binary expression has a left and right side separated by an operator
|
||||
* such as `a + b`.
|
||||
*
|
||||
* @param - value - AST Value object with type `BinaryExpression`
|
||||
* @returns - The extracted value converted to correct type.
|
||||
*/
|
||||
function extractValueFromBinaryExpression(value) {
|
||||
// eslint-disable-next-line global-require
|
||||
var getValue = require('./index.js').default;
|
||||
var operator = value.operator,
|
||||
left = value.left,
|
||||
right = value.right;
|
||||
|
||||
var leftVal = getValue(left);
|
||||
var rightVal = getValue(right);
|
||||
|
||||
switch (operator) {
|
||||
case '==':
|
||||
return leftVal == rightVal; // eslint-disable-line
|
||||
case '!=':
|
||||
return leftVal != rightVal; // eslint-disable-line
|
||||
case '===':
|
||||
return leftVal === rightVal;
|
||||
case '!==':
|
||||
return leftVal !== rightVal;
|
||||
case '<':
|
||||
return leftVal < rightVal;
|
||||
case '<=':
|
||||
return leftVal <= rightVal;
|
||||
case '>':
|
||||
return leftVal > rightVal;
|
||||
case '>=':
|
||||
return leftVal >= rightVal;
|
||||
case '<<':
|
||||
return leftVal << rightVal; // eslint-disable-line no-bitwise
|
||||
case '>>':
|
||||
return leftVal >> rightVal; // eslint-disable-line no-bitwise
|
||||
case '>>>':
|
||||
return leftVal >>> rightVal; // eslint-disable-line no-bitwise
|
||||
case '+':
|
||||
return leftVal + rightVal;
|
||||
case '-':
|
||||
return leftVal - rightVal;
|
||||
case '*':
|
||||
return leftVal * rightVal;
|
||||
case '/':
|
||||
return leftVal / rightVal;
|
||||
case '%':
|
||||
return leftVal % rightVal;
|
||||
case '|':
|
||||
return leftVal | rightVal; // eslint-disable-line no-bitwise
|
||||
case '^':
|
||||
return leftVal ^ rightVal; // eslint-disable-line no-bitwise
|
||||
case '&':
|
||||
return leftVal & rightVal; // eslint-disable-line no-bitwise
|
||||
case 'in':
|
||||
try {
|
||||
return leftVal in rightVal;
|
||||
} catch (err) {
|
||||
return false;
|
||||
}
|
||||
case 'instanceof':
|
||||
if (typeof rightVal !== 'function') {
|
||||
return false;
|
||||
}
|
||||
return leftVal instanceof rightVal;
|
||||
default:
|
||||
return undefined;
|
||||
}
|
||||
}
|
30
web/node_modules/jsx-ast-utils/lib/values/expressions/BindExpression.js
generated
vendored
Normal file
30
web/node_modules/jsx-ast-utils/lib/values/expressions/BindExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,30 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromBindExpression;
|
||||
/**
|
||||
* Extractor function for a BindExpression type value node.
|
||||
* A bind expression looks like `::this.foo`
|
||||
* This will return `this.foo.bind(this)` as the value to indicate its existence,
|
||||
* since we can not execute the function this.foo.bind(this) in a static environment.
|
||||
*
|
||||
* @param - value - AST Value object with type `BindExpression`
|
||||
* @returns - The extracted value converted to correct type.
|
||||
*/
|
||||
function extractValueFromBindExpression(value) {
|
||||
// eslint-disable-next-line global-require
|
||||
var getValue = require('./index.js').default;
|
||||
var callee = getValue(value.callee);
|
||||
|
||||
// If value.object === null, the callee must be a MemberExpression.
|
||||
// https://github.com/babel/babylon/blob/master/ast/spec.md#bindexpression
|
||||
var object = value.object === null ? getValue(value.callee.object) : getValue(value.object);
|
||||
|
||||
if (value.object && value.object.property) {
|
||||
return object + '.' + callee + '.bind(' + object + ')';
|
||||
}
|
||||
|
||||
return callee + '.bind(' + object + ')';
|
||||
}
|
23
web/node_modules/jsx-ast-utils/lib/values/expressions/CallExpression.js
generated
vendored
Normal file
23
web/node_modules/jsx-ast-utils/lib/values/expressions/CallExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromCallExpression;
|
||||
/**
|
||||
* Extractor function for a CallExpression type value node.
|
||||
* A call expression looks like `bar()`
|
||||
* This will return `bar` as the value to indicate its existence,
|
||||
* since we can not execute the function bar in a static environment.
|
||||
*
|
||||
* @param - value - AST Value object with type `CallExpression`
|
||||
* @returns - The extracted value converted to correct type.
|
||||
*/
|
||||
function extractValueFromCallExpression(value) {
|
||||
// eslint-disable-next-line global-require
|
||||
var getValue = require('./index.js').default;
|
||||
var args = Array.isArray(value.arguments) ? value.arguments.map(function (x) {
|
||||
return getValue(x);
|
||||
}).join(', ') : '';
|
||||
return '' + getValue(value.callee) + (value.optional ? '?.' : '') + '(' + args + ')';
|
||||
}
|
19
web/node_modules/jsx-ast-utils/lib/values/expressions/ChainExpression.js
generated
vendored
Normal file
19
web/node_modules/jsx-ast-utils/lib/values/expressions/ChainExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromChainExpression;
|
||||
/**
|
||||
* Extractor function for a ChainExpression type value node.
|
||||
* A member expression is accessing a property on an object `obj.property`.
|
||||
*
|
||||
* @param - value - AST Value object with type `ChainExpression`
|
||||
* @returns - The extracted value converted to correct type
|
||||
* and maintaing `obj?.property` convention.
|
||||
*/
|
||||
function extractValueFromChainExpression(value) {
|
||||
// eslint-disable-next-line global-require
|
||||
var getValue = require('./index.js').default;
|
||||
return getValue(value.expression);
|
||||
}
|
22
web/node_modules/jsx-ast-utils/lib/values/expressions/ConditionalExpression.js
generated
vendored
Normal file
22
web/node_modules/jsx-ast-utils/lib/values/expressions/ConditionalExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromConditionalExpression;
|
||||
/**
|
||||
* Extractor function for a ConditionalExpression type value node.
|
||||
*
|
||||
* @param - value - AST Value object with type `ConditionalExpression`
|
||||
* @returns - The extracted value converted to correct type.
|
||||
*/
|
||||
function extractValueFromConditionalExpression(value) {
|
||||
// eslint-disable-next-line global-require
|
||||
var getValue = require('./index.js').default;
|
||||
var test = value.test,
|
||||
alternate = value.alternate,
|
||||
consequent = value.consequent;
|
||||
|
||||
|
||||
return getValue(test) ? getValue(consequent) : getValue(alternate);
|
||||
}
|
19
web/node_modules/jsx-ast-utils/lib/values/expressions/FunctionExpression.js
generated
vendored
Normal file
19
web/node_modules/jsx-ast-utils/lib/values/expressions/FunctionExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromFunctionExpression;
|
||||
/**
|
||||
* Extractor function for a FunctionExpression type value node.
|
||||
* Statically, we can't execute the given function, so just return a function
|
||||
* to indicate that the value is present.
|
||||
*
|
||||
* @param - value - AST Value object with type `FunctionExpression`
|
||||
* @returns - The extracted value converted to correct type.
|
||||
*/
|
||||
function extractValueFromFunctionExpression(value) {
|
||||
return function () {
|
||||
return value;
|
||||
};
|
||||
}
|
35
web/node_modules/jsx-ast-utils/lib/values/expressions/Identifier.js
generated
vendored
Normal file
35
web/node_modules/jsx-ast-utils/lib/values/expressions/Identifier.js
generated
vendored
Normal file
|
@ -0,0 +1,35 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromIdentifier;
|
||||
var JS_RESERVED = {
|
||||
Array: Array,
|
||||
Date: Date,
|
||||
Infinity: Infinity,
|
||||
Math: Math,
|
||||
Number: Number,
|
||||
Object: Object,
|
||||
String: String,
|
||||
undefined: undefined
|
||||
};
|
||||
|
||||
/**
|
||||
* Extractor function for a Identifier type value node.
|
||||
* An Identifier is usually a reference to a variable.
|
||||
* Just return variable name to determine its existence.
|
||||
*
|
||||
* @param - value - AST Value object with type `Identifier`
|
||||
* @returns - The extracted value converted to correct type.
|
||||
*/
|
||||
function extractValueFromIdentifier(value) {
|
||||
var name = value.name;
|
||||
|
||||
|
||||
if (Object.hasOwnProperty.call(JS_RESERVED, name)) {
|
||||
return JS_RESERVED[name];
|
||||
}
|
||||
|
||||
return name;
|
||||
}
|
33
web/node_modules/jsx-ast-utils/lib/values/expressions/LogicalExpression.js
generated
vendored
Normal file
33
web/node_modules/jsx-ast-utils/lib/values/expressions/LogicalExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromLogicalExpression;
|
||||
/**
|
||||
* Extractor function for a LogicalExpression type value node.
|
||||
* A logical expression is `a && b` or `a || b`, so we evaluate both sides
|
||||
* and return the extracted value of the expression.
|
||||
*
|
||||
* @param - value - AST Value object with type `LogicalExpression`
|
||||
* @returns - The extracted value converted to correct type.
|
||||
*/
|
||||
function extractValueFromLogicalExpression(value) {
|
||||
// eslint-disable-next-line global-require
|
||||
var getValue = require('./index.js').default;
|
||||
var operator = value.operator,
|
||||
left = value.left,
|
||||
right = value.right;
|
||||
|
||||
var leftVal = getValue(left);
|
||||
var rightVal = getValue(right);
|
||||
|
||||
if (operator === '&&') {
|
||||
return leftVal && rightVal;
|
||||
}
|
||||
if (operator === '??') {
|
||||
// return leftVal ?? rightVal; // TODO: update to babel 7
|
||||
return leftVal === null || typeof leftVal === 'undefined' ? rightVal : leftVal;
|
||||
}
|
||||
return leftVal || rightVal;
|
||||
}
|
19
web/node_modules/jsx-ast-utils/lib/values/expressions/MemberExpression.js
generated
vendored
Normal file
19
web/node_modules/jsx-ast-utils/lib/values/expressions/MemberExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromMemberExpression;
|
||||
/**
|
||||
* Extractor function for a MemberExpression type value node.
|
||||
* A member expression is accessing a property on an object `obj.property`.
|
||||
*
|
||||
* @param - value - AST Value object with type `MemberExpression`
|
||||
* @returns - The extracted value converted to correct type
|
||||
* and maintaing `obj.property` convention.
|
||||
*/
|
||||
function extractValueFromMemberExpression(value) {
|
||||
// eslint-disable-next-line global-require
|
||||
var getValue = require('./index.js').default;
|
||||
return '' + getValue(value.object) + (value.optional ? '?.' : '.') + getValue(value.property);
|
||||
}
|
15
web/node_modules/jsx-ast-utils/lib/values/expressions/NewExpression.js
generated
vendored
Normal file
15
web/node_modules/jsx-ast-utils/lib/values/expressions/NewExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,15 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromNewExpression;
|
||||
/**
|
||||
* Extractor function for a NewExpression type value node.
|
||||
* A new expression instantiates an object with `new` keyword.
|
||||
*
|
||||
* @returns - an empty object.
|
||||
*/
|
||||
function extractValueFromNewExpression() {
|
||||
return new Object(); // eslint-disable-line
|
||||
}
|
38
web/node_modules/jsx-ast-utils/lib/values/expressions/ObjectExpression.js
generated
vendored
Normal file
38
web/node_modules/jsx-ast-utils/lib/values/expressions/ObjectExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,38 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
||||
|
||||
exports.default = extractValueFromObjectExpression;
|
||||
|
||||
var _object = require('object.assign');
|
||||
|
||||
var _object2 = _interopRequireDefault(_object);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
/**
|
||||
* Extractor function for an ObjectExpression type value node.
|
||||
* An object expression is using {}.
|
||||
*
|
||||
* @returns - a representation of the object
|
||||
*/
|
||||
function extractValueFromObjectExpression(value) {
|
||||
// eslint-disable-next-line global-require
|
||||
var getValue = require('./index.js').default;
|
||||
return value.properties.reduce(function (obj, property) {
|
||||
var object = _extends({}, obj);
|
||||
// Support types: SpreadProperty and ExperimentalSpreadProperty
|
||||
if (/^(?:Experimental)?Spread(?:Property|Element)$/.test(property.type)) {
|
||||
if (property.argument.type === 'ObjectExpression') {
|
||||
return (0, _object2.default)(object, extractValueFromObjectExpression(property.argument));
|
||||
}
|
||||
} else {
|
||||
object[getValue(property.key)] = getValue(property.value);
|
||||
}
|
||||
return object;
|
||||
}, {});
|
||||
}
|
21
web/node_modules/jsx-ast-utils/lib/values/expressions/OptionalCallExpression.js
generated
vendored
Normal file
21
web/node_modules/jsx-ast-utils/lib/values/expressions/OptionalCallExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromOptionalCallExpression;
|
||||
/**
|
||||
* Extractor function for a OptionalCallExpression type value node.
|
||||
* A member expression is accessing a property on an object `obj.property` and invoking it.
|
||||
*
|
||||
* @param - value - AST Value object with type `OptionalCallExpression`
|
||||
* @returns - The extracted value converted to correct type
|
||||
* and maintaing `obj.property?.()` convention.
|
||||
*/
|
||||
function extractValueFromOptionalCallExpression(value) {
|
||||
// eslint-disable-next-line global-require
|
||||
var getValue = require('./index.js').default;
|
||||
return getValue(value.callee) + '?.(' + value.arguments.map(function (x) {
|
||||
return getValue(x);
|
||||
}).join(', ') + ')';
|
||||
}
|
19
web/node_modules/jsx-ast-utils/lib/values/expressions/OptionalMemberExpression.js
generated
vendored
Normal file
19
web/node_modules/jsx-ast-utils/lib/values/expressions/OptionalMemberExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromOptionalMemberExpression;
|
||||
/**
|
||||
* Extractor function for a OptionalMemberExpression type value node.
|
||||
* A member expression is accessing a property on an object `obj.property`.
|
||||
*
|
||||
* @param - value - AST Value object with type `OptionalMemberExpression`
|
||||
* @returns - The extracted value converted to correct type
|
||||
* and maintaing `obj?.property` convention.
|
||||
*/
|
||||
function extractValueFromOptionalMemberExpression(value) {
|
||||
// eslint-disable-next-line global-require
|
||||
var getValue = require('./index.js').default;
|
||||
return getValue(value.object) + '?.' + getValue(value.property);
|
||||
}
|
21
web/node_modules/jsx-ast-utils/lib/values/expressions/SequenceExpression.js
generated
vendored
Normal file
21
web/node_modules/jsx-ast-utils/lib/values/expressions/SequenceExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromSequenceExpression;
|
||||
/**
|
||||
* Extractor function for a SequenceExpression type value node.
|
||||
* A Sequence expression is an object with an attribute named
|
||||
* expressions which contains an array of different types
|
||||
* of expression objects.
|
||||
*
|
||||
* @returns - An array of the extracted elements.
|
||||
*/
|
||||
function extractValueFromSequenceExpression(value) {
|
||||
// eslint-disable-next-line global-require
|
||||
var getValue = require('.').default;
|
||||
return value.expressions.map(function (element) {
|
||||
return getValue(element);
|
||||
});
|
||||
}
|
17
web/node_modules/jsx-ast-utils/lib/values/expressions/SpreadElement.js
generated
vendored
Normal file
17
web/node_modules/jsx-ast-utils/lib/values/expressions/SpreadElement.js
generated
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromSpreadElement;
|
||||
/**
|
||||
* Extractor function for a SpreadElement type value node.
|
||||
* We can't statically evaluate an array spread, so just return
|
||||
* undefined.
|
||||
*
|
||||
* @param - value - AST Value object with type `SpreadElement`
|
||||
* @returns - An prototypeless object.
|
||||
*/
|
||||
function extractValueFromSpreadElement() {
|
||||
return undefined;
|
||||
}
|
77
web/node_modules/jsx-ast-utils/lib/values/expressions/TSNonNullExpression.js
generated
vendored
Normal file
77
web/node_modules/jsx-ast-utils/lib/values/expressions/TSNonNullExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,77 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromTSNonNullExpression;
|
||||
var extractValueFromThisExpression = require('./ThisExpression').default;
|
||||
|
||||
/**
|
||||
* Extractor function for a TSNonNullExpression type value node.
|
||||
* A TSNonNullExpression is accessing a TypeScript Non-Null Assertion
|
||||
* Operator !
|
||||
*
|
||||
* @param - value - AST Value object with type `TSNonNullExpression`
|
||||
* @returns - The extracted value converted to correct type
|
||||
* and maintaing `obj.property` convention.
|
||||
*/
|
||||
function extractValueFromTSNonNullExpression(value) {
|
||||
// eslint-disable-next-line global-require
|
||||
// const getValue = require('.').default;
|
||||
var errorMessage = 'The prop value with an expression type of TSNonNullExpression could not be resolved. Please file issue to get this fixed immediately.';
|
||||
|
||||
// it's just the name
|
||||
if (value.type === 'Identifier') {
|
||||
var name = value.name;
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
if (value.type === 'ThisExpression') {
|
||||
return extractValueFromThisExpression();
|
||||
}
|
||||
|
||||
// does not contains properties & is not parenthesized
|
||||
if (value.type === 'TSNonNullExpression' && (!value.extra || value.extra.parenthesized === false)) {
|
||||
var expression = value.expression;
|
||||
|
||||
return extractValueFromTSNonNullExpression(expression) + '!';
|
||||
}
|
||||
|
||||
// does not contains properties & is parenthesized
|
||||
if (value.type === 'TSNonNullExpression' && value.extra && value.extra.parenthesized === true) {
|
||||
var _expression = value.expression;
|
||||
|
||||
return '(' + extractValueFromTSNonNullExpression(_expression) + '!' + ')';
|
||||
}
|
||||
|
||||
// contains a property & is not parenthesized
|
||||
if (value.type === 'MemberExpression' && (!value.extra || value.extra.parenthesized === false)) {
|
||||
return '' + extractValueFromTSNonNullExpression(value.object) + (value.optional ? '?.' : '.') + extractValueFromTSNonNullExpression(value.property);
|
||||
}
|
||||
|
||||
// contains a property & is parenthesized
|
||||
if (value.type === 'MemberExpression' && value.extra && value.extra.parenthesized === true) {
|
||||
return '(' + extractValueFromTSNonNullExpression(value.object) + (value.optional ? '?.' : '.') + extractValueFromTSNonNullExpression(value.property) + ')';
|
||||
}
|
||||
|
||||
// try to fail silently, if specs for TSNonNullExpression change
|
||||
// not throw, only log error. Similar to how it was done previously
|
||||
if (value.expression) {
|
||||
var _expression2 = value.expression;
|
||||
|
||||
while (_expression2) {
|
||||
if (_expression2.type === 'Identifier') {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(errorMessage);
|
||||
return _expression2.name;
|
||||
}
|
||||
var _expression3 = _expression2;
|
||||
_expression2 = _expression3.expression;
|
||||
}
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(errorMessage);
|
||||
return '';
|
||||
}
|
20
web/node_modules/jsx-ast-utils/lib/values/expressions/TaggedTemplateExpression.js
generated
vendored
Normal file
20
web/node_modules/jsx-ast-utils/lib/values/expressions/TaggedTemplateExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromTaggedTemplateExpression;
|
||||
|
||||
var _TemplateLiteral = require('./TemplateLiteral');
|
||||
|
||||
var _TemplateLiteral2 = _interopRequireDefault(_TemplateLiteral);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
/**
|
||||
* Returns the string value of a tagged template literal object.
|
||||
* Redirects the bulk of the work to `TemplateLiteral`.
|
||||
*/
|
||||
function extractValueFromTaggedTemplateExpression(value) {
|
||||
return (0, _TemplateLiteral2.default)(value.quasi);
|
||||
}
|
42
web/node_modules/jsx-ast-utils/lib/values/expressions/TemplateLiteral.js
generated
vendored
Normal file
42
web/node_modules/jsx-ast-utils/lib/values/expressions/TemplateLiteral.js
generated
vendored
Normal file
|
@ -0,0 +1,42 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromTemplateLiteral;
|
||||
function sortStarts(a, b) {
|
||||
return (a.range ? a.range[0] : a.start) - (b.range ? b.range[0] : b.start);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the string value of a template literal object.
|
||||
* Tries to build it as best as it can based on the passed
|
||||
* prop. For instance `This is a ${prop}` will return 'This is a {prop}'.
|
||||
*
|
||||
* If the template literal builds to undefined (`${undefined}`), then
|
||||
* this should return "undefined".
|
||||
*/
|
||||
function extractValueFromTemplateLiteral(value) {
|
||||
var quasis = value.quasis,
|
||||
expressions = value.expressions;
|
||||
|
||||
var partitions = quasis.concat(expressions);
|
||||
|
||||
return partitions.sort(sortStarts).reduce(function (raw, part) {
|
||||
var type = part.type;
|
||||
|
||||
if (type === 'TemplateElement') {
|
||||
return raw + part.value.raw;
|
||||
}
|
||||
|
||||
if (type === 'Identifier') {
|
||||
return part.name === 'undefined' ? '' + raw + part.name : raw + '{' + part.name + '}';
|
||||
}
|
||||
|
||||
if (type.indexOf('Expression') > -1) {
|
||||
return raw + '{' + type + '}';
|
||||
}
|
||||
|
||||
return raw;
|
||||
}, '');
|
||||
}
|
15
web/node_modules/jsx-ast-utils/lib/values/expressions/ThisExpression.js
generated
vendored
Normal file
15
web/node_modules/jsx-ast-utils/lib/values/expressions/ThisExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,15 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromThisExpression;
|
||||
/**
|
||||
* Extractor function for a ThisExpression type value node.
|
||||
* A this expression is using `this` as an identifier.
|
||||
*
|
||||
* @returns - 'this' as a string.
|
||||
*/
|
||||
function extractValueFromThisExpression() {
|
||||
return 'this';
|
||||
}
|
19
web/node_modules/jsx-ast-utils/lib/values/expressions/TypeCastExpression.js
generated
vendored
Normal file
19
web/node_modules/jsx-ast-utils/lib/values/expressions/TypeCastExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromTypeCastExpression;
|
||||
/**
|
||||
* Extractor function for a TypeCastExpression type value node.
|
||||
* A type cast expression looks like `(this.handleClick: (event: MouseEvent) => void))`
|
||||
* This will return the expression `this.handleClick`.
|
||||
*
|
||||
* @param - value - AST Value object with type `TypeCastExpression`
|
||||
* @returns - The extracted value converted to correct type.
|
||||
*/
|
||||
function extractValueFromTypeCastExpression(value) {
|
||||
// eslint-disable-next-line global-require
|
||||
var getValue = require('./index.js').default;
|
||||
return getValue(value.expression);
|
||||
}
|
39
web/node_modules/jsx-ast-utils/lib/values/expressions/UnaryExpression.js
generated
vendored
Normal file
39
web/node_modules/jsx-ast-utils/lib/values/expressions/UnaryExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromUnaryExpression;
|
||||
/**
|
||||
* Extractor function for a UnaryExpression type value node.
|
||||
* A unary expression is an expression with a unary operator.
|
||||
* For example, !"foobar" will evaluate to false, so this will return false.
|
||||
*
|
||||
* @param - value - AST Value object with type `UnaryExpression`
|
||||
* @returns - The extracted value converted to correct type.
|
||||
*/
|
||||
function extractValueFromUnaryExpression(value) {
|
||||
// eslint-disable-next-line global-require
|
||||
var getValue = require('./index.js').default;
|
||||
var operator = value.operator,
|
||||
argument = value.argument;
|
||||
|
||||
|
||||
switch (operator) {
|
||||
case '-':
|
||||
return -getValue(argument);
|
||||
case '+':
|
||||
return +getValue(argument); // eslint-disable-line no-implicit-coercion
|
||||
case '!':
|
||||
return !getValue(argument);
|
||||
case '~':
|
||||
return ~getValue(argument); // eslint-disable-line no-bitwise
|
||||
case 'delete':
|
||||
// I believe delete statements evaluate to true.
|
||||
return true;
|
||||
case 'typeof':
|
||||
case 'void':
|
||||
default:
|
||||
return undefined;
|
||||
}
|
||||
}
|
33
web/node_modules/jsx-ast-utils/lib/values/expressions/UpdateExpression.js
generated
vendored
Normal file
33
web/node_modules/jsx-ast-utils/lib/values/expressions/UpdateExpression.js
generated
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = extractValueFromUpdateExpression;
|
||||
/**
|
||||
* Extractor function for an UpdateExpression type value node.
|
||||
* An update expression is an expression with an update operator.
|
||||
* For example, foo++ will evaluate to foo + 1.
|
||||
*
|
||||
* @param - value - AST Value object with type `UpdateExpression`
|
||||
* @returns - The extracted value converted to correct type.
|
||||
*/
|
||||
function extractValueFromUpdateExpression(value) {
|
||||
// eslint-disable-next-line global-require
|
||||
var getValue = require('./index.js').default;
|
||||
var operator = value.operator,
|
||||
argument = value.argument,
|
||||
prefix = value.prefix;
|
||||
|
||||
|
||||
var val = getValue(argument);
|
||||
|
||||
switch (operator) {
|
||||
case '++':
|
||||
return prefix ? ++val : val++; // eslint-disable-line no-plusplus
|
||||
case '--':
|
||||
return prefix ? --val : val--; // eslint-disable-line no-plusplus
|
||||
default:
|
||||
return undefined;
|
||||
}
|
||||
}
|
275
web/node_modules/jsx-ast-utils/lib/values/expressions/index.js
generated
vendored
Normal file
275
web/node_modules/jsx-ast-utils/lib/values/expressions/index.js
generated
vendored
Normal file
|
@ -0,0 +1,275 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
||||
|
||||
exports.default = extract;
|
||||
exports.extractLiteral = extractLiteral;
|
||||
|
||||
var _Literal = require('../Literal');
|
||||
|
||||
var _Literal2 = _interopRequireDefault(_Literal);
|
||||
|
||||
var _JSXElement = require('../JSXElement');
|
||||
|
||||
var _JSXElement2 = _interopRequireDefault(_JSXElement);
|
||||
|
||||
var _Identifier = require('./Identifier');
|
||||
|
||||
var _Identifier2 = _interopRequireDefault(_Identifier);
|
||||
|
||||
var _TaggedTemplateExpression = require('./TaggedTemplateExpression');
|
||||
|
||||
var _TaggedTemplateExpression2 = _interopRequireDefault(_TaggedTemplateExpression);
|
||||
|
||||
var _TemplateLiteral = require('./TemplateLiteral');
|
||||
|
||||
var _TemplateLiteral2 = _interopRequireDefault(_TemplateLiteral);
|
||||
|
||||
var _FunctionExpression = require('./FunctionExpression');
|
||||
|
||||
var _FunctionExpression2 = _interopRequireDefault(_FunctionExpression);
|
||||
|
||||
var _LogicalExpression = require('./LogicalExpression');
|
||||
|
||||
var _LogicalExpression2 = _interopRequireDefault(_LogicalExpression);
|
||||
|
||||
var _MemberExpression = require('./MemberExpression');
|
||||
|
||||
var _MemberExpression2 = _interopRequireDefault(_MemberExpression);
|
||||
|
||||
var _ChainExpression = require('./ChainExpression');
|
||||
|
||||
var _ChainExpression2 = _interopRequireDefault(_ChainExpression);
|
||||
|
||||
var _OptionalCallExpression = require('./OptionalCallExpression');
|
||||
|
||||
var _OptionalCallExpression2 = _interopRequireDefault(_OptionalCallExpression);
|
||||
|
||||
var _OptionalMemberExpression = require('./OptionalMemberExpression');
|
||||
|
||||
var _OptionalMemberExpression2 = _interopRequireDefault(_OptionalMemberExpression);
|
||||
|
||||
var _CallExpression = require('./CallExpression');
|
||||
|
||||
var _CallExpression2 = _interopRequireDefault(_CallExpression);
|
||||
|
||||
var _UnaryExpression = require('./UnaryExpression');
|
||||
|
||||
var _UnaryExpression2 = _interopRequireDefault(_UnaryExpression);
|
||||
|
||||
var _ThisExpression = require('./ThisExpression');
|
||||
|
||||
var _ThisExpression2 = _interopRequireDefault(_ThisExpression);
|
||||
|
||||
var _ConditionalExpression = require('./ConditionalExpression');
|
||||
|
||||
var _ConditionalExpression2 = _interopRequireDefault(_ConditionalExpression);
|
||||
|
||||
var _BinaryExpression = require('./BinaryExpression');
|
||||
|
||||
var _BinaryExpression2 = _interopRequireDefault(_BinaryExpression);
|
||||
|
||||
var _ObjectExpression = require('./ObjectExpression');
|
||||
|
||||
var _ObjectExpression2 = _interopRequireDefault(_ObjectExpression);
|
||||
|
||||
var _NewExpression = require('./NewExpression');
|
||||
|
||||
var _NewExpression2 = _interopRequireDefault(_NewExpression);
|
||||
|
||||
var _UpdateExpression = require('./UpdateExpression');
|
||||
|
||||
var _UpdateExpression2 = _interopRequireDefault(_UpdateExpression);
|
||||
|
||||
var _ArrayExpression = require('./ArrayExpression');
|
||||
|
||||
var _ArrayExpression2 = _interopRequireDefault(_ArrayExpression);
|
||||
|
||||
var _BindExpression = require('./BindExpression');
|
||||
|
||||
var _BindExpression2 = _interopRequireDefault(_BindExpression);
|
||||
|
||||
var _SpreadElement = require('./SpreadElement');
|
||||
|
||||
var _SpreadElement2 = _interopRequireDefault(_SpreadElement);
|
||||
|
||||
var _TypeCastExpression = require('./TypeCastExpression');
|
||||
|
||||
var _TypeCastExpression2 = _interopRequireDefault(_TypeCastExpression);
|
||||
|
||||
var _SequenceExpression = require('./SequenceExpression');
|
||||
|
||||
var _SequenceExpression2 = _interopRequireDefault(_SequenceExpression);
|
||||
|
||||
var _TSNonNullExpression = require('./TSNonNullExpression');
|
||||
|
||||
var _TSNonNullExpression2 = _interopRequireDefault(_TSNonNullExpression);
|
||||
|
||||
var _AssignmentExpression = require('./AssignmentExpression');
|
||||
|
||||
var _AssignmentExpression2 = _interopRequireDefault(_AssignmentExpression);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
// Composition map of types to their extractor functions.
|
||||
var TYPES = {
|
||||
Identifier: _Identifier2.default,
|
||||
Literal: _Literal2.default,
|
||||
JSXElement: _JSXElement2.default,
|
||||
TaggedTemplateExpression: _TaggedTemplateExpression2.default,
|
||||
TemplateLiteral: _TemplateLiteral2.default,
|
||||
ArrowFunctionExpression: _FunctionExpression2.default,
|
||||
FunctionExpression: _FunctionExpression2.default,
|
||||
LogicalExpression: _LogicalExpression2.default,
|
||||
MemberExpression: _MemberExpression2.default,
|
||||
ChainExpression: _ChainExpression2.default,
|
||||
OptionalCallExpression: _OptionalCallExpression2.default,
|
||||
OptionalMemberExpression: _OptionalMemberExpression2.default,
|
||||
CallExpression: _CallExpression2.default,
|
||||
UnaryExpression: _UnaryExpression2.default,
|
||||
ThisExpression: _ThisExpression2.default,
|
||||
ConditionalExpression: _ConditionalExpression2.default,
|
||||
BinaryExpression: _BinaryExpression2.default,
|
||||
ObjectExpression: _ObjectExpression2.default,
|
||||
NewExpression: _NewExpression2.default,
|
||||
UpdateExpression: _UpdateExpression2.default,
|
||||
ArrayExpression: _ArrayExpression2.default,
|
||||
BindExpression: _BindExpression2.default,
|
||||
SpreadElement: _SpreadElement2.default,
|
||||
TypeCastExpression: _TypeCastExpression2.default,
|
||||
SequenceExpression: _SequenceExpression2.default,
|
||||
TSNonNullExpression: _TSNonNullExpression2.default,
|
||||
AssignmentExpression: _AssignmentExpression2.default
|
||||
};
|
||||
|
||||
var noop = function noop() {
|
||||
return null;
|
||||
};
|
||||
|
||||
var errorMessage = function errorMessage(expression) {
|
||||
return 'The prop value with an expression type of ' + expression + ' could not be resolved. Please file issue to get this fixed immediately.';
|
||||
};
|
||||
|
||||
/**
|
||||
* This function maps an AST value node
|
||||
* to its correct extractor function for its
|
||||
* given type.
|
||||
*
|
||||
* This will map correctly for *all* possible expression types.
|
||||
*
|
||||
* @param - value - AST Value object with type `JSXExpressionContainer`
|
||||
* @returns The extracted value.
|
||||
*/
|
||||
function extract(value) {
|
||||
// Value will not have the expression property when we recurse.
|
||||
// The type for expression on ArrowFunctionExpression is a boolean.
|
||||
var expression = void 0;
|
||||
if (typeof value.expression !== 'boolean' && value.expression) {
|
||||
expression = value.expression; // eslint-disable-line prefer-destructuring
|
||||
} else {
|
||||
expression = value;
|
||||
}
|
||||
var _expression = expression,
|
||||
type = _expression.type;
|
||||
|
||||
// Typescript NonNull Expression is wrapped & it would end up in the wrong extractor
|
||||
|
||||
if (expression.object && expression.object.type === 'TSNonNullExpression') {
|
||||
type = 'TSNonNullExpression';
|
||||
}
|
||||
|
||||
while (type === 'TSAsExpression') {
|
||||
var _expression2 = expression;
|
||||
type = _expression2.type;
|
||||
|
||||
if (expression.expression) {
|
||||
var _expression3 = expression;
|
||||
expression = _expression3.expression;
|
||||
}
|
||||
}
|
||||
|
||||
if (TYPES[type] === undefined) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(errorMessage(type));
|
||||
return null;
|
||||
}
|
||||
|
||||
return TYPES[type](expression);
|
||||
}
|
||||
|
||||
// Composition map of types to their extractor functions to handle literals.
|
||||
var LITERAL_TYPES = _extends({}, TYPES, {
|
||||
Literal: function Literal(value) {
|
||||
var extractedVal = TYPES.Literal.call(undefined, value);
|
||||
var isNull = extractedVal === null;
|
||||
// This will be convention for attributes that have null
|
||||
// value explicitly defined (<div prop={null} /> maps to 'null').
|
||||
return isNull ? 'null' : extractedVal;
|
||||
},
|
||||
Identifier: function Identifier(value) {
|
||||
var isUndefined = TYPES.Identifier.call(undefined, value) === undefined;
|
||||
return isUndefined ? undefined : null;
|
||||
},
|
||||
JSXElement: noop,
|
||||
ArrowFunctionExpression: noop,
|
||||
FunctionExpression: noop,
|
||||
LogicalExpression: noop,
|
||||
MemberExpression: noop,
|
||||
OptionalCallExpression: noop,
|
||||
OptionalMemberExpression: noop,
|
||||
CallExpression: noop,
|
||||
UnaryExpression: function UnaryExpression(value) {
|
||||
var extractedVal = TYPES.UnaryExpression.call(undefined, value);
|
||||
return extractedVal === undefined ? null : extractedVal;
|
||||
},
|
||||
UpdateExpression: function UpdateExpression(value) {
|
||||
var extractedVal = TYPES.UpdateExpression.call(undefined, value);
|
||||
return extractedVal === undefined ? null : extractedVal;
|
||||
},
|
||||
ThisExpression: noop,
|
||||
ConditionalExpression: noop,
|
||||
BinaryExpression: noop,
|
||||
ObjectExpression: noop,
|
||||
NewExpression: noop,
|
||||
ArrayExpression: function ArrayExpression(value) {
|
||||
var extractedVal = TYPES.ArrayExpression.call(undefined, value);
|
||||
return extractedVal.filter(function (val) {
|
||||
return val !== null;
|
||||
});
|
||||
},
|
||||
BindExpression: noop,
|
||||
SpreadElement: noop,
|
||||
TSNonNullExpression: noop,
|
||||
TSAsExpression: noop,
|
||||
TypeCastExpression: noop,
|
||||
SequenceExpression: noop
|
||||
});
|
||||
|
||||
/**
|
||||
* This function maps an AST value node
|
||||
* to its correct extractor function for its
|
||||
* given type.
|
||||
*
|
||||
* This will map correctly for *some* possible types that map to literals.
|
||||
*
|
||||
* @param - value - AST Value object with type `JSXExpressionContainer`
|
||||
* @returns The extracted value.
|
||||
*/
|
||||
function extractLiteral(value) {
|
||||
// Value will not have the expression property when we recurse.
|
||||
var expression = value.expression || value;
|
||||
var type = expression.type;
|
||||
|
||||
|
||||
if (LITERAL_TYPES[type] === undefined) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(errorMessage(type));
|
||||
return null;
|
||||
}
|
||||
|
||||
return LITERAL_TYPES[type](expression);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue