@ngageoint/mage.web-core-lib 6.4.0-beta.2 → 6.5.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Mage Web Core Lib
|
|
2
2
|
|
|
3
3
|
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.1.13.
|
|
4
4
|
|
|
@@ -16,7 +16,7 @@ workspace, which should satisfy this library's peer dependencies, or cause an er
|
|
|
16
16
|
consuming project does not supply compatible Angular libraries.
|
|
17
17
|
|
|
18
18
|
There are some hangups with that strategy, though, as of version 14 of the Angular suite of packages.
|
|
19
|
-
1. One of
|
|
19
|
+
1. One of Mage's dependencies, `@ajsf/material`, requires `rxjs` `^7.0.0`, but `@angular-devkit/*` libraries pin `rxjs`
|
|
20
20
|
to `6.6.7`, which causes TypeScript type conflicts at build time for this DevKit library. There are presently
|
|
21
21
|
some undesirable `any` casts to overcome the `rxjs` type conflicts. This should be fixed after upgrading to the
|
|
22
22
|
latest Angular, currently 17, whose `@angular-devkit/core` package pins `rxjs` to `7.8.1`.
|
package/angular-cli/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Angular CLI Integration
|
|
2
2
|
|
|
3
3
|
This subfolder of modules contains Angular CLI integrations, including a [schematic]() and
|
|
4
|
-
[builder](), that facilitates creating
|
|
4
|
+
[builder](), that facilitates creating Mage web plugin bundles.
|
|
5
5
|
|
|
6
6
|
## Background
|
|
7
7
|
Before Angular 13, the Angular [Library](https://angular.dev/tools/libraries/creating-libraries) CLI tools and
|
|
@@ -12,12 +12,12 @@ at runtime to hook the plugin module into the web app. Angular 13, however, eli
|
|
|
12
12
|
[Angular Package Format](https://angular.dev/tools/libraries/angular-package-format) leaving only ECMAScript Module
|
|
13
13
|
(ESM) outputs, as opposed to a concatenated, resolved bundle. Angular's intention is that libraries are strictly a
|
|
14
14
|
development time construct, with the hosting application left to resolving, bundling, and tree-shaking the library's
|
|
15
|
-
`import` statements.
|
|
15
|
+
`import` statements. Mage, however, is using Angular libraries differently, creating a bundle that excludes shared
|
|
16
16
|
dependencies the host web app provides, but including dependencies specific to the library, such that the host web app
|
|
17
|
-
can load the library as one chunk dynamically at runtime. While native ESM could be a possibility for
|
|
18
|
-
future, a significant amount of evaluation and testing is necessary, and at minimum
|
|
17
|
+
can load the library as one chunk dynamically at runtime. While native ESM could be a possibility for Mage in the
|
|
18
|
+
future, a significant amount of evaluation and testing is necessary, and at minimum Mage would require all instances to
|
|
19
19
|
run on HTTP/2 to maximize performance. The major issue would be all the transactions required to load the large number
|
|
20
|
-
of module entry points that
|
|
20
|
+
of module entry points that Mage, Angular, Angular Material, and others comprise. Whereas a conventional web app can
|
|
21
21
|
provide all the shared entry points by bare module specifier to SystemJS's named registry from a single bundle
|
|
22
22
|
downloaded initially, an ESM app must download each module separately on-demand as the JS engine processes `import`
|
|
23
23
|
statements. Even with HTTP/2 multiplexing, this could be a serious performance hit.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema",
|
|
3
3
|
"title": "ng-packagr Target",
|
|
4
|
-
"description": "plugin-library target options for Build Architect. Use to build
|
|
4
|
+
"description": "plugin-library target options for Build Architect. Use to build Mage plugin library projects.",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"properties": {
|
|
7
7
|
"project": {
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"factory": "./schematics/ng-add/index#ngAdd"
|
|
7
7
|
},
|
|
8
8
|
"plugin-library": {
|
|
9
|
-
"description": "Generate a new
|
|
9
|
+
"description": "Generate a new Mage web plugin library project.",
|
|
10
10
|
"factory": "./schematics/plugin-library/index#mageWebPluginLibrary",
|
|
11
11
|
"schema": "../../../node_modules/@schematics/angular/library/schema.json"
|
|
12
12
|
}
|