All locale i18n options now support an object form which allows a base HREF to be defined for the locale. Each locale can now optionally define a custom base HREF that will be combined with the base HREF defined for the build configuration. By default if the shorthand form for the locale is used or the field is not present in the longhand form, the locale code will be used as the base HREF. To disable automatic augmentation a base HREF value of an empty string (`""`) can be used. This will prevent anything from being added to the existing base HREF.
For common scenarios, the shorthand form will result in the preferred and recommended outcome of each built locale variant of the application containing a defined base HREF containing the locale code.
With this change we retain the order of types are declared in the schema.
Ex:
```json
"oneOf": [
{
"type": "boolean"
},
{
"type": "string",
"description": "The name of the migration to run."
}
]
```
Currently this will result in:
```js
{ type: "string", types: ["string", "boolean"] }
```
This is because we use the order of types from the `allTypes` contant variable.a3a657f7e7/packages/angular_devkit/core/src/json/schema/utility.ts (L12)
Now this will result in:
```js
{ type: "boolean", types: ["boolean", "string"] };
```
The CLI parser will iterate over each type and will set a value of true if `--migrate-only` option is provided.
Related test in the CLL parser
1d105eb569/packages/angular/cli/models/parser_spec.ts (L34)1d105eb569/packages/angular/cli/models/parser_spec.ts (L132-L138)
With this change we now check if the current CLI version is the latest published version. If it is not, we install a temporary version to run the `ng update` with.
* feat(@angular-devkit/core): update schema to support new i18n options
"projects": {
"my-app": {
"projectType": "application",
"schematics": {},
"root": "",
"i18n": {
"sourceLocale": "en-US",
"locales": {
"fr": "src/locale/messages.fr.xlf"
}
},
"sourceRoot": "src",
...
}
}
* feat(@angular-devkit/build-angular): add new i18n options to browser and server builders
With this change we add `translateLocales` as new options for i18n in browser and server builders.
We also deprecate the following options;
* i18nLocale
* i18nFormat
* i18nFile
* feat(@angular-devkit/build-angular): deprecate `i18nFormat` and `i18nLocale` options of `extract-i18n` builder
Option `i18nFormat` has been deprecated in favor of `format` and `i18nLocale` option has been deprecated in favor of the `sourceLocale` sub option of the `i18n` project level option.
* feat(@angular/cli): add alias of `i18n-extract` for `x18n` command
* refactor: rename `translateLocales` to `localize`
* refactor(@angular-devkit/architect): use standard node resolution methods where possible
* refactor(@angular-devkit/core): use standard node resolution methods where possible
If a prompt is present on a schema property and the type is an array with a set of enum values, then the prompt type is a list with multiselect capabilites. This eliminates the need to specify the longhand form for typical multiselect prompts.
* feat(@angular-devkit/core): support resetting a memory host
* fix(@ngtools/webpack): cleanup more resources after modules are loaded
Followup to #12994
While trying to sync RxJS into google3 an issue came up around the code in question, where TypeScript is unable to properly infer the type. Adding this explicit type resolves the issue.
Replacing a previous added value in the same session should cause the replace operation to become an add operation with the original add operation elided.
Node.js versions prior to 11 used an unstable sort for arrays with a length greater than 10. This caused the prompt order of a schematic with more than 10 prompts to be inconsistent with the content of the file and the same schematic with several of the prompts removed. Since priorities were never fully implemented and property dependencies will most likely be used at a higher level instead, the underlying elements have been removed with this change.
Fixes#14402