ngx-ws 1.0.3 → 1.1.0
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 +80 -25
- package/bin/index.js +17 -6
- package/dist/build.d.ts +8 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/build.js +84 -0
- package/dist/build.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -7
- package/dist/cli.js.map +1 -1
- package/dist/core.d.ts +2 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +68 -52
- package/dist/core.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -5
- package/dist/index.js.map +1 -1
- package/dist/interpolate.d.ts.map +1 -1
- package/dist/interpolate.js +22 -35
- package/dist/interpolate.js.map +1 -1
- package/package.json +46 -69
package/README.md
CHANGED
@@ -1,46 +1,101 @@
|
|
1
|
-
# ngx-ws
|
1
|
+
# 🚀 ngx-ws
|
2
2
|
|
3
|
-
**
|
3
|
+
**Generate [angular.json](https://angular.io/guide/workspace-config) from modular, human-friendly definitions.**
|
4
4
|
|
5
|
-
|
5
|
+
Easily split a large `angular.json` into modular, project-local files using the power of [JSON References](https://www.npmjs.com/package/@apidevtools/json-schema-ref-parser), with the convenience of [YAML](https://yaml.org/) and [JSON5](https://json5.org/) formats.
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
- Recursive values interpolation.
|
10
|
-
- Simplify [scripts, styles and assets](https://angular.io/guide/workspace-config#styles-and-scripts-configuration) configuration.
|
7
|
+
---
|
8
|
+
## 🛠️ How It Works
|
11
9
|
|
12
|
-
|
10
|
+
1. **Install `ngx-ws` globally** (using your preferred package manager):
|
13
11
|
|
14
|
-
|
12
|
+
```sh
|
13
|
+
npm install -g ngx-ws
|
14
|
+
# or
|
15
|
+
pnpm add -g ngx-ws
|
16
|
+
# or
|
17
|
+
yarn global add ngx-ws
|
18
|
+
```
|
19
|
+
|
20
|
+
2. **Navigate to your Angular project directory** (where `angular.json` is located):
|
21
|
+
|
22
|
+
```sh
|
23
|
+
cd your-angular-project
|
24
|
+
```
|
25
|
+
|
26
|
+
3. **Initialize modular configuration files** from your existing `angular.json`:
|
27
|
+
|
28
|
+
```sh
|
29
|
+
ngx-ws --build
|
30
|
+
```
|
31
|
+
|
32
|
+
This generates `angular-workspace.yaml` and `angular-project.yaml` files.
|
33
|
+
|
34
|
+
4. **Edit your configuration** in the new YAML files.
|
35
|
+
You can now manage your workspace and project settings in a modular, human-friendly format.
|
36
|
+
|
37
|
+
5. **Regenerate `angular.json`** after making changes:
|
38
|
+
|
39
|
+
```sh
|
40
|
+
ngx-ws -v
|
41
|
+
```
|
42
|
+
|
43
|
+
This will update `angular.json` based on your YAML definitions.
|
44
|
+
|
45
|
+
---
|
46
|
+
|
47
|
+
**Tip:**
|
48
|
+
Once set up, you can focus on editing `angular-workspace.yaml` and `angular-project.yaml`.
|
49
|
+
Let `ngx-ws` handle the generation of `angular.json` for you!
|
50
|
+
|
51
|
+
## ✨ Features
|
52
|
+
|
53
|
+
- 📝 Supports [YAML](https://yaml.org/) and [JSON5](https://json5.org/) formats
|
54
|
+
- 🔗 Handles [JSON References](https://datatracker.ietf.org/doc/html/draft-pbryan-zyp-json-ref-03) for modular configuration
|
55
|
+
- 🔄 Recursive variable interpolation for flexible templating
|
56
|
+
- 🛠️ Simplifies configuration of [scripts, styles, and assets](https://angular.io/guide/workspace-config#styles-and-scripts-configuration)
|
57
|
+
|
58
|
+
---
|
59
|
+
|
60
|
+
## 📦 Installation
|
61
|
+
|
62
|
+
Install globally with npm:
|
15
63
|
|
16
64
|
```sh
|
17
|
-
|
65
|
+
npm install -g ngx-ws
|
18
66
|
```
|
19
67
|
|
20
|
-
Or
|
68
|
+
Or use [npx](https://docs.npmjs.com/cli/v7/commands/npx) for one-off runs:
|
21
69
|
|
22
70
|
```sh
|
23
71
|
npx ngx-ws
|
24
72
|
```
|
25
73
|
|
26
|
-
|
74
|
+
---
|
75
|
+
|
76
|
+
## 🚦 Usage
|
27
77
|
|
28
|
-
Run
|
78
|
+
Run `ngx-ws` in a directory containing your `angular.json` file:
|
29
79
|
|
30
80
|
```sh
|
31
|
-
rm angular.json
|
81
|
+
rm angular.json && ngx-ws -v
|
32
82
|
```
|
33
83
|
|
34
|
-
|
84
|
+
- The tool will generate a new `angular.json` based on your modular workspace and project definitions.
|
35
85
|
|
36
|
-
|
86
|
+
**Example:**
|
87
|
+
See the [ngx-ws-example](https://github.com/art-ws/ngx-ws-example) repository.
|
88
|
+
Pay special attention to [angular-workspace.yaml](https://github.com/art-ws/ngx-ws-example/blob/master/angular-workspace.yaml) and [angular-project.yaml](https://github.com/art-ws/ngx-ws-example/blob/master/my-workspace/projects/app1/angular-project.yaml).
|
37
89
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
90
|
+
---
|
91
|
+
|
92
|
+
## ⚙️ Options
|
93
|
+
|
94
|
+
| Option | Alias | Description |
|
95
|
+
| -------------- | ----- | ------------------------------------------------------------------ |
|
96
|
+
| `--build` | | Build files from `angular.json` |
|
97
|
+
| `--deps` | | Update `package.json` with project-specific dependencies |
|
98
|
+
| `--debug` | | Enable debug mode (retain temporary files) |
|
99
|
+
| `--dry-run` | | Preview changes without writing files |
|
100
|
+
| `--verbose` |`-v` | Enable verbose output |
|
101
|
+
| `--version` | | |
|
package/bin/index.js
CHANGED
@@ -1,12 +1,18 @@
|
|
1
1
|
#!/usr/bin/env node
|
2
|
-
const path = require("path")
|
3
|
-
const package = require(path.join(__dirname, "../package.json"))
|
4
|
-
const { main } = require("../dist/index")
|
5
2
|
|
6
|
-
|
3
|
+
import { join } from "path"
|
4
|
+
import { fileURLToPath } from 'url';
|
5
|
+
const dir = join(fileURLToPath(import.meta.url), '..');
|
6
|
+
import { readFileSync } from "fs";
|
7
|
+
const p = JSON.parse(readFileSync(join(dir, "../package.json"), "utf8"));
|
8
|
+
import { main } from "../dist/index.js";
|
9
|
+
import yargs from 'yargs';
|
10
|
+
import { hideBin } from 'yargs/helpers';
|
11
|
+
|
12
|
+
const app = Object.keys(p.bin)[0]
|
7
13
|
|
8
14
|
// https://www.npmjs.com/package/yargs
|
9
|
-
const
|
15
|
+
const argv = yargs(hideBin(process.argv))
|
10
16
|
.option("verbose", {
|
11
17
|
alias: "v",
|
12
18
|
type: "boolean",
|
@@ -16,13 +22,18 @@ const { argv } = require("yargs")
|
|
16
22
|
type: "boolean",
|
17
23
|
description: "Dry run",
|
18
24
|
})
|
25
|
+
.option("build", {
|
26
|
+
alias: "b",
|
27
|
+
type: "boolean",
|
28
|
+
description: "Build the files from angular.json",
|
29
|
+
})
|
19
30
|
.option("debug", {
|
20
31
|
type: "boolean",
|
21
32
|
description: "Debug mode",
|
22
33
|
})
|
23
34
|
.usage(`Usage: ${app}`)
|
24
35
|
.epilog("https://art-ws.org, Copyright 2021")
|
25
|
-
.example(app,
|
36
|
+
.example(app, p.description || "").parse();
|
26
37
|
|
27
38
|
main({ argv, app }).catch((e) => {
|
28
39
|
console.error(e)
|
package/dist/build.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,MAAM,GAAG;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAsB,UAAU,CAAC,CAAC,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA8D7E"}
|
package/dist/build.js
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
import fs from "fs";
|
2
|
+
import path from "path";
|
3
|
+
import yaml from "js-yaml";
|
4
|
+
export async function buildFiles(o) {
|
5
|
+
// 1. Load angular.json
|
6
|
+
const angularJsonPath = path.join(o.workingDir, "angular.json");
|
7
|
+
if (!fs.existsSync(angularJsonPath))
|
8
|
+
throw new Error(`angular.json not found in ${o.workingDir}`);
|
9
|
+
const angularJson = JSON.parse(fs.readFileSync(angularJsonPath, "utf8"));
|
10
|
+
// 2. Prepare workspace YAML (angular-workspace.yaml)
|
11
|
+
const wsVars = {
|
12
|
+
projects: angularJson.newProjectRoot || "projects",
|
13
|
+
packageManager: angularJson.cli?.packageManager || "npm",
|
14
|
+
};
|
15
|
+
const wsYaml = {
|
16
|
+
vars: wsVars,
|
17
|
+
resources: {}, // Not available in angular.json, left empty
|
18
|
+
definitions: {}, // Not available in angular.json, left empty
|
19
|
+
angular: { ...angularJson, projects: undefined },
|
20
|
+
};
|
21
|
+
const wsFile = {
|
22
|
+
localPath: "angular-workspace.yaml",
|
23
|
+
content: yaml.dump(wsYaml, { lineWidth: 120 }),
|
24
|
+
};
|
25
|
+
// 3. Prepare per-project YAMLs
|
26
|
+
const projectFiles = [];
|
27
|
+
const projects = angularJson.projects || {};
|
28
|
+
for (const [name, project] of Object.entries(projects)) {
|
29
|
+
console.log(`Processing project: ${name}`);
|
30
|
+
// Guess vars for the project
|
31
|
+
const vars = {
|
32
|
+
name,
|
33
|
+
root: project.root || `projects/${name}`,
|
34
|
+
src: project.sourceRoot || `projects/${name}/src`,
|
35
|
+
};
|
36
|
+
if (project.projectType === "application") {
|
37
|
+
vars.environments = `${vars.src}/environments`;
|
38
|
+
vars.env = `${vars.environments}/environment`;
|
39
|
+
vars.styleExt =
|
40
|
+
project.architect?.build?.options?.inlineStyleLanguage || "scss";
|
41
|
+
}
|
42
|
+
// Compose project YAML
|
43
|
+
const projYaml = {
|
44
|
+
vars,
|
45
|
+
project,
|
46
|
+
};
|
47
|
+
const localPath = path.join(wsVars.projects, name, "angular-project.yaml");
|
48
|
+
let content = yaml.dump(projYaml, { lineWidth: 120 });
|
49
|
+
// Process variables in the content
|
50
|
+
content = processVars({
|
51
|
+
varsOrder: ["env", "environments", "styleExt", "root", "src", "name"],
|
52
|
+
vars,
|
53
|
+
content,
|
54
|
+
});
|
55
|
+
projectFiles.push({
|
56
|
+
localPath,
|
57
|
+
content,
|
58
|
+
});
|
59
|
+
}
|
60
|
+
return [wsFile, ...projectFiles];
|
61
|
+
}
|
62
|
+
function processVars(o) {
|
63
|
+
const { varsOrder, vars, content } = o;
|
64
|
+
let result = content;
|
65
|
+
for (const varName of varsOrder) {
|
66
|
+
const value = String(vars[varName]);
|
67
|
+
if (value) {
|
68
|
+
// Escape special regex characters in value
|
69
|
+
const escapedValue = value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
70
|
+
// Find all matches
|
71
|
+
const matches = [...result.matchAll(new RegExp(escapedValue, "g"))];
|
72
|
+
if (matches.length > 1) {
|
73
|
+
// Replace all except the first occurrence
|
74
|
+
let replaced = 0;
|
75
|
+
result = result.replace(new RegExp(escapedValue, "g"), (match) => {
|
76
|
+
replaced++;
|
77
|
+
return replaced === 1 ? match : `{{${varName}}}`;
|
78
|
+
});
|
79
|
+
}
|
80
|
+
}
|
81
|
+
}
|
82
|
+
return result;
|
83
|
+
}
|
84
|
+
//# sourceMappingURL=build.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAEA,wBAAsB,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;;;CAAA,
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAEA,wBAAsB,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;;;CAAA,iBAGvC"}
|
package/dist/cli.js
CHANGED
@@ -1,10 +1,6 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
exports.main = void 0;
|
4
|
-
const core_1 = require("./core");
|
5
|
-
async function main({ argv, app }) {
|
1
|
+
import { WorkspaceBundler } from "./core.js";
|
2
|
+
export async function main({ argv, app }) {
|
6
3
|
const cwd = process.cwd();
|
7
|
-
await new
|
4
|
+
await new WorkspaceBundler({ argv, cwd, app }).run();
|
8
5
|
}
|
9
|
-
exports.main = main;
|
10
6
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;IACtC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,IAAI,gBAAgB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;AACvD,CAAC"}
|
package/dist/core.d.ts
CHANGED
@@ -4,6 +4,7 @@ declare class Options {
|
|
4
4
|
verbose: boolean;
|
5
5
|
dryRun: boolean;
|
6
6
|
debug: boolean;
|
7
|
+
build: boolean;
|
7
8
|
};
|
8
9
|
cwd: string;
|
9
10
|
app: string;
|
@@ -16,6 +17,7 @@ export declare class WorkspaceBundler {
|
|
16
17
|
private log;
|
17
18
|
private debug;
|
18
19
|
init(): Promise<void>;
|
20
|
+
build(): Promise<void>;
|
19
21
|
run(): Promise<void>;
|
20
22
|
}
|
21
23
|
export {};
|
package/dist/core.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AA2CA,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,EAAE,WAAW,MAAM,EAAE,KAAG,MAWjE,CAAC;AA+OF,cAAM,OAAO;IACX,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,EAAE,OAAO,CAAC;QACf,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,gBAAgB;IAGf,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,WAAW,CAAS;gBAEC,OAAO,EAAE,OAAO;YAE/B,cAAc;IAO5B,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,KAAK;IAIP,IAAI;IAWJ,KAAK;IAWL,GAAG;CAkBV"}
|
package/dist/core.js
CHANGED
@@ -1,56 +1,57 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
const lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
|
9
|
-
const path_1 = (0, tslib_1.__importDefault)(require("path"));
|
10
|
-
const interpolate_1 = require("./interpolate");
|
1
|
+
import $RefParser from "@apidevtools/json-schema-ref-parser";
|
2
|
+
import { readdirSync, statSync } from "fs";
|
3
|
+
import fs from "fs";
|
4
|
+
import _ from "lodash";
|
5
|
+
import * as path from "path";
|
6
|
+
import { iterpolateJsonData, isYamlFile, iterpolateFile, loadJSONFromString, loadYamlFromString, yamlExt, } from "./interpolate.js";
|
7
|
+
import { buildFiles } from "./build.js";
|
11
8
|
const getProjectNames = (projectsDirPath) => {
|
12
|
-
const result =
|
9
|
+
const result = readdirSync(projectsDirPath).filter((f) => statSync(path.join(projectsDirPath, f)).isDirectory());
|
13
10
|
result.sort();
|
14
11
|
return result;
|
15
12
|
};
|
16
|
-
const loadJSONFromFile = (fileName) =>
|
17
|
-
?
|
13
|
+
const loadJSONFromFile = (fileName) => fs.existsSync(fileName)
|
14
|
+
? loadJSONFromString(fs.readFileSync(fileName, "utf8"))
|
18
15
|
: null;
|
19
|
-
const loadYamlFromFile = (fileName) =>
|
20
|
-
?
|
16
|
+
const loadYamlFromFile = (fileName) => fs.existsSync(fileName)
|
17
|
+
? loadYamlFromString(fs.readFileSync(fileName, "utf8"))
|
21
18
|
: null;
|
22
|
-
const loadFromFile = (fileName) =>
|
19
|
+
const loadFromFile = (fileName) => isYamlFile(fileName)
|
20
|
+
? loadYamlFromFile(fileName)
|
21
|
+
: loadJSONFromFile(fileName);
|
23
22
|
const WS_CONFIG = ["angular-workspace", "ng-ws"];
|
24
23
|
const PROJECT_CONFIG = ["ng-project", "angular-project"];
|
25
24
|
const jsonExt = ["json", "json5"];
|
26
|
-
const lookupFileName = (cwd, fileNames) => {
|
25
|
+
export const lookupFileName = (cwd, fileNames) => {
|
27
26
|
const fileName = fileNames
|
28
27
|
.map((fileName) => [
|
29
28
|
fileName,
|
30
|
-
...[...jsonExt, ...
|
29
|
+
...[...jsonExt, ...yamlExt].map((ext) => `${fileName}.${ext}`),
|
31
30
|
])
|
32
31
|
.flat()
|
33
|
-
.map((fileName) =>
|
34
|
-
.find((fileName) =>
|
32
|
+
.map((fileName) => path.join(cwd, fileName))
|
33
|
+
.find((fileName) => fs.existsSync(fileName));
|
35
34
|
return fileName;
|
36
35
|
};
|
37
|
-
exports.lookupFileName = lookupFileName;
|
38
36
|
async function loadFileAndExpand(args) {
|
39
37
|
const { cwd, fileNames, isDebug } = args;
|
40
38
|
let vars = args.vars || {};
|
41
|
-
const fileName =
|
42
|
-
|
39
|
+
const fileName = lookupFileName(cwd, fileNames);
|
40
|
+
if (!fileName) {
|
41
|
+
return { result: null, path: null };
|
42
|
+
}
|
43
|
+
const fileNameInterpolated = `${fileName}.expanded${path.extname(fileName)}`;
|
43
44
|
let json = loadFromFile(fileName);
|
44
|
-
vars =
|
45
|
-
|
45
|
+
vars = _.merge(vars, json.vars || {});
|
46
|
+
iterpolateFile(vars, fileName, fileNameInterpolated);
|
46
47
|
json = loadFromFile(fileNameInterpolated);
|
47
48
|
// https://apitools.dev/json-schema-ref-parser/
|
48
49
|
// https://apitools.dev/json-schema-ref-parser/docs/ref-parser.html#dereferenceschema-options-callback
|
49
|
-
json = (await
|
50
|
-
vars =
|
51
|
-
json =
|
50
|
+
json = (await $RefParser.dereference(json));
|
51
|
+
vars = _.merge(vars, json.vars || {});
|
52
|
+
json = iterpolateJsonData(vars, json, fileNameInterpolated);
|
52
53
|
if (!isDebug) {
|
53
|
-
|
54
|
+
fs.unlinkSync(fileNameInterpolated);
|
54
55
|
}
|
55
56
|
return { result: json, path: fileName };
|
56
57
|
}
|
@@ -65,15 +66,17 @@ const processProject = async ({ cwd, log, projectsDir, app, options }) => {
|
|
65
66
|
const defaultVars = {
|
66
67
|
name: app,
|
67
68
|
wsPath: ngWSPath,
|
68
|
-
wsName:
|
69
|
-
wsDir:
|
69
|
+
wsName: path.basename(ngWSPath),
|
70
|
+
wsDir: path.dirname(ngWSPath),
|
70
71
|
};
|
71
72
|
const { result: appJson } = await loadFileAndExpand({
|
72
73
|
isDebug,
|
73
|
-
vars:
|
74
|
-
cwd:
|
74
|
+
vars: _.merge(ngWSJson.vars || {}, defaultVars),
|
75
|
+
cwd: path.join(cwd, `${projectsDir}/${app}`),
|
75
76
|
fileNames: PROJECT_CONFIG,
|
76
77
|
});
|
78
|
+
if (!appJson)
|
79
|
+
return;
|
77
80
|
if (appJson.vars?.disabled) {
|
78
81
|
log(`Skipping '${app}'`);
|
79
82
|
return;
|
@@ -94,7 +97,7 @@ const processProject = async ({ cwd, log, projectsDir, app, options }) => {
|
|
94
97
|
const old = build.options[prop] ?? [];
|
95
98
|
const src = (res.options ?? {})[prop] ?? [];
|
96
99
|
if (src.length) {
|
97
|
-
const merged =
|
100
|
+
const merged = _.union([...src], [...old]);
|
98
101
|
build.options[prop] = merged;
|
99
102
|
}
|
100
103
|
};
|
@@ -103,23 +106,22 @@ const processProject = async ({ cwd, log, projectsDir, app, options }) => {
|
|
103
106
|
if (!res)
|
104
107
|
throw new Error(`Resource '${resourceName}' not defined`);
|
105
108
|
if (appJson.project?.architect?.build) {
|
106
|
-
;
|
107
109
|
["assets", "styles", "scripts"].forEach((prop) => tweakOptions(res, appJson.project.architect.build, prop));
|
108
110
|
}
|
109
111
|
};
|
110
112
|
resources.reverse().forEach(mergeResource);
|
111
113
|
log(`Merged resources for '${app}':`, resources);
|
112
114
|
}
|
113
|
-
const angularFileName =
|
115
|
+
const angularFileName = path.join(cwd, "angular.json");
|
114
116
|
let angularJson = loadFromFile(angularFileName) || {};
|
115
|
-
angularJson =
|
117
|
+
angularJson = _.merge(angularJson, _.omit(ngWSJson.angular, ["projects"]));
|
116
118
|
if (appJson.project) {
|
117
119
|
angularJson.projects = angularJson.projects || {};
|
118
|
-
angularJson.projects[app] =
|
120
|
+
angularJson.projects[app] = _.merge(angularJson.projects[app] || {}, appJson.project);
|
119
121
|
}
|
120
122
|
const jsonContent = JSON.stringify(angularJson, null, 2);
|
121
123
|
if (!options.argv.dryRun) {
|
122
|
-
|
124
|
+
fs.writeFileSync(angularFileName, jsonContent);
|
123
125
|
log(`${angularFileName} for '${app}' updated.`);
|
124
126
|
}
|
125
127
|
else {
|
@@ -127,7 +129,7 @@ const processProject = async ({ cwd, log, projectsDir, app, options }) => {
|
|
127
129
|
}
|
128
130
|
if (isDeps && appJson.depends) {
|
129
131
|
const requiredBy = app;
|
130
|
-
const pckgFileName =
|
132
|
+
const pckgFileName = path.join(cwd, "package.json");
|
131
133
|
const pckg = require(pckgFileName);
|
132
134
|
Object.keys(appJson.depends).forEach((depKey) => {
|
133
135
|
const dep = pckg[depKey];
|
@@ -161,7 +163,7 @@ const processProject = async ({ cwd, log, projectsDir, app, options }) => {
|
|
161
163
|
});
|
162
164
|
pckg[depKey] = dep;
|
163
165
|
});
|
164
|
-
|
166
|
+
fs.writeFileSync(pckgFileName, JSON.stringify(pckg, null, 2));
|
165
167
|
}
|
166
168
|
};
|
167
169
|
function getPackages({ ws, libName, proj, }) {
|
@@ -188,7 +190,7 @@ function ensureDependency({ depKey, dep, packageName, packageVersion, requiredBy
|
|
188
190
|
}
|
189
191
|
class Options {
|
190
192
|
}
|
191
|
-
class WorkspaceBundler {
|
193
|
+
export class WorkspaceBundler {
|
192
194
|
constructor(options) {
|
193
195
|
this.options = options;
|
194
196
|
}
|
@@ -216,20 +218,34 @@ class WorkspaceBundler {
|
|
216
218
|
this.projectsDir = ngWSJson.angular?.newProjectRoot || "projects";
|
217
219
|
this.debug(`projectsDir: ${this.projectsDir}`);
|
218
220
|
}
|
221
|
+
async build() {
|
222
|
+
const { cwd } = this.options;
|
223
|
+
console.log(`Building workspace at '${cwd}' ...`);
|
224
|
+
const files = await buildFiles({ workingDir: cwd });
|
225
|
+
files.forEach((file) => {
|
226
|
+
const filePath = path.join(cwd, file.localPath);
|
227
|
+
fs.writeFileSync(filePath, file.content);
|
228
|
+
console.log(`Created: ${filePath}`);
|
229
|
+
});
|
230
|
+
}
|
219
231
|
async run() {
|
220
232
|
const { cwd } = this.options;
|
221
233
|
this.debug(`cwd: ${cwd}`);
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
234
|
+
if (this.options.argv.build) {
|
235
|
+
await this.build();
|
236
|
+
}
|
237
|
+
else {
|
238
|
+
const projectsDir = await this.getProjectsDir();
|
239
|
+
getProjectNames(`${cwd}/${projectsDir}`).forEach((app) => {
|
240
|
+
processProject({
|
241
|
+
cwd,
|
242
|
+
app,
|
243
|
+
projectsDir,
|
244
|
+
options: this.options,
|
245
|
+
log: this.log.bind(this),
|
246
|
+
});
|
230
247
|
});
|
231
|
-
}
|
248
|
+
}
|
232
249
|
}
|
233
250
|
}
|
234
|
-
exports.WorkspaceBundler = WorkspaceBundler;
|
235
251
|
//# sourceMappingURL=core.js.map
|
package/dist/core.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
export * from "./cli";
|
2
|
-
export * from "./core";
|
1
|
+
export * from "./cli.js";
|
2
|
+
export * from "./core.js";
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA"}
|
package/dist/index.js
CHANGED
@@ -1,6 +1,3 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
const tslib_1 = require("tslib");
|
4
|
-
(0, tslib_1.__exportStar)(require("./cli"), exports);
|
5
|
-
(0, tslib_1.__exportStar)(require("./core"), exports);
|
1
|
+
export * from "./cli.js";
|
2
|
+
export * from "./core.js";
|
6
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"interpolate.d.ts","sourceRoot":"","sources":["../src/interpolate.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,OAAO,UAAkB,
|
1
|
+
{"version":3,"file":"interpolate.d.ts","sourceRoot":"","sources":["../src/interpolate.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,OAAO,UAAkB,CAAC;AAEvC,eAAO,MAAM,UAAU,GAAI,GAAG,MAAM,WACU,CAAC;AAE/C,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,QACd,CAAC;AAElC,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,YAChB,CAAC;AAQhC,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAKjD;AAID,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAiB5D;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,IAAI,CAKN;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,MAAM,GACjB,CAAC,CAaH"}
|
package/dist/interpolate.js
CHANGED
@@ -1,33 +1,25 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
const
|
6
|
-
const
|
7
|
-
const
|
8
|
-
const
|
9
|
-
exports.yamlExt = ["yaml", "yml"];
|
10
|
-
const isYamlFile = (s) => exports.yamlExt.find((ext) => s.includes(`.${ext}`));
|
11
|
-
exports.isYamlFile = isYamlFile;
|
12
|
-
const loadJSONFromString = (data) => data ? json5_1.default.parse(data) : null;
|
13
|
-
exports.loadJSONFromString = loadJSONFromString;
|
14
|
-
const loadYamlFromString = (data) => data ? js_yaml_1.default.load(data) : null;
|
15
|
-
exports.loadYamlFromString = loadYamlFromString;
|
1
|
+
import fs from "fs";
|
2
|
+
import yaml from "js-yaml";
|
3
|
+
import JSON5 from "json5";
|
4
|
+
import _ from "lodash";
|
5
|
+
export const yamlExt = ["yaml", "yml"];
|
6
|
+
export const isYamlFile = (s) => yamlExt.find((ext) => s.includes(`.${ext}`));
|
7
|
+
export const loadJSONFromString = (data) => data ? JSON5.parse(data) : null;
|
8
|
+
export const loadYamlFromString = (data) => data ? yaml.load(data) : null;
|
16
9
|
const e = {
|
17
10
|
RE: /{{(\w|\.)+}}/gi,
|
18
11
|
B: "{{",
|
19
12
|
E: "}}",
|
20
13
|
};
|
21
|
-
function iterpolateVars(vars) {
|
14
|
+
export function iterpolateVars(vars) {
|
22
15
|
Object.keys(vars).forEach((key) => {
|
23
16
|
const value = `${vars[key]}`;
|
24
17
|
if (value.includes(e.B))
|
25
18
|
vars[key] = iterpolate(vars, value);
|
26
19
|
});
|
27
20
|
}
|
28
|
-
exports.iterpolateVars = iterpolateVars;
|
29
21
|
const isEmpty = (v) => v === undefined || v === null || Number.isNaN(v);
|
30
|
-
function iterpolate(vars, tpl) {
|
22
|
+
export function iterpolate(vars, tpl) {
|
31
23
|
const keys = {};
|
32
24
|
let match;
|
33
25
|
while ((match = e.RE.exec(tpl))) {
|
@@ -37,34 +29,29 @@ function iterpolate(vars, tpl) {
|
|
37
29
|
}
|
38
30
|
Object.keys(keys).forEach((key) => {
|
39
31
|
const expr = e.B + key + e.E;
|
40
|
-
const val =
|
32
|
+
const val = _.get(vars, key);
|
41
33
|
const value = isEmpty(val) ? expr : `${val}`;
|
42
34
|
tpl = tpl.split(expr).join(value);
|
43
35
|
});
|
44
36
|
return tpl;
|
45
37
|
}
|
46
|
-
|
47
|
-
function iterpolateFile(vars, sourcePath, targetPath) {
|
38
|
+
export function iterpolateFile(vars, sourcePath, targetPath) {
|
48
39
|
iterpolateVars(vars);
|
49
|
-
let contents =
|
40
|
+
let contents = fs.readFileSync(sourcePath, { encoding: "utf8" });
|
50
41
|
contents = iterpolate(vars, contents);
|
51
|
-
|
42
|
+
fs.writeFileSync(targetPath, contents);
|
52
43
|
}
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
let contents = exports.isYamlFile
|
57
|
-
? js_yaml_1.default.dump(data)
|
58
|
-
: json5_1.default.stringify(data, null, 2);
|
44
|
+
export function iterpolateJsonData(vars, data, targetPath) {
|
45
|
+
const isYaml = isYamlFile(targetPath);
|
46
|
+
let contents = isYamlFile ? yaml.dump(data) : JSON5.stringify(data, null, 2);
|
59
47
|
const tmpFile = `${targetPath}.tmp`;
|
60
|
-
|
48
|
+
fs.writeFileSync(tmpFile, contents);
|
61
49
|
iterpolateFile(vars, tmpFile, targetPath);
|
62
|
-
contents =
|
50
|
+
contents = fs.readFileSync(targetPath, { encoding: "utf8" });
|
63
51
|
const result = isYaml
|
64
|
-
?
|
65
|
-
:
|
66
|
-
|
52
|
+
? loadYamlFromString(contents)
|
53
|
+
: loadJSONFromString(contents);
|
54
|
+
fs.unlinkSync(tmpFile);
|
67
55
|
return result;
|
68
56
|
}
|
69
|
-
exports.iterpolateJsonData = iterpolateJsonData;
|
70
57
|
//# sourceMappingURL=interpolate.js.map
|
package/dist/interpolate.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"interpolate.js","sourceRoot":"","sources":["../src/interpolate.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"interpolate.js","sourceRoot":"","sources":["../src/interpolate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,21 +1,29 @@
|
|
1
1
|
{
|
2
2
|
"name": "ngx-ws",
|
3
|
-
"version": "1.0
|
4
|
-
"description": "
|
3
|
+
"version": "1.1.0",
|
4
|
+
"description": "Decompose big angular.json to smaller parts",
|
5
|
+
"type": "module",
|
6
|
+
"keywords": [
|
7
|
+
"angular",
|
8
|
+
"tools"
|
9
|
+
],
|
5
10
|
"homepage": "https://github.com/art-ws/ngx-ws",
|
11
|
+
"bugs": {
|
12
|
+
"url": "https://github.com/art-ws/ngx-ws/issues",
|
13
|
+
"email": "art-ws@pm.me"
|
14
|
+
},
|
15
|
+
"repository": {
|
16
|
+
"type": "git",
|
17
|
+
"url": "https://github.com/art-ws/ngx-ws.git"
|
18
|
+
},
|
6
19
|
"license": "MIT",
|
20
|
+
"author": {
|
21
|
+
"name": "art-ws Team",
|
22
|
+
"email": "art-ws@pm.me",
|
23
|
+
"url": "https://art-ws.org"
|
24
|
+
},
|
7
25
|
"main": "dist/index.js",
|
8
26
|
"types": "dist/index.d.ts",
|
9
|
-
"scripts": {
|
10
|
-
"build": "tsc",
|
11
|
-
"watch": "tsc --watch",
|
12
|
-
"clean": "rimraf dist coverage *.tgz *.tsbuildinfo *.log",
|
13
|
-
"lint": "eslint --ext .ts .",
|
14
|
-
"test": "jest",
|
15
|
-
"fmt": "prettier --write .",
|
16
|
-
"madge": "npx madge --circular --extensions ts .",
|
17
|
-
"cti": "npx cti -n -b -v ./src"
|
18
|
-
},
|
19
27
|
"bin": {
|
20
28
|
"ngx-ws": "./bin/index.js"
|
21
29
|
},
|
@@ -23,66 +31,35 @@
|
|
23
31
|
"bin",
|
24
32
|
"dist"
|
25
33
|
],
|
26
|
-
"engines": {
|
27
|
-
"node": ">=12"
|
28
|
-
},
|
29
|
-
"author": {
|
30
|
-
"email": "art-ws@pm.me",
|
31
|
-
"name": "art-ws Team",
|
32
|
-
"url": "https://art-ws.org"
|
33
|
-
},
|
34
|
-
"bugs": {
|
35
|
-
"url": "https://github.com/art-ws/ngx-ws/issues",
|
36
|
-
"email": "art-ws@pm.me"
|
37
|
-
},
|
38
|
-
"repository": {
|
39
|
-
"type": "git",
|
40
|
-
"url": "https://github.com/art-ws/ngx-ws.git"
|
41
|
-
},
|
42
|
-
"keywords": [
|
43
|
-
"angular",
|
44
|
-
"tools"
|
45
|
-
],
|
46
34
|
"dependencies": {
|
47
|
-
"@apidevtools/json-schema-ref-parser": "
|
48
|
-
"fs-extra": "10.0.0",
|
35
|
+
"@apidevtools/json-schema-ref-parser": "13.0.5",
|
49
36
|
"js-yaml": "4.1.0",
|
50
|
-
"json-schema": "0.
|
51
|
-
"json5": "2.2.
|
37
|
+
"json-schema": "0.4.0",
|
38
|
+
"json5": "2.2.3",
|
52
39
|
"lodash": "4.17.21",
|
53
|
-
"tslib": "2.
|
54
|
-
"yargs": "
|
40
|
+
"tslib": "2.8.1",
|
41
|
+
"yargs": "18.0.0"
|
55
42
|
},
|
56
43
|
"devDependencies": {
|
57
|
-
"@types/js-yaml": "4.0.
|
58
|
-
"@types/
|
59
|
-
"@types/
|
60
|
-
"@
|
61
|
-
"@
|
62
|
-
"
|
63
|
-
"
|
64
|
-
"
|
65
|
-
|
66
|
-
|
67
|
-
"
|
68
|
-
|
69
|
-
|
70
|
-
"
|
71
|
-
"
|
72
|
-
"
|
73
|
-
"
|
74
|
-
"
|
75
|
-
"
|
76
|
-
"
|
77
|
-
"eslint-plugin-promise": "5.1.1",
|
78
|
-
"eslint-plugin-standard": "4.1.0",
|
79
|
-
"jest": "27.3.1",
|
80
|
-
"jest-standard-reporter": "2.0.0",
|
81
|
-
"madge": "5.0.1",
|
82
|
-
"npm-check-updates": "12.0.0",
|
83
|
-
"prettier": "2.4.1",
|
84
|
-
"rimraf": "3.0.2",
|
85
|
-
"ts-jest": "27.0.7",
|
86
|
-
"typescript": "4.4.4"
|
44
|
+
"@types/js-yaml": "4.0.9",
|
45
|
+
"@types/lodash": "4.17.17",
|
46
|
+
"@types/node": "24.0.1",
|
47
|
+
"@typescript-eslint/eslint-plugin": "8.34.0",
|
48
|
+
"@typescript-eslint/parser": "8.34.0",
|
49
|
+
"npm-check-updates": "18.0.1",
|
50
|
+
"rimraf": "6.0.1",
|
51
|
+
"typescript": "5.8.3"
|
52
|
+
},
|
53
|
+
"engines": {
|
54
|
+
"node": ">=20"
|
55
|
+
},
|
56
|
+
"scripts": {
|
57
|
+
"build": "tsc",
|
58
|
+
"clean": "rimraf dist coverage *.tgz *.tsbuildinfo *.log",
|
59
|
+
"fmt": "exit 0",
|
60
|
+
"lint": "exit 0",
|
61
|
+
"ncu": "ncu",
|
62
|
+
"test": "exit 0",
|
63
|
+
"watch": "tsc --watch"
|
87
64
|
}
|
88
|
-
}
|
65
|
+
}
|