122 Commits

Author SHA1 Message Date
Alan Agius
2432b86758 build: update fast-json-stable-stringify to 2.1 2020-01-02 11:42:44 -08:00
Charles Lyding
c37eaeec43 fix(@angular-devkit/build-angular): augment base HREF when localizing
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.
2019-12-04 08:14:16 -08:00
Alan Agius
ca4bdcac84 fix(@angular-devkit/core): retain order of types set in allOf, anyOf and oneOf when parsing schema
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)
2019-11-15 10:43:07 -08:00
Charles Lyding
7e7248d9aa fix(@angular-devkit/core): allow multiselect list defaults
Fixes #16104
2019-11-12 11:53:14 -08:00
Alan Agius
613f7dbcd4 refactor(@angular-devkit/core): deprecate old terminal and resolve APIs 2019-10-22 13:26:52 -07:00
Alan Agius
c3169ae7d2 New i18n schema (#15760)
* 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`
2019-10-10 12:39:00 -07:00
vikerman
2303a045ee feat(@angular-devkit/build-angular): add analytics for ivy/non-ivy builds
Look for `ngComponentDef` or `ngModuleDef` in the webpack analytics plugin
to report back whether the current build is built with Ivy enabled.
2019-10-02 12:06:38 -07:00
Keen Yee Liau
8497d9ac7b build: use import instead of require for fast-json-stable-stringify 2019-10-02 11:21:10 -07:00
Keen Yee Liau
5a2a055c4d build: g3 sync for angular_devkit
Fix all build errors in g3
2019-10-01 13:15:50 -07:00
Charles Lyding
08aa5c615e fix(@angular-devkit/core): json visitors should only set writable properties 2019-09-26 10:00:35 -07:00
Charles Lyding
2a689ff3ca feat(@angular-devkit/core): auto discover multiselect schema prompt types
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.
2019-09-11 10:08:23 -07:00
Alan Agius
26dd51221a style: collapse if statements (#15449) 2019-08-27 10:25:14 -07:00
Alan Agius
a6fbee6865 style: add no-invalid-await and prefer-promise-shorthand lint rules (#15450)
Add these two lint rules for a better code quality and readability
2019-08-27 10:24:58 -07:00
Charles
7f6ba9e001 fix(@angular-devkit/core): track workspace targets with no original collection (#15413)
Fixes #15403
2019-08-23 11:37:06 -07:00
Charles
b0b3212719 fix(@ngtools/webpack): cleanup more resources after modules are loaded (#15292)
* feat(@angular-devkit/core): support resetting a memory host

* fix(@ngtools/webpack): cleanup more resources after modules are loaded

Followup to #12994
2019-08-12 10:26:19 -07:00
Alan Agius
6f0e7bf437 fix(@angular-devkit/core): add schema defaults when value is undefined
Related to https://github.com/angular/angular-cli/pull/15207#discussion_r309175463
2019-08-02 13:41:45 -07:00
vikerman
5ef0846214 fix(@angular-devkit/architect): one more fix for newest version of rxjs 2019-07-02 12:46:30 -07:00
Hans Larsen
af6c6d41d5 refactor: add count of component to analytics 2019-07-02 11:07:13 -07:00
Hans Larsen
46ade49a2f feat(@angular/cli): report RAM in gigabytes instead of megabytes
Otherwise its too much noise. Some people have weird MB count probably due to
containers and VMs.
2019-06-27 09:17:26 -07:00
Ben Lesh
caeaa53e1a refactor: Add explict type to allow RxJS to be updated
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.
2019-06-12 16:36:46 -07:00
Filipe Silva
819892a359 ci: remove appveyor and buildkite 2019-06-06 16:02:17 -07:00
Charles Lyding
2b777e446f fix(@angular-devkit/core): properly replace an added value in workspace API
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.
2019-05-23 19:14:19 +02:00
Charles Lyding
825bcacdc2 fix(@angular-devkit/core): deprecate redundant isObservable function
rxjs provides a canonical version of the helper function.  Internal usage has also been changed to use this version.
2019-05-13 15:57:54 -07:00
Charles Lyding
64786cf64a fix(@angular-devkit/core): remove unimplemented prompt priority
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
2019-05-13 15:56:39 -07:00
Charles Lyding
19df9358c4 fix(@angular-devkit/core): handle async host exceptions for workspace isDirectory/isFile 2019-05-10 15:06:00 -07:00
Charles Lyding
8214be43a6 docs(@angular-devkit/core): add preliminary overview of workspace API 2019-05-09 10:04:57 -07:00
Charles Lyding
8089a3fb76 fix(@angular-devkit/core): support writing an empty object workspace 2019-04-29 10:34:40 -07:00
Charles Lyding
5c969ea417 refactor(@angular-devkit/core): simplify workspace project/target addition
By returning the newly added project/target, it becomes easier to incrementally augment the new addition.
2019-04-23 10:00:15 -07:00
Charles Lyding
52a014dd23 fix(@angular-devkit/core): ignore undefined targets when adding a workspace project 2019-04-16 11:23:48 -07:00
Charles Lyding
a3811a7ad2 fix(@angular-devkit/core): ensure long workspace value changes are multiline 2019-04-16 11:23:48 -07:00
Alan Agius
eac31541a1 test: add analytics to core golden files 2019-04-15 11:08:46 -07:00
Charles Lyding
f1c58bef97 fix(@angular-devkit/core): escape workspace json pointers
Internally, the JSON workspace support uses JSON pointers to represent change locations.  These need to be escaped to support slashes within a key.
2019-04-15 11:02:46 -07:00
Charles Lyding
66230b3c2e fix(@angular-devkit/core): allow scoped names for workspace projects
Library projects support scoped package names as project names.
2019-04-15 11:02:46 -07:00
Charles Lyding
0d6a9f842c refactor(@angular-devkit/core): rename workspace namespace to workspaces
This avoids massive amounts of name conflicts between a commonly named variable of 'workspace' and the namespace
2019-04-15 11:02:46 -07:00
Charles Lyding
51e370cefc fix(@angular-devkit/core): add project type as a workspace special extension 2019-04-15 11:02:46 -07:00
Charles Lyding
7d416103a9 feat(@angular-devkit/core): make new workspace API public 2019-04-12 11:45:48 -07:00
Charles Lyding
b22202c120 refactor(@angular-devkit/core): adjust readWorkspace type to support eventual diagnostics 2019-04-12 11:45:48 -07:00
Charles Lyding
7439faba12 feat(@angular-devkit/core): implement workspace JSON reader/writer 2019-04-11 10:17:29 -07:00
ukrukar
3d86b18d7e fix(@schematics/angular): buildRelativePath handles files in root
Before, if one of the arguments was a file in root (eg "/module")
code would fail with: "" must be an absolute path.
2019-04-01 10:51:24 -07:00
Hans Larsen
2ffbdfa86a build: add a validation script for the analytics.md tables
Also added enums to update when changing dimensions.
2019-03-28 13:28:41 -07:00
Hans Larsen
55471770db refactor: use dimensions for some values instead of metrics
This is after a discussion with someone internal. Metrics are good
for sums but not for comparisons and search/filtering.
2019-03-28 13:28:41 -07:00
Hans Larsen
e9ee58a89e refactor(@angular/cli): move analytics constants to devkit core
They need to be shared with builders and schematics.
2019-03-28 13:28:41 -07:00
Charles Lyding
bf52b26219 fix(@angular-devkit/core): correct workspace discovery 2019-03-27 16:33:39 -07:00
Hans Larsen
ffee8938bb test: add tests for error propagation in jobs
It seems some testing was missing.
2019-03-13 13:51:22 -07:00
Hans Larsen
15d7aea2b7 feat(@angular-devkit/core): analytics interfaces and basic implementations
This is a preliminary analytics interface. It is meant to be used by every
other subsystem where useful, but can be replaced by implementations.
2019-03-11 13:38:00 -07:00
Charles Lyding
a1aa8d56c4 feat(@angular-devkit/core): add workspace reader/writer core API
NOTE: No changes have yet been made to the public API of the package.
This introduces the core and eventual public API for the stable workspace API.  This is not intended to be feature complete but rather represents the initial base infrastucture necessary for pending future feature additions.
2019-03-06 11:34:05 -08:00
Charles Lyding
263231ea56 refactor(@angular-devkit/core): move existing workspace API under experimental
This API is already experimental.  The move allows for the new stable API to use the "workspace" directory structure and to also better signify that the existing API is in fact experimental and subject to change or removal.
2019-03-06 11:34:05 -08:00
Hans Larsen
041907d551 feat(@angular-devkit/core): add factories for workspace
It makes it easier instead of always copy-pasting the same findUp code
to get the workspace file.
2019-03-05 11:14:59 -08:00
Alan Agius
ae13974f1d build: update to rxjs 6.4 2019-02-26 08:33:48 -08:00
Hans Larsen
1aa1b47f90 feat(@angular-devkit/core): remove Log messages from Job API
If a system wants to have logging it should multiplex it itself on a channel.

Also changed the previous Architect commits to remove usage of Logs and move
to a "log" channel.
2019-02-19 13:51:29 -08:00