MCPcopy Index your code
hub / github.com/angular/angular / compileService

Function compileService

packages/compiler/src/service_compiler.ts:23–58  ·  view source on GitHub ↗
(
  meta: R3ServiceMetadata,
  resolveForwardRefs: boolean,
)

Source from the content-addressed store, hash-verified

21}
22
23export function compileService(
24 meta: R3ServiceMetadata,
25 resolveForwardRefs: boolean,
26): R3CompiledExpression {
27 const def = new DefinitionMap<{
28 token: o.Expression;
29 factory: o.Expression;
30 autoProvided: o.Expression;
31 }>();
32 def.set('token', meta.type.value);
33 def.set(
34 'factory',
35 meta.factory === undefined
36 ? delegateToFactory(
37 meta.type.value as o.WrappedNodeExpr<any>,
38 meta.type.value as o.WrappedNodeExpr<any>,
39 resolveForwardRefs,
40 )
41 : o.arrowFn([], meta.factory.callFn([])),
42 );
43
44 // Only generate providedIn property if it's different from the default.
45 if (meta.autoProvided === false) {
46 def.set('autoProvided', o.literal(false));
47 }
48
49 const expression = o
50 .importExpr(Identifiers.defineService)
51 .callFn([def.toLiteralMap()], undefined, true);
52
53 return {
54 expression,
55 type: createInjectableType(meta.type.type, meta.typeArgumentCount),
56 statements: [],
57 };
58}

Callers 5

compileServiceMethod · 0.90
compileFullMethod · 0.90
compileLocalMethod · 0.90

Calls 4

setMethod · 0.95
toLiteralMapMethod · 0.95
delegateToFactoryFunction · 0.90
createInjectableTypeFunction · 0.90

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…