TypeScript compiler will now build to ES2015 code and modules. Babili is used to minify ES2015 code, providing an initial optimization that we couldn't previously get just from Uglify. Uses Babel to convert ES2015 to UMD/ES5 code, and Uglify to minimize the output.
323 lines
15 KiB
TypeScript
323 lines
15 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright Google Inc. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.io/license
|
|
*/
|
|
|
|
import {ANALYZE_FOR_ENTRY_COMPONENTS, ChangeDetectionStrategy, ChangeDetectorRef, ComponentFactory, ComponentFactoryResolver, ComponentRef, ElementRef, Injector, LOCALE_ID, NgModuleFactory, QueryList, RenderComponentType, Renderer, SecurityContext, SimpleChange, TRANSLATIONS_FORMAT, TemplateRef, ViewContainerRef, ViewEncapsulation, ɵAnimationGroupPlayer, ɵAnimationKeyframe, ɵAnimationSequencePlayer, ɵAnimationStyles, ɵAnimationTransition, ɵAppView, ɵChangeDetectorStatus, ɵCodegenComponentFactoryResolver, ɵComponentRef_, ɵDebugAppView, ɵDebugContext, ɵEMPTY_ARRAY, ɵEMPTY_INLINE_ARRAY, ɵEMPTY_MAP, ɵInlineArray16, ɵInlineArray2, ɵInlineArray4, ɵInlineArray8, ɵInlineArrayDynamic, ɵNgModuleInjector, ɵNoOpAnimationPlayer, ɵStaticNodeDebugInfo, ɵTemplateRef_, ɵValueUnwrapper, ɵViewContainer, ɵViewType, ɵViewUtils, ɵanchorDef, ɵbalanceAnimationKeyframes, ɵcastByValue, ɵcheckBinding, ɵcheckBindingChange, ɵcheckRenderAttribute, ɵcheckRenderClass, ɵcheckRenderProperty, ɵcheckRenderStyle, ɵcheckRenderText, ɵclearStyles, ɵcollectAndResolveStyles, ɵcreateRendererTypeV2, ɵcreateRenderComponentType, ɵcreateRenderElement, ɵdevModeEqual, ɵdirectiveDef, ɵelementDef, ɵinlineInterpolate, ɵinterpolate, ɵngContentDef, ɵnodeValue, ɵnoop, ɵpipeDef, ɵprepareFinalAnimationStyles, ɵproviderDef, ɵpureArrayDef, ɵpureObjectDef, ɵpurePipeDef, ɵpureProxy1, ɵpureProxy10, ɵpureProxy2, ɵpureProxy3, ɵpureProxy4, ɵpureProxy5, ɵpureProxy6, ɵpureProxy7, ɵpureProxy8, ɵpureProxy9, ɵqueryDef, ɵreflector, ɵregisterModuleFactory, ɵrenderStyles, ɵselectOrCreateRenderHostElement, ɵsetBindingDebugInfo, ɵsetBindingDebugInfoForChanges, ɵsubscribeToRenderElement, ɵtextDef, ɵunwrapValue, ɵviewDef} from '@angular/core';
|
|
|
|
import {CompileIdentifierMetadata, CompileTokenMetadata} from './compile_metadata';
|
|
|
|
const CORE = assetUrl('core');
|
|
const VIEW_UTILS_MODULE_URL = assetUrl('core', 'linker/view_utils');
|
|
|
|
export interface IdentifierSpec {
|
|
name: string;
|
|
moduleUrl: string;
|
|
runtime: any;
|
|
}
|
|
|
|
export class Identifiers {
|
|
static ANALYZE_FOR_ENTRY_COMPONENTS: IdentifierSpec = {
|
|
name: 'ANALYZE_FOR_ENTRY_COMPONENTS',
|
|
moduleUrl: CORE,
|
|
runtime: ANALYZE_FOR_ENTRY_COMPONENTS
|
|
};
|
|
static ViewUtils: IdentifierSpec = {name: 'ɵViewUtils', moduleUrl: CORE, runtime: ɵViewUtils};
|
|
static AppView: IdentifierSpec = {name: 'ɵAppView', moduleUrl: CORE, runtime: ɵAppView};
|
|
static DebugAppView:
|
|
IdentifierSpec = {name: 'ɵDebugAppView', moduleUrl: CORE, runtime: ɵDebugAppView};
|
|
static ViewContainer:
|
|
IdentifierSpec = {name: 'ɵViewContainer', moduleUrl: CORE, runtime: ɵViewContainer};
|
|
static ElementRef: IdentifierSpec = {name: 'ElementRef', moduleUrl: CORE, runtime: ElementRef};
|
|
static ViewContainerRef:
|
|
IdentifierSpec = {name: 'ViewContainerRef', moduleUrl: CORE, runtime: ViewContainerRef};
|
|
static ChangeDetectorRef:
|
|
IdentifierSpec = {name: 'ChangeDetectorRef', moduleUrl: CORE, runtime: ChangeDetectorRef};
|
|
static RenderComponentType:
|
|
IdentifierSpec = {name: 'RenderComponentType', moduleUrl: CORE, runtime: RenderComponentType};
|
|
static QueryList: IdentifierSpec = {name: 'QueryList', moduleUrl: CORE, runtime: QueryList};
|
|
static TemplateRef: IdentifierSpec = {name: 'TemplateRef', moduleUrl: CORE, runtime: TemplateRef};
|
|
static TemplateRef_:
|
|
IdentifierSpec = {name: 'ɵTemplateRef_', moduleUrl: CORE, runtime: ɵTemplateRef_};
|
|
static CodegenComponentFactoryResolver: IdentifierSpec = {
|
|
name: 'ɵCodegenComponentFactoryResolver',
|
|
moduleUrl: CORE,
|
|
runtime: ɵCodegenComponentFactoryResolver
|
|
};
|
|
static ComponentFactoryResolver: IdentifierSpec = {
|
|
name: 'ComponentFactoryResolver',
|
|
moduleUrl: CORE,
|
|
runtime: ComponentFactoryResolver
|
|
};
|
|
static ComponentFactory:
|
|
IdentifierSpec = {name: 'ComponentFactory', moduleUrl: CORE, runtime: ComponentFactory};
|
|
static ComponentRef_: IdentifierSpec = {
|
|
name: 'ɵComponentRef_',
|
|
moduleUrl: CORE,
|
|
runtime: ɵComponentRef_,
|
|
};
|
|
static ComponentRef:
|
|
IdentifierSpec = {name: 'ComponentRef', moduleUrl: CORE, runtime: ComponentRef};
|
|
static NgModuleFactory:
|
|
IdentifierSpec = {name: 'NgModuleFactory', moduleUrl: CORE, runtime: NgModuleFactory};
|
|
static NgModuleInjector: IdentifierSpec = {
|
|
name: 'ɵNgModuleInjector',
|
|
moduleUrl: CORE,
|
|
runtime: ɵNgModuleInjector,
|
|
};
|
|
static RegisterModuleFactoryFn: IdentifierSpec = {
|
|
name: 'ɵregisterModuleFactory',
|
|
moduleUrl: CORE,
|
|
runtime: ɵregisterModuleFactory,
|
|
};
|
|
static ValueUnwrapper:
|
|
IdentifierSpec = {name: 'ɵValueUnwrapper', moduleUrl: CORE, runtime: ɵValueUnwrapper};
|
|
static Injector: IdentifierSpec = {name: 'Injector', moduleUrl: CORE, runtime: Injector};
|
|
static ViewEncapsulation:
|
|
IdentifierSpec = {name: 'ViewEncapsulation', moduleUrl: CORE, runtime: ViewEncapsulation};
|
|
static ViewType: IdentifierSpec = {name: 'ɵViewType', moduleUrl: CORE, runtime: ɵViewType};
|
|
static ChangeDetectionStrategy: IdentifierSpec = {
|
|
name: 'ChangeDetectionStrategy',
|
|
moduleUrl: CORE,
|
|
runtime: ChangeDetectionStrategy
|
|
};
|
|
static StaticNodeDebugInfo: IdentifierSpec = {
|
|
name: 'ɵStaticNodeDebugInfo',
|
|
moduleUrl: CORE,
|
|
runtime: ɵStaticNodeDebugInfo
|
|
};
|
|
static DebugContext:
|
|
IdentifierSpec = {name: 'ɵDebugContext', moduleUrl: CORE, runtime: ɵDebugContext};
|
|
static Renderer: IdentifierSpec = {name: 'Renderer', moduleUrl: CORE, runtime: Renderer};
|
|
static SimpleChange:
|
|
IdentifierSpec = {name: 'SimpleChange', moduleUrl: CORE, runtime: SimpleChange};
|
|
static ChangeDetectorStatus: IdentifierSpec = {
|
|
name: 'ɵChangeDetectorStatus',
|
|
moduleUrl: CORE,
|
|
runtime: ɵChangeDetectorStatus
|
|
};
|
|
static checkBinding:
|
|
IdentifierSpec = {name: 'ɵcheckBinding', moduleUrl: CORE, runtime: ɵcheckBinding};
|
|
static checkBindingChange:
|
|
IdentifierSpec = {name: 'ɵcheckBindingChange', moduleUrl: CORE, runtime: ɵcheckBindingChange};
|
|
static checkRenderText:
|
|
IdentifierSpec = {name: 'ɵcheckRenderText', moduleUrl: CORE, runtime: ɵcheckRenderText};
|
|
static checkRenderProperty: IdentifierSpec = {
|
|
name: 'ɵcheckRenderProperty',
|
|
moduleUrl: CORE,
|
|
runtime: ɵcheckRenderProperty
|
|
};
|
|
static checkRenderAttribute: IdentifierSpec = {
|
|
name: 'ɵcheckRenderAttribute',
|
|
moduleUrl: CORE,
|
|
runtime: ɵcheckRenderAttribute
|
|
};
|
|
static checkRenderClass:
|
|
IdentifierSpec = {name: 'ɵcheckRenderClass', moduleUrl: CORE, runtime: ɵcheckRenderClass};
|
|
static checkRenderStyle:
|
|
IdentifierSpec = {name: 'ɵcheckRenderStyle', moduleUrl: CORE, runtime: ɵcheckRenderStyle};
|
|
static devModeEqual:
|
|
IdentifierSpec = {name: 'ɵdevModeEqual', moduleUrl: CORE, runtime: ɵdevModeEqual};
|
|
static inlineInterpolate:
|
|
IdentifierSpec = {name: 'ɵinlineInterpolate', moduleUrl: CORE, runtime: ɵinlineInterpolate};
|
|
static interpolate:
|
|
IdentifierSpec = {name: 'ɵinterpolate', moduleUrl: CORE, runtime: ɵinterpolate};
|
|
static castByValue:
|
|
IdentifierSpec = {name: 'ɵcastByValue', moduleUrl: CORE, runtime: ɵcastByValue};
|
|
static EMPTY_ARRAY:
|
|
IdentifierSpec = {name: 'ɵEMPTY_ARRAY', moduleUrl: CORE, runtime: ɵEMPTY_ARRAY};
|
|
static EMPTY_MAP: IdentifierSpec = {name: 'ɵEMPTY_MAP', moduleUrl: CORE, runtime: ɵEMPTY_MAP};
|
|
static createRenderElement: IdentifierSpec = {
|
|
name: 'ɵcreateRenderElement',
|
|
moduleUrl: CORE,
|
|
runtime: ɵcreateRenderElement
|
|
};
|
|
static selectOrCreateRenderHostElement: IdentifierSpec = {
|
|
name: 'ɵselectOrCreateRenderHostElement',
|
|
moduleUrl: CORE,
|
|
runtime: ɵselectOrCreateRenderHostElement
|
|
};
|
|
static pureProxies: IdentifierSpec[] = [
|
|
null,
|
|
{name: 'ɵpureProxy1', moduleUrl: CORE, runtime: ɵpureProxy1},
|
|
{name: 'ɵpureProxy2', moduleUrl: CORE, runtime: ɵpureProxy2},
|
|
{name: 'ɵpureProxy3', moduleUrl: CORE, runtime: ɵpureProxy3},
|
|
{name: 'ɵpureProxy4', moduleUrl: CORE, runtime: ɵpureProxy4},
|
|
{name: 'ɵpureProxy5', moduleUrl: CORE, runtime: ɵpureProxy5},
|
|
{name: 'ɵpureProxy6', moduleUrl: CORE, runtime: ɵpureProxy6},
|
|
{name: 'ɵpureProxy7', moduleUrl: CORE, runtime: ɵpureProxy7},
|
|
{name: 'ɵpureProxy8', moduleUrl: CORE, runtime: ɵpureProxy8},
|
|
{name: 'ɵpureProxy9', moduleUrl: CORE, runtime: ɵpureProxy9},
|
|
{name: 'ɵpureProxy10', moduleUrl: CORE, runtime: ɵpureProxy10},
|
|
];
|
|
static SecurityContext: IdentifierSpec = {
|
|
name: 'SecurityContext',
|
|
moduleUrl: CORE,
|
|
runtime: SecurityContext,
|
|
};
|
|
static AnimationKeyframe:
|
|
IdentifierSpec = {name: 'ɵAnimationKeyframe', moduleUrl: CORE, runtime: ɵAnimationKeyframe};
|
|
static AnimationStyles:
|
|
IdentifierSpec = {name: 'ɵAnimationStyles', moduleUrl: CORE, runtime: ɵAnimationStyles};
|
|
static NoOpAnimationPlayer: IdentifierSpec = {
|
|
name: 'ɵNoOpAnimationPlayer',
|
|
moduleUrl: CORE,
|
|
runtime: ɵNoOpAnimationPlayer
|
|
};
|
|
static AnimationGroupPlayer: IdentifierSpec = {
|
|
name: 'ɵAnimationGroupPlayer',
|
|
moduleUrl: CORE,
|
|
runtime: ɵAnimationGroupPlayer
|
|
};
|
|
static AnimationSequencePlayer: IdentifierSpec = {
|
|
name: 'ɵAnimationSequencePlayer',
|
|
moduleUrl: CORE,
|
|
runtime: ɵAnimationSequencePlayer
|
|
};
|
|
static prepareFinalAnimationStyles: IdentifierSpec = {
|
|
name: 'ɵprepareFinalAnimationStyles',
|
|
moduleUrl: CORE,
|
|
runtime: ɵprepareFinalAnimationStyles
|
|
};
|
|
static balanceAnimationKeyframes: IdentifierSpec = {
|
|
name: 'ɵbalanceAnimationKeyframes',
|
|
moduleUrl: CORE,
|
|
runtime: ɵbalanceAnimationKeyframes
|
|
};
|
|
static clearStyles:
|
|
IdentifierSpec = {name: 'ɵclearStyles', moduleUrl: CORE, runtime: ɵclearStyles};
|
|
static renderStyles:
|
|
IdentifierSpec = {name: 'ɵrenderStyles', moduleUrl: CORE, runtime: ɵrenderStyles};
|
|
static collectAndResolveStyles: IdentifierSpec = {
|
|
name: 'ɵcollectAndResolveStyles',
|
|
moduleUrl: CORE,
|
|
runtime: ɵcollectAndResolveStyles
|
|
};
|
|
static LOCALE_ID: IdentifierSpec = {name: 'LOCALE_ID', moduleUrl: CORE, runtime: LOCALE_ID};
|
|
static TRANSLATIONS_FORMAT:
|
|
IdentifierSpec = {name: 'TRANSLATIONS_FORMAT', moduleUrl: CORE, runtime: TRANSLATIONS_FORMAT};
|
|
static setBindingDebugInfo: IdentifierSpec = {
|
|
name: 'ɵsetBindingDebugInfo',
|
|
moduleUrl: CORE,
|
|
runtime: ɵsetBindingDebugInfo
|
|
};
|
|
static setBindingDebugInfoForChanges: IdentifierSpec = {
|
|
name: 'ɵsetBindingDebugInfoForChanges',
|
|
moduleUrl: CORE,
|
|
runtime: ɵsetBindingDebugInfoForChanges
|
|
};
|
|
static AnimationTransition: IdentifierSpec = {
|
|
name: 'ɵAnimationTransition',
|
|
moduleUrl: CORE,
|
|
runtime: ɵAnimationTransition
|
|
};
|
|
|
|
// This is just the interface!
|
|
static InlineArray:
|
|
IdentifierSpec = {name: 'InlineArray', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: null};
|
|
static inlineArrays: IdentifierSpec[] = [
|
|
{name: 'ɵInlineArray2', moduleUrl: CORE, runtime: ɵInlineArray2},
|
|
{name: 'ɵInlineArray2', moduleUrl: CORE, runtime: ɵInlineArray2},
|
|
{name: 'ɵInlineArray4', moduleUrl: CORE, runtime: ɵInlineArray4},
|
|
{name: 'ɵInlineArray8', moduleUrl: CORE, runtime: ɵInlineArray8},
|
|
{name: 'ɵInlineArray16', moduleUrl: CORE, runtime: ɵInlineArray16},
|
|
];
|
|
static EMPTY_INLINE_ARRAY:
|
|
IdentifierSpec = {name: 'ɵEMPTY_INLINE_ARRAY', moduleUrl: CORE, runtime: ɵEMPTY_INLINE_ARRAY};
|
|
static InlineArrayDynamic:
|
|
IdentifierSpec = {name: 'ɵInlineArrayDynamic', moduleUrl: CORE, runtime: ɵInlineArrayDynamic};
|
|
static subscribeToRenderElement: IdentifierSpec = {
|
|
name: 'ɵsubscribeToRenderElement',
|
|
moduleUrl: CORE,
|
|
runtime: ɵsubscribeToRenderElement
|
|
};
|
|
static createRenderComponentType: IdentifierSpec = {
|
|
name: 'ɵcreateRenderComponentType',
|
|
moduleUrl: CORE,
|
|
runtime: ɵcreateRenderComponentType
|
|
};
|
|
|
|
|
|
static noop: IdentifierSpec = {name: 'ɵnoop', moduleUrl: CORE, runtime: ɵnoop};
|
|
|
|
static viewDef: IdentifierSpec = {name: 'ɵviewDef', moduleUrl: CORE, runtime: ɵviewDef};
|
|
static elementDef: IdentifierSpec = {name: 'ɵelementDef', moduleUrl: CORE, runtime: ɵelementDef};
|
|
static anchorDef: IdentifierSpec = {name: 'ɵanchorDef', moduleUrl: CORE, runtime: ɵanchorDef};
|
|
static textDef: IdentifierSpec = {name: 'ɵtextDef', moduleUrl: CORE, runtime: ɵtextDef};
|
|
static directiveDef:
|
|
IdentifierSpec = {name: 'ɵdirectiveDef', moduleUrl: CORE, runtime: ɵdirectiveDef};
|
|
static providerDef:
|
|
IdentifierSpec = {name: 'ɵproviderDef', moduleUrl: CORE, runtime: ɵproviderDef};
|
|
static queryDef: IdentifierSpec = {name: 'ɵqueryDef', moduleUrl: CORE, runtime: ɵqueryDef};
|
|
static pureArrayDef:
|
|
IdentifierSpec = {name: 'ɵpureArrayDef', moduleUrl: CORE, runtime: ɵpureArrayDef};
|
|
static pureObjectDef:
|
|
IdentifierSpec = {name: 'ɵpureObjectRef', moduleUrl: CORE, runtime: ɵpureObjectDef};
|
|
static purePipeDef:
|
|
IdentifierSpec = {name: 'ɵpurePipeDef', moduleUrl: CORE, runtime: ɵpurePipeDef};
|
|
static pipeDef: IdentifierSpec = {name: 'ɵpipeDef', moduleUrl: CORE, runtime: ɵpipeDef};
|
|
static nodeValue: IdentifierSpec = {name: 'ɵnodeValue', moduleUrl: CORE, runtime: ɵnodeValue};
|
|
static ngContentDef:
|
|
IdentifierSpec = {name: 'ɵngContentDef', moduleUrl: CORE, runtime: ɵngContentDef};
|
|
static unwrapValue:
|
|
IdentifierSpec = {name: 'ɵunwrapValue', moduleUrl: CORE, runtime: ɵunwrapValue};
|
|
static createRendererTypeV2: IdentifierSpec = {
|
|
name: 'ɵcreateRendererTypeV2',
|
|
moduleUrl: CORE,
|
|
runtime: ɵcreateRendererTypeV2
|
|
};
|
|
static RendererTypeV2: IdentifierSpec = {
|
|
name: 'RendererTypeV2',
|
|
moduleUrl: CORE,
|
|
// type only
|
|
runtime: null
|
|
};
|
|
static ViewDefinition: IdentifierSpec = {
|
|
name: 'ɵviewEngine',
|
|
moduleUrl: CORE,
|
|
member: 'ViewDefinition',
|
|
// type only
|
|
runtime: null
|
|
};
|
|
static createComponentFactory: IdentifierSpec = {
|
|
name: 'ɵviewEngine',
|
|
moduleUrl: CORE,
|
|
member: 'createComponentFactory',
|
|
runtime: ɵviewEngine.createComponentFactory
|
|
};
|
|
}
|
|
|
|
export function assetUrl(pkg: string, path: string = null, type: string = 'src'): string {
|
|
if (path == null) {
|
|
return `@angular/${pkg}`;
|
|
} else {
|
|
return `@angular/${pkg}/${type}/${path}`;
|
|
}
|
|
}
|
|
|
|
export function resolveIdentifier(identifier: IdentifierSpec) {
|
|
let name = identifier.name;
|
|
return ɵreflector.resolveIdentifier(name, identifier.moduleUrl, null, identifier.runtime);
|
|
}
|
|
|
|
export function createIdentifier(identifier: IdentifierSpec): CompileIdentifierMetadata {
|
|
return {reference: resolveIdentifier(identifier)};
|
|
}
|
|
|
|
export function identifierToken(identifier: CompileIdentifierMetadata): CompileTokenMetadata {
|
|
return {identifier: identifier};
|
|
}
|
|
|
|
export function createIdentifierToken(identifier: IdentifierSpec): CompileTokenMetadata {
|
|
return identifierToken(createIdentifier(identifier));
|
|
}
|
|
|
|
export function createEnumIdentifier(
|
|
enumType: IdentifierSpec, name: string): CompileIdentifierMetadata {
|
|
const resolvedEnum = ɵreflector.resolveEnum(resolveIdentifier(enumType), name);
|
|
return {reference: resolvedEnum};
|
|
}
|