
committed by
Igor Minar

parent
83c1383701
commit
83d207d0a7
@ -44,7 +44,8 @@ function createSyntheticIndexHost<H extends ts.CompilerHost>(
|
||||
|
||||
newHost.writeFile =
|
||||
(fileName: string, data: string, writeByteOrderMark: boolean,
|
||||
onError?: (message: string) => void, sourceFiles?: ts.SourceFile[]) => {
|
||||
onError: ((message: string) => void) | undefined,
|
||||
sourceFiles: Readonly<ts.SourceFile>[]) => {
|
||||
delegate.writeFile(fileName, data, writeByteOrderMark, onError, sourceFiles);
|
||||
if (fileName.match(DTS) && sourceFiles && sourceFiles.length == 1 &&
|
||||
path.normalize(sourceFiles[0].fileName) == normalSyntheticIndexName) {
|
||||
@ -57,7 +58,7 @@ function createSyntheticIndexHost<H extends ts.CompilerHost>(
|
||||
}
|
||||
|
||||
export function createBundleIndexHost<H extends ts.CompilerHost>(
|
||||
ngOptions: CompilerOptions, rootFiles: string[],
|
||||
ngOptions: CompilerOptions, rootFiles: ReadonlyArray<string>,
|
||||
host: H): {host: H, indexName?: string, errors?: ts.Diagnostic[]} {
|
||||
const files = rootFiles.filter(f => !DTS.test(f));
|
||||
if (files.length != 1) {
|
||||
@ -86,4 +87,4 @@ export function createBundleIndexHost<H extends ts.CompilerHost>(
|
||||
const content = privateEntriesToIndex(libraryIndex, metadataBundle.privates);
|
||||
host = createSyntheticIndexHost(host, {name, content, metadata});
|
||||
return {host, indexName: name};
|
||||
}
|
||||
}
|
||||
|
@ -563,7 +563,7 @@ export class MetadataBundler {
|
||||
|
||||
private convertExpressionNode(moduleName: string, value: MetadataSymbolicExpression):
|
||||
MetadataSymbolicExpression {
|
||||
const result: MetadataSymbolicExpression = {__symbolic: value.__symbolic};
|
||||
const result: MetadataSymbolicExpression = { __symbolic: value.__symbolic } as any;
|
||||
for (const key in value) {
|
||||
(result as any)[key] = this.convertValue(moduleName, (value as any)[key]);
|
||||
}
|
||||
@ -598,7 +598,7 @@ export class CompilerHostAdapter implements MetadataBundlerHost {
|
||||
|
||||
getMetadataFor(fileName: string): ModuleMetadata|undefined {
|
||||
const sourceFile = this.host.getSourceFile(fileName + '.ts', ts.ScriptTarget.Latest);
|
||||
return this.collector.getMetadata(sourceFile);
|
||||
return sourceFile && this.collector.getMetadata(sourceFile);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -99,15 +99,24 @@ export function isFunctionMetadata(value: any): value is FunctionMetadata {
|
||||
}
|
||||
|
||||
export type MetadataValue = string | number | boolean | undefined | null | MetadataObject |
|
||||
MetadataArray | MetadataSymbolicExpression | MetadataError;
|
||||
MetadataArray | MetadataSymbolicExpression | MetadataSymbolicReferenceExpression |
|
||||
MetadataSymbolicBinaryExpression | MetadataSymbolicIndexExpression |
|
||||
MetadataSymbolicCallExpression | MetadataSymbolicPrefixExpression |
|
||||
MetadataSymbolicIfExpression | MetadataSymbolicSpreadExpression |
|
||||
MetadataSymbolicSelectExpression | MetadataError;
|
||||
|
||||
export interface MetadataObject { [name: string]: MetadataValue; }
|
||||
|
||||
export interface MetadataArray { [name: number]: MetadataValue; }
|
||||
|
||||
export interface MetadataSymbolicExpression {
|
||||
__symbolic: 'binary'|'call'|'index'|'new'|'pre'|'reference'|'select'|'spread'|'if';
|
||||
}
|
||||
export type MetadataSymbolicExpression = MetadataSymbolicBinaryExpression |
|
||||
MetadataSymbolicIndexExpression | MetadataSymbolicIndexExpression |
|
||||
MetadataSymbolicCallExpression | MetadataSymbolicCallExpression |
|
||||
MetadataSymbolicPrefixExpression | MetadataSymbolicIfExpression |
|
||||
MetadataGlobalReferenceExpression | MetadataModuleReferenceExpression |
|
||||
MetadataImportedSymbolReferenceExpression | MetadataImportedDefaultReferenceExpression |
|
||||
MetadataSymbolicSelectExpression | MetadataSymbolicSpreadExpression;
|
||||
|
||||
export function isMetadataSymbolicExpression(value: any): value is MetadataSymbolicExpression {
|
||||
if (value) {
|
||||
switch (value.__symbolic) {
|
||||
@ -126,7 +135,7 @@ export function isMetadataSymbolicExpression(value: any): value is MetadataSymbo
|
||||
return false;
|
||||
}
|
||||
|
||||
export interface MetadataSymbolicBinaryExpression extends MetadataSymbolicExpression {
|
||||
export interface MetadataSymbolicBinaryExpression {
|
||||
__symbolic: 'binary';
|
||||
operator: '&&'|'||'|'|'|'^'|'&'|'=='|'!='|'==='|'!=='|'<'|'>'|'<='|'>='|'instanceof'|'in'|'as'|
|
||||
'<<'|'>>'|'>>>'|'+'|'-'|'*'|'/'|'%'|'**';
|
||||
@ -138,7 +147,7 @@ export function isMetadataSymbolicBinaryExpression(value: any):
|
||||
return value && value.__symbolic === 'binary';
|
||||
}
|
||||
|
||||
export interface MetadataSymbolicIndexExpression extends MetadataSymbolicExpression {
|
||||
export interface MetadataSymbolicIndexExpression {
|
||||
__symbolic: 'index';
|
||||
expression: MetadataValue;
|
||||
index: MetadataValue;
|
||||
@ -148,7 +157,7 @@ export function isMetadataSymbolicIndexExpression(value: any):
|
||||
return value && value.__symbolic === 'index';
|
||||
}
|
||||
|
||||
export interface MetadataSymbolicCallExpression extends MetadataSymbolicExpression {
|
||||
export interface MetadataSymbolicCallExpression {
|
||||
__symbolic: 'call'|'new';
|
||||
expression: MetadataValue;
|
||||
arguments?: MetadataValue[];
|
||||
@ -158,7 +167,7 @@ export function isMetadataSymbolicCallExpression(value: any):
|
||||
return value && (value.__symbolic === 'call' || value.__symbolic === 'new');
|
||||
}
|
||||
|
||||
export interface MetadataSymbolicPrefixExpression extends MetadataSymbolicExpression {
|
||||
export interface MetadataSymbolicPrefixExpression {
|
||||
__symbolic: 'pre';
|
||||
operator: '+'|'-'|'~'|'!';
|
||||
operand: MetadataValue;
|
||||
@ -168,7 +177,7 @@ export function isMetadataSymbolicPrefixExpression(value: any):
|
||||
return value && value.__symbolic === 'pre';
|
||||
}
|
||||
|
||||
export interface MetadataSymbolicIfExpression extends MetadataSymbolicExpression {
|
||||
export interface MetadataSymbolicIfExpression {
|
||||
__symbolic: 'if';
|
||||
condition: MetadataValue;
|
||||
thenExpression: MetadataValue;
|
||||
@ -190,8 +199,7 @@ export interface MetadataSourceLocationInfo {
|
||||
character?: number;
|
||||
}
|
||||
|
||||
export interface MetadataGlobalReferenceExpression extends MetadataSymbolicExpression,
|
||||
MetadataSourceLocationInfo {
|
||||
export interface MetadataGlobalReferenceExpression extends MetadataSourceLocationInfo {
|
||||
__symbolic: 'reference';
|
||||
name: string;
|
||||
arguments?: MetadataValue[];
|
||||
@ -201,8 +209,7 @@ export function isMetadataGlobalReferenceExpression(value: any):
|
||||
return value && value.name && !value.module && isMetadataSymbolicReferenceExpression(value);
|
||||
}
|
||||
|
||||
export interface MetadataModuleReferenceExpression extends MetadataSymbolicExpression,
|
||||
MetadataSourceLocationInfo {
|
||||
export interface MetadataModuleReferenceExpression extends MetadataSourceLocationInfo {
|
||||
__symbolic: 'reference';
|
||||
module: string;
|
||||
}
|
||||
@ -212,8 +219,7 @@ export function isMetadataModuleReferenceExpression(value: any):
|
||||
isMetadataSymbolicReferenceExpression(value);
|
||||
}
|
||||
|
||||
export interface MetadataImportedSymbolReferenceExpression extends MetadataSymbolicExpression,
|
||||
MetadataSourceLocationInfo {
|
||||
export interface MetadataImportedSymbolReferenceExpression extends MetadataSourceLocationInfo {
|
||||
__symbolic: 'reference';
|
||||
module: string;
|
||||
name: string;
|
||||
@ -224,8 +230,7 @@ export function isMetadataImportedSymbolReferenceExpression(value: any):
|
||||
return value && value.module && !!value.name && isMetadataSymbolicReferenceExpression(value);
|
||||
}
|
||||
|
||||
export interface MetadataImportedDefaultReferenceExpression extends MetadataSymbolicExpression,
|
||||
MetadataSourceLocationInfo {
|
||||
export interface MetadataImportedDefaultReferenceExpression extends MetadataSourceLocationInfo {
|
||||
__symbolic: 'reference';
|
||||
module: string;
|
||||
default:
|
||||
@ -245,17 +250,17 @@ export function isMetadataSymbolicReferenceExpression(value: any):
|
||||
return value && value.__symbolic === 'reference';
|
||||
}
|
||||
|
||||
export interface MetadataSymbolicSelectExpression extends MetadataSymbolicExpression {
|
||||
export interface MetadataSymbolicSelectExpression {
|
||||
__symbolic: 'select';
|
||||
expression: MetadataValue;
|
||||
name: string;
|
||||
member: string;
|
||||
}
|
||||
export function isMetadataSymbolicSelectExpression(value: any):
|
||||
value is MetadataSymbolicSelectExpression {
|
||||
return value && value.__symbolic === 'select';
|
||||
}
|
||||
|
||||
export interface MetadataSymbolicSpreadExpression extends MetadataSymbolicExpression {
|
||||
export interface MetadataSymbolicSpreadExpression {
|
||||
__symbolic: 'spread';
|
||||
expression: MetadataValue;
|
||||
}
|
||||
|
Reference in New Issue
Block a user