Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
NgModuleCompiler.prototype.compile = function (ctx, ngModuleMeta, extraProviders) {
var sourceSpan = parse_util_1.typeSourceSpan('NgModule', ngModuleMeta.type);
var entryComponentFactories = ngModuleMeta.transitiveModule.entryComponents;
var bootstrapComponents = ngModuleMeta.bootstrapComponents;
var providerParser = new provider_analyzer_1.NgModuleProviderAnalyzer(this.reflector, ngModuleMeta, extraProviders, sourceSpan);
var providerDefs = [provider_compiler_1.componentFactoryResolverProviderDef(this.reflector, ctx, 0 /* None */, entryComponentFactories)]
.concat(providerParser.parse().map(function (provider) { return provider_compiler_1.providerDef(ctx, provider); }))
.map(function (_a) {
var providerExpr = _a.providerExpr, depsExpr = _a.depsExpr, flags = _a.flags, tokenExpr = _a.tokenExpr;
return o.importExpr(identifiers_1.Identifiers.moduleProviderDef).callFn([
o.literal(flags), tokenExpr, providerExpr, depsExpr
]);
});
var ngModuleDef = o.importExpr(identifiers_1.Identifiers.moduleDef).callFn([o.literalArr(providerDefs)]);
var ngModuleDefFactory = o.fn([new o.FnParam(LOG_VAR.name)], [new o.ReturnStatement(ngModuleDef)], o.INFERRED_TYPE);
var ngModuleFactoryVar = compile_metadata_1.identifierName(ngModuleMeta.type) + "NgFactory";
this._createNgModuleFactory(ctx, ngModuleMeta.type.reference, o.importExpr(identifiers_1.Identifiers.createModuleFactory).callFn([
ctx.importExpr(ngModuleMeta.type.reference),
o.literalArr(bootstrapComponents.map(function (id) { return ctx.importExpr(id.reference); })),
ngModuleDefFactory
]));
if (ngModuleMeta.id) {
var id = typeof ngModuleMeta.id === 'string' ? o.literal(ngModuleMeta.id) :
ctx.importExpr(ngModuleMeta.id);
var registerFactoryStmt = o.importExpr(identifiers_1.Identifiers.RegisterModuleFactoryFn)
.callFn([id, o.variable(ngModuleFactoryVar)])
.toStmt();
ctx.statements.push(registerFactoryStmt);
}
return new NgModuleCompileResult(ngModuleFactoryVar);
};
return eventBindings.map(function (binding) {
var bindingExpr = expression_converter_1.convertActionBinding(null, bindingContext, binding.handler, 'b', function () { return util_1.error('Unexpected interpolation'); });
var bindingName = binding.name && compile_metadata_1.sanitizeIdentifier(binding.name);
var bindingFnName = bindingName;
if (binding.type === 1 /* Animation */) {
bindingFnName = util_2.prepareSyntheticListenerFunctionName(bindingName, binding.targetOrPhase);
bindingName = util_2.prepareSyntheticListenerName(bindingName, binding.targetOrPhase);
}
var typeName = meta.name;
var functionName = typeName && bindingName ? typeName + "_" + bindingFnName + "_HostBindingHandler" : null;
var handler = o.fn([new o.FnParam('$event', o.DYNAMIC_TYPE)], tslib_1.__spread(bindingExpr.render3Stmts), o.INFERRED_TYPE, null, functionName);
return o.importExpr(r3_identifiers_1.Identifiers.listener).callFn([o.literal(bindingName), handler]).toStmt();
});
}
});
}
}
if (totalHostVarsCount) {
createStatements.unshift(o.importExpr(r3_identifiers_1.Identifiers.allocHostVars).callFn([o.literal(totalHostVarsCount)]).toStmt());
}
if (createStatements.length > 0 || updateStatements.length > 0) {
var hostBindingsFnName = meta.name ? meta.name + "_HostBindings" : null;
var statements = [];
if (createStatements.length > 0) {
statements.push(template_1.renderFlagCheckIfStmt(1 /* Create */, createStatements));
}
if (updateStatements.length > 0) {
statements.push(template_1.renderFlagCheckIfStmt(2 /* Update */, updateStatements));
}
return o.fn([
new o.FnParam(util_3.RENDER_FLAGS, o.NUMBER_TYPE), new o.FnParam(util_3.CONTEXT_NAME, null),
new o.FnParam(elVarExp.name, o.NUMBER_TYPE)
], statements, o.INFERRED_TYPE, null, hostBindingsFnName);
}
return null;
}
function createStylingStmt(instruction, bindingContext, bindingFn) {
// const $instance$ = $r3$.ɵload(dirIndex);
statements_1.push(directiveInstanceVar_1.set(o.importExpr(r3_identifiers_1.Identifiers.load).callFn([o.variable('dirIndex')]))
.toDeclStmt(o.INFERRED_TYPE, [o.StmtModifier.Final]));
meta.queries.forEach(function (query, idx) {
var loadQLArg = o.variable('queryStartIndex');
var getQueryList = o.importExpr(r3_identifiers_1.Identifiers.loadQueryList).callFn([
idx > 0 ? loadQLArg.plus(o.literal(idx)) : loadQLArg
]);
var assignToTemporary = temporary_1().set(getQueryList);
var callQueryRefresh = o.importExpr(r3_identifiers_1.Identifiers.queryRefresh).callFn([assignToTemporary]);
var updateDirective = directiveInstanceVar_1.prop(query.propertyName)
.set(query.first ? temporary_1().prop('first') : temporary_1());
var refreshQueryAndUpdateDirective = callQueryRefresh.and(updateDirective);
statements_1.push(refreshQueryAndUpdateDirective.toStmt());
});
return o.fn(parameters, statements_1, o.INFERRED_TYPE, null, typeName ? typeName + "_ContentQueriesRefresh" : null);
}
return null;
}
function stringAsType(str) {
// if extraStatementsFn is specified and the 'makeConditionalFactory' function
// was not invoked, we need to create a reference to the instance, so we can
// pass it as an argument to the 'extraStatementFn' function while calling it
var variable = o.variable('f');
body.push(variable.set(ctorExpr).toDeclStmt());
retExpr = variable;
}
else {
retExpr = ctorExpr;
}
if (meta.extraStatementFn) {
var extraStmts = meta.extraStatementFn(retExpr);
body.push.apply(body, tslib_1.__spread(extraStmts));
}
return {
factory: o.fn([new o.FnParam('t', o.DYNAMIC_TYPE)], tslib_1.__spread(body, [new o.ReturnStatement(retExpr)]), o.INFERRED_TYPE, undefined, meta.name + "_Factory"),
statements: statements,
};
}
exports.compileFactoryFunction = compileFactoryFunction;
if (bindings_1_1 && !bindings_1_1.done && (_a = bindings_1.return)) _a.call(bindings_1);
}
finally { if (e_2) throw e_2.error; }
}
}
// Calculate host event bindings
var eventBindings = bindingParser.createDirectiveHostEventAsts(directiveSummary, hostBindingSourceSpan);
if (eventBindings) {
try {
for (var eventBindings_1 = tslib_1.__values(eventBindings), eventBindings_1_1 = eventBindings_1.next(); !eventBindings_1_1.done; eventBindings_1_1 = eventBindings_1.next()) {
var binding = eventBindings_1_1.value;
var bindingExpr = expression_converter_1.convertActionBinding(null, bindingContext, binding.handler, 'b', function () { return util_1.error('Unexpected interpolation'); });
var bindingName = binding.name && compile_metadata_1.sanitizeIdentifier(binding.name);
var typeName = meta.name;
var functionName = typeName && bindingName ? typeName + "_" + bindingName + "_HostBindingHandler" : null;
var handler = o.fn([new o.FnParam('$event', o.DYNAMIC_TYPE)], tslib_1.__spread(bindingExpr.stmts, [new o.ReturnStatement(bindingExpr.allowDefault)]), o.INFERRED_TYPE, null, functionName);
statements.push(o.importExpr(r3_identifiers_1.Identifiers.listener).callFn([o.literal(binding.name), handler]).toStmt());
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (eventBindings_1_1 && !eventBindings_1_1.done && (_b = eventBindings_1.return)) _b.call(eventBindings_1);
}
finally { if (e_3) throw e_3.error; }
}
}
if (statements.length > 0) {
var typeName = meta.name;
return o.fn([
new o.FnParam('dirIndex', o.NUMBER_TYPE),
new o.FnParam('elIndex', o.NUMBER_TYPE),
var scopedName = this._bindingScope.freshReferenceName();
var phMap = o.variable(scopedName)
.set(util_2.mapToExpression(phToNodeIdx, true))
.toDeclStmt(o.INFERRED_TYPE, [o.StmtModifier.Final]);
this._prefixCode.push(phMap);
}
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (_f && !_f.done && (_g = _e.return)) _g.call(_e);
}
finally { if (e_3) throw e_3.error; }
}
return o.fn([new o.FnParam(util_2.RENDER_FLAGS, o.NUMBER_TYPE), new o.FnParam(this.contextParameter, null)], tslib_1.__spread(this._prefixCode, creationCode, this._variableCode, updateCode, this._postfixCode), o.INFERRED_TYPE, null, this.templateName);
var e_1, _a, e_2, _d, e_3, _g;
};
// LocalResolver
else if (meta.useValue !== undefined) {
ret = meta.useValue;
}
else if (meta.useExisting !== undefined) {
ret = o.importExpr(r3_identifiers_1.Identifiers.inject).callFn([meta.useExisting]);
}
else if (meta.useFactory !== undefined) {
var args = meta.useFactory.deps.map(function (dep) { return injectDep(dep); });
ret = new o.InvokeFunctionExpr(meta.useFactory.factory, args);
}
else {
throw new Error('No instructions for injectable compiler!');
}
var token = meta.type;
var providedIn = meta.providedIn;
var factory = o.fn([], [new o.ReturnStatement(ret)], undefined, undefined, meta.name + "_Factory");
var expression = o.importExpr({
moduleName: '@angular/core',
name: 'defineInjectable',
}).callFn([mapToMapExpression({ token: token, factory: factory, providedIn: providedIn })]);
var type = new o.ExpressionType(o.importExpr({
moduleName: '@angular/core',
name: 'InjectableDef',
}, [new o.ExpressionType(meta.type)]));
return {
expression: expression, type: type,
};
}
exports.compileIvyInjectable = compileIvyInjectable;
ConstantPool.prototype._getLiteralFactory = function (key, values, resultMap) {
var _this = this;
var literalFactory = this.literalFactories.get(key);
var literalFactoryArguments = values.filter((function (e) { return !e.isConstant(); }));
if (!literalFactory) {
var resultExpressions = values.map(function (e, index) { return e.isConstant() ? _this.getConstLiteral(e, true) : o.variable("a" + index); });
var parameters = resultExpressions.filter(isVariable).map(function (e) { return new o.FnParam(e.name, o.DYNAMIC_TYPE); });
var pureFunctionDeclaration = o.fn(parameters, [new o.ReturnStatement(resultMap(resultExpressions))], o.INFERRED_TYPE);
var name_3 = this.freshName();
this.statements.push(o.variable(name_3).set(pureFunctionDeclaration).toDeclStmt(o.INFERRED_TYPE, [
o.StmtModifier.Final
]));
literalFactory = o.variable(name_3);
this.literalFactories.set(key, literalFactory);
}
return { literalFactory: literalFactory, literalFactoryArguments: literalFactoryArguments };
};
/**