Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
var ctorExprFinal = ctorExpr;
var body = [];
var retExpr = null;
function makeConditionalFactory(nonCtorExpr) {
var r = o.variable('r');
body.push(r.set(o.NULL_EXPR).toDeclStmt());
body.push(o.ifStmt(t, [r.set(ctorExprFinal).toStmt()], [r.set(nonCtorExpr).toStmt()]));
return r;
}
if (isDelegatedMetadata(meta) && meta.delegateType === R3FactoryDelegateType.Factory) {
var delegateFactory = o.variable("\u0275" + meta.name + "_BaseFactory");
var getFactoryOf = o.importExpr(r3_identifiers_1.Identifiers.getFactoryOf);
if (meta.delegate.isEquivalent(meta.type)) {
throw new Error("Illegal state: compiling factory that delegates to itself");
}
var delegateFactoryStmt = delegateFactory.set(getFactoryOf.callFn([meta.delegate])).toDeclStmt(o.INFERRED_TYPE, [
o.StmtModifier.Exported, o.StmtModifier.Final
]);
statements.push(delegateFactoryStmt);
retExpr = makeConditionalFactory(delegateFactory.callFn([]));
}
else if (isDelegatedMetadata(meta)) {
// This type is created with a delegated factory. If a type parameter is not specified, call
// the factory instead.
var delegateArgs = injectDependencies(meta.delegateDeps, meta.injectFn);
// Either call `new delegate(...)` or `delegate(...)` depending on meta.useNewForDelegate.
var factoryExpr = new (meta.delegateType === R3FactoryDelegateType.Class ?
o.InstantiateExpr :
o.InvokeFunctionExpr)(meta.delegate, delegateArgs);
retExpr = makeConditionalFactory(factoryExpr);
}
else if (isExpressionFactoryMetadata(meta)) {
var unParsed = this.constantPool.getConstLiteral(util_2.asLiteral(ngContentSelectors), true);
parameters.push(parsed, unParsed);
}
this.instruction.apply(this, tslib_1.__spread([this._creationCode, null, r3_identifiers_1.Identifiers.projectionDef], parameters));
}
try {
// Define and update any view queries
for (var _b = tslib_1.__values(this.viewQueries), _c = _b.next(); !_c.done; _c = _b.next()) {
var query = _c.value;
// e.g. r3.Q(0, somePredicate, true);
var querySlot = this.allocateDataSlot();
var predicate = util_2.getQueryPredicate(query, this.constantPool);
var args = [
o.literal(querySlot, o.INFERRED_TYPE),
predicate,
o.literal(query.descendants, o.INFERRED_TYPE),
];
if (query.read) {
args.push(query.read);
}
this.instruction.apply(this, tslib_1.__spread([this._creationCode, null, r3_identifiers_1.Identifiers.query], args));
// (r3.qR(tmp = r3.ɵld(0)) && (ctx.someDir = tmp));
var temporary = this._temporary();
var getQueryList = o.importExpr(r3_identifiers_1.Identifiers.load).callFn([o.literal(querySlot)]);
var refresh = o.importExpr(r3_identifiers_1.Identifiers.queryRefresh).callFn([temporary.set(getQueryList)]);
var updateDirective = o.variable(util_2.CONTEXT_NAME)
.prop(query.propertyName)
.set(query.first ? temporary.prop('first') : temporary);
this._bindingCode.push(refresh.and(updateDirective).toStmt());
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
var delegateArgs = injectDependencies(meta.delegateDeps, meta.injectFn);
// Either call `new delegate(...)` or `delegate(...)` depending on meta.useNewForDelegate.
var factoryExpr = new (meta.delegateType === R3FactoryDelegateType.Class ?
o.InstantiateExpr :
o.InvokeFunctionExpr)(meta.delegate, delegateArgs);
retExpr = makeConditionalFactory(factoryExpr);
}
else if (isExpressionFactoryMetadata(meta)) {
// TODO(alxhub): decide whether to lower the value here or in the caller
retExpr = makeConditionalFactory(meta.expression);
}
else {
retExpr = ctorExpr;
}
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;
function createQueryDefinition(query, constantPool, idx) {
var predicate = util_3.getQueryPredicate(query, constantPool);
// e.g. r3.query(null, somePredicate, false) or r3.query(0, ['div'], false)
var parameters = [
o.literal(idx, o.INFERRED_TYPE),
predicate,
o.literal(query.descendants),
];
if (query.read) {
parameters.push(query.read);
}
return o.importExpr(r3_identifiers_1.Identifiers.query).callFn(parameters);
}
// Turn a directive selector into an R3-compatible selector for directive def
var statements = [];
// The type to instantiate via constructor invocation. If there is no delegated factory, meaning
// this type is always created by constructor invocation, then this is the type-to-create
// parameter provided by the user (t) if specified, or the current type if not. If there is a
// delegated factory (which is used to create the current type) then this is only the type-to-
// create parameter (t).
var typeForCtor = !isDelegatedMetadata(meta) ? new o.BinaryOperatorExpr(o.BinaryOperator.Or, t, meta.type) : t;
var ctorExpr = null;
if (meta.deps !== null) {
// There is a constructor (either explicitly or implicitly defined).
ctorExpr = new o.InstantiateExpr(typeForCtor, injectDependencies(meta.deps, meta.injectFn));
}
else {
var baseFactory = o.variable("\u0275" + meta.name + "_BaseFactory");
var getInheritedFactory = o.importExpr(r3_identifiers_1.Identifiers.getInheritedFactory);
var baseFactoryStmt = baseFactory.set(getInheritedFactory.callFn([meta.type])).toDeclStmt(o.INFERRED_TYPE, [
o.StmtModifier.Exported, o.StmtModifier.Final
]);
statements.push(baseFactoryStmt);
// There is no constructor, use the base class' factory to construct typeForCtor.
ctorExpr = baseFactory.callFn([typeForCtor]);
}
var ctorExprFinal = ctorExpr;
var body = [];
var retExpr = null;
function makeConditionalFactory(nonCtorExpr) {
var r = o.variable('r');
body.push(r.set(o.NULL_EXPR).toDeclStmt());
body.push(o.ifStmt(t, [r.set(ctorExprFinal).toStmt()], [r.set(nonCtorExpr).toStmt()]));
return r;
}
if (isDelegatedMetadata(meta) && meta.delegateType === R3FactoryDelegateType.Factory) {
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 };
};
/**
function asLiteral(value) {
if (Array.isArray(value)) {
return o.literalArr(value.map(asLiteral));
}
return o.literal(value, o.INFERRED_TYPE);
}
exports.asLiteral = asLiteral;