refactor(compiler): bump metadata version to 4 (#19338)

Also adds auto upgrade from lower version based
on the .d.ts file (e.g. from version 3 to 4).

This is needed as we are now also capturing type aliases
in metadata files (and we rely on this),
see 6e3498ca8e.
This commit is contained in:
Chuck Jazdzewski
2017-09-26 13:31:59 -07:00
committed by Victor Berchet
parent 86ffacf7ce
commit a75040d0a1
13 changed files with 152 additions and 87 deletions

View File

@ -48,7 +48,7 @@ export interface StaticSymbolResolverHost {
fileNameToModuleName(importedFilePath: string, containingFilePath: string): string;
}
const SUPPORTED_SCHEMA_VERSION = 3;
const SUPPORTED_SCHEMA_VERSION = 4;
/**
* This class is responsible for loading metadata per symbol,

View File

@ -7,7 +7,7 @@
*/
import {StaticReflector, StaticSymbol, StaticSymbolCache, StaticSymbolResolver, StaticSymbolResolverHost, core as compilerCore} from '@angular/compiler';
import {CollectorOptions} from '@angular/compiler-cli/src/metadata/index';
import {CollectorOptions, METADATA_VERSION} from '@angular/compiler-cli';
import {MockStaticSymbolResolverHost, MockSummaryResolver} from './static_symbol_resolver_spec';
@ -883,7 +883,7 @@ describe('StaticReflector', () => {
const DEFAULT_TEST_DATA: {[key: string]: any} = {
'/tmp/@angular/common/src/forms-deprecated/directives.d.ts': [{
'__symbolic': 'module',
'version': 3,
'version': METADATA_VERSION,
'metadata': {
'FORM_DIRECTIVES': [{
'__symbolic': 'reference',
@ -894,7 +894,7 @@ const DEFAULT_TEST_DATA: {[key: string]: any} = {
}],
'/tmp/@angular/common/src/directives/ng_for.d.ts': {
'__symbolic': 'module',
'version': 3,
'version': METADATA_VERSION,
'metadata': {
'NgFor': {
'__symbolic': 'class',
@ -924,19 +924,19 @@ const DEFAULT_TEST_DATA: {[key: string]: any} = {
}
},
'/tmp/@angular/core/src/linker/view_container_ref.d.ts':
{version: 3, 'metadata': {'ViewContainerRef': {'__symbolic': 'class'}}},
{version: METADATA_VERSION, 'metadata': {'ViewContainerRef': {'__symbolic': 'class'}}},
'/tmp/@angular/core/src/linker/template_ref.d.ts': {
version: 3,
version: METADATA_VERSION,
'module': './template_ref',
'metadata': {'TemplateRef': {'__symbolic': 'class'}}
},
'/tmp/@angular/core/src/change_detection/differs/iterable_differs.d.ts':
{version: 3, 'metadata': {'IterableDiffers': {'__symbolic': 'class'}}},
{version: METADATA_VERSION, 'metadata': {'IterableDiffers': {'__symbolic': 'class'}}},
'/tmp/@angular/core/src/change_detection/change_detector_ref.d.ts':
{version: 3, 'metadata': {'ChangeDetectorRef': {'__symbolic': 'class'}}},
{version: METADATA_VERSION, 'metadata': {'ChangeDetectorRef': {'__symbolic': 'class'}}},
'/tmp/src/app/hero-detail.component.d.ts': {
'__symbolic': 'module',
'version': 3,
'version': METADATA_VERSION,
'metadata': {
'HeroDetailComponent': {
'__symbolic': 'class',
@ -971,10 +971,10 @@ const DEFAULT_TEST_DATA: {[key: string]: any} = {
}
}
},
'/src/extern.d.ts': {'__symbolic': 'module', 'version': 3, metadata: {s: 's'}},
'/src/extern.d.ts': {'__symbolic': 'module', 'version': METADATA_VERSION, metadata: {s: 's'}},
'/tmp/src/error-reporting.d.ts': {
__symbolic: 'module',
version: 3,
version: METADATA_VERSION,
metadata: {
SomeClass: {
__symbolic: 'class',
@ -994,7 +994,7 @@ const DEFAULT_TEST_DATA: {[key: string]: any} = {
},
'/tmp/src/error-references.d.ts': {
__symbolic: 'module',
version: 3,
version: METADATA_VERSION,
metadata: {
Link1: {__symbolic: 'reference', module: 'src/error-references', name: 'Link2'},
Link2: {__symbolic: 'reference', module: 'src/error-references', name: 'ErrorSym'},
@ -1004,7 +1004,7 @@ const DEFAULT_TEST_DATA: {[key: string]: any} = {
},
'/tmp/src/function-declaration.d.ts': {
__symbolic: 'module',
version: 3,
version: METADATA_VERSION,
metadata: {
one: {
__symbolic: 'function',
@ -1031,7 +1031,7 @@ const DEFAULT_TEST_DATA: {[key: string]: any} = {
},
'/tmp/src/function-reference.ts': {
__symbolic: 'module',
version: 3,
version: METADATA_VERSION,
metadata: {
one: {
__symbolic: 'call',
@ -1058,7 +1058,7 @@ const DEFAULT_TEST_DATA: {[key: string]: any} = {
},
'/tmp/src/function-recursive.d.ts': {
__symbolic: 'modules',
version: 3,
version: METADATA_VERSION,
metadata: {
recursive: {
__symbolic: 'function',
@ -1103,7 +1103,7 @@ const DEFAULT_TEST_DATA: {[key: string]: any} = {
},
'/tmp/src/spread.ts': {
__symbolic: 'module',
version: 3,
version: METADATA_VERSION,
metadata: {spread: [0, {__symbolic: 'spread', expression: [1, 2, 3, 4]}, 5]}
},
'/tmp/src/custom-decorator.ts': `

View File

@ -7,11 +7,12 @@
*/
import {StaticSymbol, StaticSymbolCache, StaticSymbolResolver, StaticSymbolResolverHost, Summary, SummaryResolver} from '@angular/compiler';
import {CollectorOptions, METADATA_VERSION} from '@angular/compiler-cli';
import {MetadataCollector} from '@angular/compiler-cli/src/metadata/collector';
import {CollectorOptions} from '@angular/compiler-cli/src/metadata/index';
import * as ts from 'typescript';
// This matches .ts files but not .d.ts files.
const TS_EXT = /(^.|(?!\.d)..)\.ts$/;
@ -38,7 +39,7 @@ describe('StaticSymbolResolver', () => {
() => symbolResolver.resolveSymbol(
symbolResolver.getSymbolByModule('src/version-error', 'e')))
.toThrow(new Error(
'Metadata version mismatch for module /tmp/src/version-error.d.ts, found version 100, expected 3'));
`Metadata version mismatch for module /tmp/src/version-error.d.ts, found version 100, expected ${METADATA_VERSION}`));
});
it('should throw an exception for version 2 metadata', () => {
@ -155,14 +156,14 @@ describe('StaticSymbolResolver', () => {
{
'/test.d.ts': [{
'__symbolic': 'module',
'version': 3,
'version': METADATA_VERSION,
'metadata': {
'a': {'__symbolic': 'reference', 'name': 'b', 'module': './test2'},
}
}],
'/test2.d.ts': [{
'__symbolic': 'module',
'version': 3,
'version': METADATA_VERSION,
'metadata': {
'b': {'__symbolic': 'reference', 'name': 'c', 'module': './test3'},
}
@ -299,7 +300,7 @@ describe('StaticSymbolResolver', () => {
init({
'/test.d.ts': [{
'__symbolic': 'module',
'version': 3,
'version': METADATA_VERSION,
'metadata': {
'AParam': {__symbolic: 'class'},
'AClass': {
@ -504,7 +505,7 @@ const DEFAULT_TEST_DATA: {[key: string]: any} = {
'/tmp/src/version-2-error.d.ts': {'__symbolic': 'module', 'version': 2, metadata: {e: 's'}},
'/tmp/src/reexport/reexport.d.ts': {
__symbolic: 'module',
version: 3,
version: METADATA_VERSION,
metadata: {
Six: {__symbolic: 'class'},
},
@ -515,7 +516,7 @@ const DEFAULT_TEST_DATA: {[key: string]: any} = {
},
'/tmp/src/reexport/src/origin1.d.ts': {
__symbolic: 'module',
version: 3,
version: METADATA_VERSION,
metadata: {
One: {__symbolic: 'class'},
Two: {__symbolic: 'class'},
@ -525,26 +526,26 @@ const DEFAULT_TEST_DATA: {[key: string]: any} = {
},
'/tmp/src/reexport/src/origin5.d.ts': {
__symbolic: 'module',
version: 3,
version: METADATA_VERSION,
metadata: {
Five: {__symbolic: 'class'},
},
},
'/tmp/src/reexport/src/origin30.d.ts': {
__symbolic: 'module',
version: 3,
version: METADATA_VERSION,
metadata: {
Thirty: {__symbolic: 'class'},
},
},
'/tmp/src/reexport/src/originNone.d.ts': {
__symbolic: 'module',
version: 3,
version: METADATA_VERSION,
metadata: {},
},
'/tmp/src/reexport/src/reexport2.d.ts': {
__symbolic: 'module',
version: 3,
version: METADATA_VERSION,
metadata: {},
exports: [{from: './originNone'}, {from: './origin30'}]
}

View File

@ -7,6 +7,7 @@
*/
import {AotSummaryResolver, AotSummaryResolverHost, CompileSummaryKind, StaticSymbol, StaticSymbolCache, StaticSymbolResolver, StaticSymbolResolverHost} from '@angular/compiler';
import {METADATA_VERSION} from '@angular/compiler-cli';
import {deserializeSummaries, serializeSummaries} from '@angular/compiler/src/aot/summary_serializer';
import {summaryFileName} from '@angular/compiler/src/aot/util';
@ -242,7 +243,7 @@ export function main() {
export var local = 'a';
`,
'/tmp/non_summary.d.ts':
{__symbolic: 'module', version: 3, metadata: {'external': 'b'}}
{__symbolic: 'module', version: METADATA_VERSION, metadata: {'external': 'b'}}
});
const serialized = serializeSummaries(
'someFile.ts', createMockOutputContext(), summaryResolver, symbolResolver, [{