(type: Type<any>, metadata: Directive | Component)
| 342 | } |
| 343 | |
| 344 | function addDirectiveFactoryDef(type: Type<any>, metadata: Directive | Component) { |
| 345 | let ngFactoryDef: any = null; |
| 346 | |
| 347 | Object.defineProperty(type, NG_FACTORY_DEF, { |
| 348 | get: () => { |
| 349 | if (ngFactoryDef === null) { |
| 350 | const meta = getDirectiveMetadata(type, metadata); |
| 351 | const compiler = getCompilerFacade({ |
| 352 | usage: JitCompilerUsage.Decorator, |
| 353 | kind: 'directive', |
| 354 | type, |
| 355 | }); |
| 356 | ngFactoryDef = compiler.compileFactory(angularCoreEnv, `ng:///${type.name}/ɵfac.js`, { |
| 357 | name: meta.metadata.name, |
| 358 | type: meta.metadata.type, |
| 359 | typeArgumentCount: 0, |
| 360 | deps: reflectDependencies(type), |
| 361 | target: compiler.FactoryTarget.Directive, |
| 362 | }); |
| 363 | } |
| 364 | return ngFactoryDef; |
| 365 | }, |
| 366 | // Make the property configurable in dev mode to allow overriding in tests |
| 367 | configurable: !!ngDevMode, |
| 368 | }); |
| 369 | } |
| 370 | |
| 371 | export function extendsDirectlyFromObject(type: Type<any>): boolean { |
| 372 | return Object.getPrototypeOf(type.prototype) === Object.prototype; |
no test coverage detected