This reverts commit edb84b340ff996df2ca6a2aaf765304cc64fef3e
The team has decided to bring back the faster but potentially less accurate method of detecting lazy routes upon JIT rebuilds (first builds will always use the more complete Angular compiler method). Applications that do not have lazy routes within libraries and that only use direct string literals with loadChildren should not be affected by the potential of less accurate detection. Note that the function overload of loadChildren also does not apply to this situation.
For those projects where correctness of lazy route detection outweighs rebuild speed, please consider using AOT mode for development. AOT mode will also provide a full set of template errors as well which JIT mode is not capable of doing.
Fixes#13102
This also adds the option to provide addition files when using `createTypescriptContext` this is paramount for the elide imports tests as without this certain symbols won't have the full details.
Which will cause tests to be false positive and re-surface issues like #13212
When using the `specifier.propertyName` with `typeChecker.getSymbolAtLocation` it will return a more detailed symbol then we originally have in the `usedSymbols` set.
We should probably use `symbol.id` to actually check if the symbols are the same, however the `id` is not exposed in the Symbol interface.
Using `node.name` will return the same symbol that we have stored in the set.
Fixes#13212
Readwrite removes readonly, while DeepReadonly recursively sets it. A ReadonlyArray
should be used if the type is an array, but that is too much of a change to our API
(JsonValue includes JsonArray but then we would need a ReadonlyJsonValue, and same
for object, which has deep roots in our API).
We should fix this in a further refactor at some point.
A Schema is either an Object or a boolean. We could reduce JsonSchema scope further
by adding properties, but a schema is a really complex type so its not worth the
effort.
At the moment, when the tslint formatted is non human readable, it is being fully silenced.
This changes this behaviour and only emit the formatted result.
Fixes#13173
* fix(@ngtools/webpack): files are not being updated when using `allowJs` or `resolveJsonModule`
Fixes#13076 and Fixes#12964
* test: add tests for allowJs and resolveJsonModule in watch mode
* test: improve tests for `allowJs`
When not using `allowJs` js files are not processed by the tsc compiler, but still processed by webpack.
So a correct test should be to check that the JS is transpiled down to ES5 syntax.
* feat(@schematics/angular): account for root level assets and `resourcesOutputPath`
By default we are only account for assets inside the assets folder. Which breaks the offline experience.
Fixes#13067
* test: add test to verify root level assets in service workers
* feat(@angular/cli): update schema to match new `sourceMap`
* feat(@angular-devkit/build-angular): fine grain settings for sourceMaps
This PR add more control over which sourceMaps you want, Now you can enable sourceMaps for scripts only, styles only or both. Also we added another functionality which are hidden sourcemaps. These are normaly used for error reporting tools.
Fixes#7527