Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function referenceFrom(node) {
var result = evaluator.evaluateNode(node);
if (schema_1.isMetadataError(result) || schema_1.isMetadataSymbolicReferenceExpression(result) ||
schema_1.isMetadataSymbolicSelectExpression(result)) {
return result;
}
else {
return errorSym('Symbol reference expected', node);
}
}
// Add class parents
MetadataBundler.prototype.convertValue = function (moduleName, value) {
var _this = this;
if (isPrimitive(value)) {
return value;
}
if (schema_1.isMetadataError(value)) {
return this.convertError(moduleName, value);
}
if (schema_1.isMetadataSymbolicExpression(value)) {
return this.convertExpression(moduleName, value);
}
if (Array.isArray(value)) {
return value.map(function (v) { return _this.convertValue(moduleName, v); });
}
// Otherwise it is a metadata object.
var object = value;
var result = {};
for (var key in object) {
result[key] = this.convertValue(moduleName, object[key]);
}
return result;
};
if (name) {
if (!metadata)
metadata = {};
metadata[name] = recordEntry(varValue, node);
}
exported = true;
}
if (typeof varValue == 'string' || typeof varValue == 'number' ||
typeof varValue == 'boolean') {
locals.define(nameNode.text, varValue);
if (exported) {
locals.defineReference(nameNode.text, { __symbolic: 'reference', name: nameNode.text });
}
}
else if (!exported) {
if (varValue && !schema_1.isMetadataError(varValue)) {
locals.define(nameNode.text, recordEntry(varValue, node));
}
else {
locals.define(nameNode.text, recordEntry(errorSym('Reference to a local symbol', nameNode, { name: nameNode.text }), node));
}
}
}
else {
// Destructuring (or binding) declarations are not supported,
// var {[, ]+} = ;
// or
// var [[, ;
// are not supported.
var report_1 = function (nameNode) {
switch (nameNode.kind) {
case ts.SyntaxKind.Identifier:
Evaluator.prototype.nameOf = function (node) {
if (node && node.kind == ts.SyntaxKind.Identifier) {
return node.text;
}
var result = node && this.evaluateNode(node);
if (schema_1.isMetadataError(result) || typeof result === 'string') {
return result;
}
else {
return errorSymbol('Name expected', node, { received: (node && node.getText()) || '' });
}
};
/**
function validateExpression(expression) {
if (!expression) {
return;
}
else if (Array.isArray(expression)) {
expression.forEach(validateExpression);
}
else if (typeof expression === 'object' && !expression.hasOwnProperty('__symbolic')) {
Object.getOwnPropertyNames(expression).forEach(function (v) { return validateExpression(expression[v]); });
}
else if (schema_1.isMetadataError(expression)) {
reportError(expression);
}
else if (schema_1.isMetadataGlobalReferenceExpression(expression)) {
if (!locals.has(expression.name)) {
var reference = metadata[expression.name];
if (reference) {
validateExpression(reference);
}
}
}
else if (schema_1.isFunctionMetadata(expression)) {
validateFunction(expression);
}
else if (schema_1.isMetadataSymbolicExpression(expression)) {
switch (expression.__symbolic) {
case 'binary':
if (isStatic(property)) {
var name_1 = evaluator.nameOf(property.name);
if (!schema_1.isMetadataError(name_1)) {
if (property.initializer) {
var value = evaluator.evaluateNode(property.initializer);
recordStaticMember(name_1, value);
}
else {
recordStaticMember(name_1, errorSym('Variable not initialized', property.name));
}
}
}
var propertyDecorators = getDecorators(property.decorators);
if (propertyDecorators) {
var name_2 = evaluator.nameOf(property.name);
if (!schema_1.isMetadataError(name_2)) {
recordMember(name_2, { __symbolic: 'property', decorators: propertyDecorators });
}
}
break;
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
}
finally { if (e_1) throw e_1.error; }
}
if (members) {
result.members = members;
if (parameters_1_1 && !parameters_1_1.done && (_b = parameters_1.return)) _b.call(parameters_1);
}
finally { if (e_2) throw e_2.error; }
}
var data = { __symbolic: isConstructor ? 'constructor' : 'method' };
var name = isConstructor ? '__ctor__' : evaluator.nameOf(member.name);
if (methodDecorators) {
data.decorators = methodDecorators;
}
if (hasDecoratorData) {
data.parameterDecorators = parameterDecoratorData;
}
if (hasParameterData) {
data.parameters = parametersData;
}
if (!schema_1.isMetadataError(name)) {
recordMember(name, data);
}
break;
case ts.SyntaxKind.PropertyDeclaration:
case ts.SyntaxKind.GetAccessor:
case ts.SyntaxKind.SetAccessor:
var property = member;
if (isStatic(property)) {
var name_1 = evaluator.nameOf(property.name);
if (!schema_1.isMetadataError(name_1)) {
if (property.initializer) {
var value = evaluator.evaluateNode(property.initializer);
recordStaticMember(name_1, value);
}
else {
recordStaticMember(name_1, errorSym('Variable not initialized', property.name));
function isFoldableError(value) {
return !t.options.verboseInvalidExpression && schema_1.isMetadataError(value);
}
var resolveName = function (name, preferReference) {