Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
definitionMap.set('template', templateFunctionExpression);
// e.g. `directives: [MyDirective]`
if (directivesUsed.size) {
definitionMap.set('directives', o.literalArr(Array.from(directivesUsed)));
}
// e.g. `pipes: [MyPipe]`
if (pipesUsed.size) {
definitionMap.set('pipes', o.literalArr(Array.from(pipesUsed)));
}
// e.g. `features: [NgOnChangesFeature(MyComponent)]`
var features = [];
if (meta.lifecycle.usesOnChanges) {
features.push(o.importExpr(r3_identifiers_1.Identifiers.NgOnChangesFeature, null, null).callFn([meta.type]));
}
if (features.length) {
definitionMap.set('features', o.literalArr(features));
}
var expression = o.importExpr(r3_identifiers_1.Identifiers.defineComponent).callFn([definitionMap.toLiteralMap()]);
var type = new o.ExpressionType(o.importExpr(r3_identifiers_1.Identifiers.ComponentDef, [new o.ExpressionType(meta.type)]));
return { expression: expression, type: type };
}
exports.compileComponent = compileComponent;
params: function () {
// params => elementHostAttrs(attrs)
_this.populateInitialStylingAttrs(attrs);
var attrArray = !attrs.some(function (attr) { return attr instanceof o.WrappedNodeExpr; }) ?
getConstantLiteralFromArray(constantPool, attrs) :
o.literalArr(attrs);
return [attrArray];
}
};
function getLiteralFactory(constantPool, literal, allocateSlots) {
var _a = constantPool.getLiteralFactory(literal), literalFactory = _a.literalFactory, literalFactoryArguments = _a.literalFactoryArguments;
// Allocate 1 slot for the result plus 1 per argument
var startSlot = allocateSlots(1 + literalFactoryArguments.length);
literalFactoryArguments.length > 0 || util_1.error("Expected arguments to a literal factory function");
var _b = pureFunctionCallInfo(literalFactoryArguments), identifier = _b.identifier, isVarLength = _b.isVarLength;
// Literal factories are pure functions that only need to be re-invoked when the parameters
// change.
var args = [
o.literal(startSlot),
literalFactory,
];
if (isVarLength) {
args.push(o.literalArr(literalFactoryArguments));
}
else {
args.push.apply(args, tslib_1.__spread(literalFactoryArguments));
}
return o.importExpr(identifier).callFn(args);
}
var BindingScope = /** @class */ (function () {
_AstToIrVisitor.prototype.visitInterpolation = function (ast, mode) {
ensureExpressionMode(mode, ast);
var args = [o.literal(ast.expressions.length)];
for (var i = 0; i < ast.strings.length - 1; i++) {
args.push(o.literal(ast.strings[i]));
args.push(this._visit(ast.expressions[i], _Mode.Expression));
}
args.push(o.literal(ast.strings[ast.strings.length - 1]));
if (this.interpolationFunction) {
return this.interpolationFunction(args);
}
return ast.expressions.length <= 9 ?
o.importExpr(identifiers_1.Identifiers.inlineInterpolate).callFn(args) :
o.importExpr(identifiers_1.Identifiers.interpolate).callFn([args[0], o.literalArr(args.slice(1))]);
};
_AstToIrVisitor.prototype.visitKeyedRead = function (ast, mode) {
var viewProviders = meta.viewProviders;
if (providers || viewProviders) {
var args = [providers || new o.LiteralArrayExpr([])];
if (viewProviders) {
args.push(viewProviders);
}
features.push(o.importExpr(r3_identifiers_1.Identifiers.ProvidersFeature).callFn(args));
}
if (meta.usesInheritance) {
features.push(o.importExpr(r3_identifiers_1.Identifiers.InheritDefinitionFeature));
}
if (meta.lifecycle.usesOnChanges) {
features.push(o.importExpr(r3_identifiers_1.Identifiers.NgOnChangesFeature));
}
if (features.length) {
definitionMap.set('features', o.literalArr(features));
}
}
/**
function compileNgModule(meta) {
var moduleType = meta.type, bootstrap = meta.bootstrap, declarations = meta.declarations, imports = meta.imports, exports = meta.exports;
var expression = o.importExpr(r3_identifiers_1.Identifiers.defineNgModule).callFn([util_1.mapToMapExpression({
type: moduleType,
bootstrap: o.literalArr(bootstrap.map(function (ref) { return ref.value; })),
declarations: o.literalArr(declarations.map(function (ref) { return ref.value; })),
imports: o.literalArr(imports.map(function (ref) { return ref.value; })),
exports: o.literalArr(exports.map(function (ref) { return ref.value; })),
})]);
var type = new o.ExpressionType(o.importExpr(r3_identifiers_1.Identifiers.NgModuleDefWithMeta, [
new o.ExpressionType(moduleType), tupleTypeOf(declarations), tupleTypeOf(imports),
tupleTypeOf(exports)
]));
var additionalStatements = [];
return { expression: expression, type: type, additionalStatements: additionalStatements };
}
exports.compileNgModule = compileNgModule;
function stringArrayAsType(arr) {
return arr.length > 0 ? o.expressionType(o.literalArr(arr.map(function (value) { return o.literal(value); }))) :
o.NONE_TYPE;
}
function createTypeForDef(meta, typeBase) {
function selectorsFromGlobalMetadata(selectors, outputCtx) {
if (selectors.length > 1 || (selectors.length == 1 && selectors[0].value)) {
var selectorStrings = selectors.map(function (value) { return value.value; });
selectorStrings.some(function (value) { return !value; }) &&
util_1.error('Found a type among the string selectors expected');
return outputCtx.constantPool.getConstLiteral(o.literalArr(selectorStrings.map(function (value) { return o.literal(value); })));
}
if (selectors.length == 1) {
var first = selectors[0];
if (first.identifier) {
return outputCtx.importExpr(first.identifier.reference);
}
}
util_1.error('Unexpected query form');
return o.NULL_EXPR;
}
/**
function convertMetaToOutput(meta, ctx) {
if (Array.isArray(meta)) {
return o.literalArr(meta.map(function (entry) { return convertMetaToOutput(entry, ctx); }));
}
if (meta instanceof static_symbol_1.StaticSymbol) {
return ctx.importExpr(meta);
}
if (meta == null) {
return o.literal(meta);
}
throw new Error("Internal error: Unsupported or unknown metadata: " + meta);
}
function compileNgModule(ctx, ngModule, injectableCompiler) {