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

Function addMetadata

packages/compiler-cli/src/ngtsc/metadata/src/inheritance.ts:46–83  ·  view source on GitHub ↗
(meta: DirectiveMeta)

Source from the content-addressed store, hash-verified

44 let isStructural: boolean = false;
45
46 const addMetadata = (meta: DirectiveMeta): void => {
47 if (meta.baseClass === 'dynamic') {
48 isDynamic = true;
49 } else if (meta.baseClass !== null) {
50 const baseMeta = reader.getDirectiveMetadata(meta.baseClass);
51 if (baseMeta !== null) {
52 addMetadata(baseMeta);
53 } else {
54 // Missing metadata for the base class means it's effectively dynamic.
55 isDynamic = true;
56 }
57 }
58
59 isStructural = isStructural || meta.isStructural;
60
61 inputs = ClassPropertyMapping.merge(inputs, meta.inputs);
62 outputs = ClassPropertyMapping.merge(outputs, meta.outputs);
63
64 for (const coercedInputField of meta.coercedInputFields) {
65 coercedInputFields.add(coercedInputField);
66 }
67 for (const undeclaredInputField of meta.undeclaredInputFields) {
68 undeclaredInputFields.add(undeclaredInputField);
69 }
70 for (const restrictedInputField of meta.restrictedInputFields) {
71 restrictedInputFields.add(restrictedInputField);
72 }
73 for (const field of meta.stringLiteralInputFields) {
74 stringLiteralInputFields.add(field);
75 }
76 for (const name of meta.publicMethods) {
77 publicMethods.add(name);
78 }
79 if (meta.hostDirectives !== null && meta.hostDirectives.length > 0) {
80 hostDirectives ??= [];
81 hostDirectives.push(...meta.hostDirectives);
82 }
83 };
84
85 addMetadata(topMeta);
86

Callers 1

Calls 4

getDirectiveMetadataMethod · 0.65
addMethod · 0.65
mergeMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…