refactor(view_compiler): codegen DI and Queries
BREAKING CHANGE: - Renderer: * renderComponent method is removed form `Renderer`, only present on `RootRenderer` * Renderer.setDebugInfo is removed. Renderer.createElement / createText / createTemplateAnchor now take the DebugInfo directly. - Query semantics: * Queries don't work with dynamically loaded components. * e.g. for router-outlet: loaded components can't be queries via @ViewQuery, but router-outlet emits an event `activate` now that emits the activated component - Exception classes and the context inside changed (renamed fields) - DebugElement.attributes is an Object and not a Map in JS any more - ChangeDetectorGenConfig was renamed into CompilerConfig - AppViewManager.createEmbeddedViewInContainer / AppViewManager.createHostViewInContainer are removed, use the methods in ViewContainerRef instead - Change detection order changed: * 1. dirty check component inputs * 2. dirty check content children * 3. update render nodes Closes #6301 Closes #6567
This commit is contained in:
@ -8,6 +8,7 @@ import mergeTrees from '../broccoli-merge-trees';
|
||||
var path = require('path');
|
||||
import renderLodashTemplate from '../broccoli-lodash';
|
||||
import replace from '../broccoli-replace';
|
||||
import generateForTest from '../broccoli-generate-for-test';
|
||||
var stew = require('broccoli-stew');
|
||||
var writeFile = require('broccoli-file-creator');
|
||||
|
||||
@ -120,16 +121,41 @@ module.exports = function makeNodeTree(projects, destinationPath) {
|
||||
|
||||
let compiledTree = mergeTrees([compiledSrcTree, compiledTestTree]);
|
||||
|
||||
// Generate test files
|
||||
let generatedJsTestFiles =
|
||||
generateForTest(compiledTree, {files: ['*/test/**/*_codegen_untyped.js']});
|
||||
let generatedTsTestFiles = stew.rename(
|
||||
generateForTest(compiledTree, {files: ['*/test/**/*_codegen_typed.js']}), /.js$/, '.ts');
|
||||
|
||||
// Compile generated test files against the src @internal .d.ts and the test files
|
||||
compiledTree = mergeTrees(
|
||||
[
|
||||
compiledTree,
|
||||
generatedJsTestFiles,
|
||||
compileTree(
|
||||
new Funnel(
|
||||
mergeTrees([
|
||||
packageTypings,
|
||||
new Funnel('modules',
|
||||
{include: ['angular2/manual_typings/**', 'angular2/typings/**']}),
|
||||
generatedTsTestFiles,
|
||||
srcPrivateDeclarations,
|
||||
compiledTestTree
|
||||
]),
|
||||
{include: ['angular2/**', 'rxjs/**', 'zone.js/**']}),
|
||||
false, [])
|
||||
],
|
||||
{overwrite: true});
|
||||
|
||||
// Down-level .d.ts files to be TS 1.8 compatible
|
||||
// TODO(alexeagle): this can be removed once we drop support for using Angular 2 with TS 1.8
|
||||
compiledTree = replace(compiledTree, {
|
||||
files: ['**/*.d.ts'],
|
||||
patterns: [
|
||||
{match: /^(\s*(static\s+)?)readonly\s+/mg, replacement: "$1"},
|
||||
{match: /^(\s*(static\s+|private\s+)*)readonly\s+/mg, replacement: "$1"},
|
||||
]
|
||||
});
|
||||
|
||||
|
||||
// Now we add the LICENSE file into all the folders that will become npm packages
|
||||
outputPackages.forEach(function(destDir) {
|
||||
var license = new Funnel('.', {files: ['LICENSE'], destDir: destDir});
|
||||
|
Reference in New Issue
Block a user