@o3r/schematics 9.1.0-alpha.34 → 9.1.0-alpha.36

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@o3r/schematics",
3
- "version": "9.1.0-alpha.34",
3
+ "version": "9.1.0-alpha.36",
4
4
  "description": "Schematics module of the Otter framework",
5
5
  "main": "./src/index.js",
6
6
  "keywords": [
@@ -58,9 +58,9 @@
58
58
  "@nx/jest": "~16.5.0",
59
59
  "@nx/js": "~16.5.0",
60
60
  "@nx/linter": "~16.5.0",
61
- "@o3r/build-helpers": "^9.1.0-alpha.34",
62
- "@o3r/dev-tools": "^9.1.0-alpha.34",
63
- "@o3r/eslint-plugin": "^9.1.0-alpha.34",
61
+ "@o3r/build-helpers": "^9.1.0-alpha.36",
62
+ "@o3r/dev-tools": "^9.1.0-alpha.36",
63
+ "@o3r/eslint-plugin": "^9.1.0-alpha.36",
64
64
  "@schematics/angular": "~16.0.5",
65
65
  "@types/jest": "~29.5.2",
66
66
  "@types/node": "^18.0.0",
@@ -6,6 +6,13 @@ export interface WorkspaceProjectI18n {
6
6
  export interface WorkspaceTool {
7
7
  [k: string]: any;
8
8
  }
9
+ /** Defines the directories where the apps/libs will stay inside a monorepo */
10
+ export interface WorkspaceLayout {
11
+ /** Libraries directory name */
12
+ libsDir: string;
13
+ /** Applications directory name */
14
+ appsDir: string;
15
+ }
9
16
  export interface WorkspaceSchematics extends SchematicOptions {
10
17
  /** @deprecated */
11
18
  '@otter/ng-tools:api-service'?: {
@@ -42,6 +49,7 @@ export interface WorkspaceSchematics extends SchematicOptions {
42
49
  '*:ng-add'?: {
43
50
  enableMetadataExtract?: boolean;
44
51
  };
52
+ '*:*'?: WorkspaceLayout;
45
53
  }
46
54
  export interface WorkspaceProject extends NgWorkspaceProject {
47
55
  architect?: WorkspaceTool;
@@ -1 +1 @@
1
- {"version":3,"file":"angular-workspace.d.ts","sourceRoot":"","sources":["../../../src/interfaces/angular-workspace.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,QAAQ,IAAI,kBAAkB,EAC9B,MAAM,IAAI,iBAAiB,EAC3B,gBAAgB,EACjB,MAAM,0CAA0C,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AACD,MAAM,WAAW,aAAa;IAC5B,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,kBAAkB;IAClB,6BAA6B,CAAC,EAAE;QAC9B,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,kBAAkB;IAClB,2BAA2B,CAAC,EAAE;QAC5B,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,kBAAkB;IAClB,yBAAyB,CAAC,EAAE;QAC1B,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,kBAAkB;IAClB,uBAAuB,CAAC,EAAE;QACxB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,kBAAkB;IAClB,4BAA4B,CAAC,EAAE;QAC7B,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,2BAA2B,CAAC,EAAE;QAC5B,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,uBAAuB,CAAC,EAAE;QACxB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,kBAAkB,CAAC,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,sBAAsB,CAAC,EAAE;QACvB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,UAAU,CAAC,EAAE;QACX,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,CAAC;CACH;AACD,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IAC1D,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,aAAa,GAAG,SAAS,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,QAAQ,EAAE;QACN,CAAC,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;KACjC,CAAC;IACF,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC"}
1
+ {"version":3,"file":"angular-workspace.d.ts","sourceRoot":"","sources":["../../../src/interfaces/angular-workspace.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,QAAQ,IAAI,kBAAkB,EAC9B,MAAM,IAAI,iBAAiB,EAC3B,gBAAgB,EACjB,MAAM,0CAA0C,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AACD,MAAM,WAAW,aAAa;IAC5B,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB;AAED,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,kBAAkB;IAClB,6BAA6B,CAAC,EAAE;QAC9B,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,kBAAkB;IAClB,2BAA2B,CAAC,EAAE;QAC5B,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,kBAAkB;IAClB,yBAAyB,CAAC,EAAE;QAC1B,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,kBAAkB;IAClB,uBAAuB,CAAC,EAAE;QACxB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,kBAAkB;IAClB,4BAA4B,CAAC,EAAE;QAC7B,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,2BAA2B,CAAC,EAAE;QAC5B,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,uBAAuB,CAAC,EAAE;QACxB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,kBAAkB,CAAC,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,sBAAsB,CAAC,EAAE;QACvB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,UAAU,CAAC,EAAE;QACX,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,CAAC;IACF,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AACD,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IAC1D,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,aAAa,GAAG,SAAS,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,QAAQ,EAAE;QACN,CAAC,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;KACjC,CAAC;IACF,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC"}
@@ -1,4 +1,4 @@
1
- import type { WorkspaceSchema } from '../interfaces';
1
+ import type { WorkspaceSchema, WorkspaceSchematics } from '../interfaces';
2
2
  /**
3
3
  * Register the collection schematic to the workspace
4
4
  *
@@ -20,4 +20,12 @@ export declare function registerCollectionSchematics(workspace: WorkspaceSchema,
20
20
  export declare function getDefaultOptionsForSchematic(workspace: WorkspaceSchema | null, collection: string, schematicName: string, options: {
21
21
  projectName: string | undefined;
22
22
  }): Record<string, string>;
23
+ /**
24
+ * Retrieves the schematics options of a given schematics name
25
+ * If the schematics name is not found, then the generic options (*:*) will be returned. If the latter is not present the function returns undefined
26
+ *
27
+ * @param config
28
+ * @param schematicName
29
+ */
30
+ export declare function getSchematicOptions<T extends WorkspaceSchematics['*:*'] = WorkspaceSchematics['*:*']>(config: WorkspaceSchema, schematicName?: string): T | undefined;
23
31
  //# sourceMappingURL=collection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../../src/utility/collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe,CAO5G;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE;IAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;CAAC,0BAcrK"}
1
+ {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../../src/utility/collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAE1E;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe,CAO5G;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE;IAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;CAAC,0BAcrK;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,mBAAmB,CAAC,KAAK,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAWrK"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDefaultOptionsForSchematic = exports.registerCollectionSchematics = void 0;
3
+ exports.getSchematicOptions = exports.getDefaultOptionsForSchematic = exports.registerCollectionSchematics = void 0;
4
4
  /**
5
5
  * Register the collection schematic to the workspace
6
6
  *
@@ -42,4 +42,23 @@ function getDefaultOptionsForSchematic(workspace, collection, schematicName, opt
42
42
  []).reduce((out, defaultParams) => ({ ...out, ...defaultParams }), {});
43
43
  }
44
44
  exports.getDefaultOptionsForSchematic = getDefaultOptionsForSchematic;
45
+ /**
46
+ * Retrieves the schematics options of a given schematics name
47
+ * If the schematics name is not found, then the generic options (*:*) will be returned. If the latter is not present the function returns undefined
48
+ *
49
+ * @param config
50
+ * @param schematicName
51
+ */
52
+ function getSchematicOptions(config, schematicName) {
53
+ if (!schematicName) {
54
+ return config.schematics?.['*:*'];
55
+ }
56
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
57
+ const options = config.schematics && Object.entries(config.schematics)
58
+ .filter(([name]) => new RegExp(name.replace(/\*/g, '.*')).test(schematicName))
59
+ .sort(([a], [b]) => ((a.match(/\*/g)?.length || 0) - (b.match(/\*/g)?.length || 0)))
60
+ .reduce((acc, [, opts]) => ({ ...acc, ...opts }), {});
61
+ return options && Object.keys(options).length ? options : undefined;
62
+ }
63
+ exports.getSchematicOptions = getSchematicOptions;
45
64
  //# sourceMappingURL=collection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../src/utility/collection.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,SAAgB,4BAA4B,CAAC,SAA0B,EAAE,UAAkB;IACzF,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC;IACrB,SAAS,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC/D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;QAC5D,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KACxD;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAPD,oEAOC;AAED;;;;;;;;;GASG;AACH,SAAgB,6BAA6B,CAAC,SAAiC,EAAE,UAAkB,EAAE,aAAqB,EAAE,OAA0C;IACpK,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,EAAE,CAAC;KACX;IACD,MAAM,uBAAuB,GAAG;QAC9B,SAAS,CAAC,UAAU;QACpB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;KACpF,CAAC;IACF,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;QACjE,MAAM,CAAC,OAAO,CAAyB,UAAU,CAAC;aAC/C,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,aAAa,EAAE,IAAI,GAAG,KAAK,GAAG,UAAU,IAAI,CAAC;aAC/E,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/B,EAAE,CACH,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,GAAG,EAAE,GAAG,aAAa,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACrE,CAAC;AAdD,sEAcC"}
1
+ {"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../src/utility/collection.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,SAAgB,4BAA4B,CAAC,SAA0B,EAAE,UAAkB;IACzF,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC;IACrB,SAAS,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC/D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;QAC5D,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KACxD;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAPD,oEAOC;AAED;;;;;;;;;GASG;AACH,SAAgB,6BAA6B,CAAC,SAAiC,EAAE,UAAkB,EAAE,aAAqB,EAAE,OAA0C;IACpK,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,EAAE,CAAC;KACX;IACD,MAAM,uBAAuB,GAAG;QAC9B,SAAS,CAAC,UAAU;QACpB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;KACpF,CAAC;IACF,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;QACjE,MAAM,CAAC,OAAO,CAAyB,UAAU,CAAC;aAC/C,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,aAAa,EAAE,IAAI,GAAG,KAAK,GAAG,UAAU,IAAI,CAAC;aAC/E,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/B,EAAE,CACH,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,GAAG,EAAE,GAAG,aAAa,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACrE,CAAC;AAdD,sEAcC;AAED;;;;;;GAMG;AACH,SAAgB,mBAAmB,CAAoE,MAAuB,EAAE,aAAsB;IACpJ,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,CAAkB,CAAC;KACpD;IACD,mEAAmE;IACnE,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;SACnE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC7E,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;SACnF,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,EAAS,CAAC,CAAC;IAE/D,OAAO,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACtE,CAAC;AAXD,kDAWC"}
@@ -1,4 +1,5 @@
1
1
  import type { Tree } from '@angular-devkit/schematics';
2
+ import { WorkspaceLayout, WorkspaceProject, WorkspaceSchema } from '../interfaces';
2
3
  /**
3
4
  * Find the relative path to a configuration file at the monorepo root
4
5
  *
@@ -14,4 +15,29 @@ export declare function findConfigFileRelativePath(tree: Tree, files: string[],
14
15
  * @param tree
15
16
  */
16
17
  export declare function isNxContext(tree: Tree): boolean;
18
+ /**
19
+ * Determine if we are in a project with multi packages
20
+ *
21
+ * @param tree
22
+ */
23
+ export declare function isMultipackagesContext(tree: Tree): boolean;
24
+ /** Default name of the folder where libraries will be generated inside monorepo */
25
+ export declare const LIBRARIES_FOLDER_NAME = "libs";
26
+ /** Default name of the folder where applications will be generated inside monorepo */
27
+ export declare const APPLICATIONS_FOLDER_NAME = "apps";
28
+ /** Default directories for generated apps/libs inside a monorepo */
29
+ export declare const DEFAULT_ROOT_FOLDERS: WorkspaceLayout;
30
+ /** Root folders map for apps/libs inside a monorepo */
31
+ export declare const BASE_ROOT_FOLDERS_MAP: Record<WorkspaceProject['projectType'], keyof WorkspaceLayout>;
32
+ /**
33
+ * Retrive the project base root generation folder, based on the given projectType.
34
+ * - The default project root will be returned if there is no project root found in nx.json or angular.json (in schematics options)
35
+ * - The root path '/' will be returned if no project type given
36
+ *
37
+ * @param config
38
+ * @param tree
39
+ * @param projectType
40
+ * @param schematicName
41
+ */
42
+ export declare function getPackagesBaseRootFolder(config: WorkspaceSchema, tree: Tree, projectType?: WorkspaceProject['projectType'], schematicName?: string): string;
17
43
  //# sourceMappingURL=monorepo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"monorepo.d.ts","sourceRoot":"","sources":["../../../src/utility/monorepo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAGvD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,UAOzF;AACD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,WAErC"}
1
+ {"version":3,"file":"monorepo.d.ts","sourceRoot":"","sources":["../../../src/utility/monorepo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAInF;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,UAOzF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,WAErC;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,WAEhD;AAED,mFAAmF;AACnF,eAAO,MAAM,qBAAqB,SAAS,CAAC;AAC5C,sFAAsF;AACtF,eAAO,MAAM,wBAAwB,SAAS,CAAC;AAE/C,oEAAoE;AACpE,eAAO,MAAM,oBAAoB,EAAE,eAGlC,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,MAAM,eAAe,CAGhG,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,EAAE,MAAM,UAQnJ"}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isNxContext = exports.findConfigFileRelativePath = void 0;
3
+ exports.getPackagesBaseRootFolder = exports.BASE_ROOT_FOLDERS_MAP = exports.DEFAULT_ROOT_FOLDERS = exports.APPLICATIONS_FOLDER_NAME = exports.LIBRARIES_FOLDER_NAME = exports.isMultipackagesContext = exports.isNxContext = exports.findConfigFileRelativePath = void 0;
4
4
  const path = require("node:path");
5
+ const collection_1 = require("./collection");
5
6
  /**
6
7
  * Find the relative path to a configuration file at the monorepo root
7
8
  *
@@ -27,4 +28,45 @@ function isNxContext(tree) {
27
28
  return tree.exists('/nx.json');
28
29
  }
29
30
  exports.isNxContext = isNxContext;
31
+ /**
32
+ * Determine if we are in a project with multi packages
33
+ *
34
+ * @param tree
35
+ */
36
+ function isMultipackagesContext(tree) {
37
+ return !!tree.readJson('/package.json').wokspaces;
38
+ }
39
+ exports.isMultipackagesContext = isMultipackagesContext;
40
+ /** Default name of the folder where libraries will be generated inside monorepo */
41
+ exports.LIBRARIES_FOLDER_NAME = 'libs';
42
+ /** Default name of the folder where applications will be generated inside monorepo */
43
+ exports.APPLICATIONS_FOLDER_NAME = 'apps';
44
+ /** Default directories for generated apps/libs inside a monorepo */
45
+ exports.DEFAULT_ROOT_FOLDERS = {
46
+ libsDir: exports.LIBRARIES_FOLDER_NAME,
47
+ appsDir: exports.APPLICATIONS_FOLDER_NAME
48
+ };
49
+ /** Root folders map for apps/libs inside a monorepo */
50
+ exports.BASE_ROOT_FOLDERS_MAP = {
51
+ library: 'libsDir',
52
+ application: 'appsDir'
53
+ };
54
+ /**
55
+ * Retrive the project base root generation folder, based on the given projectType.
56
+ * - The default project root will be returned if there is no project root found in nx.json or angular.json (in schematics options)
57
+ * - The root path '/' will be returned if no project type given
58
+ *
59
+ * @param config
60
+ * @param tree
61
+ * @param projectType
62
+ * @param schematicName
63
+ */
64
+ function getPackagesBaseRootFolder(config, tree, projectType, schematicName) {
65
+ const configName = projectType && exports.BASE_ROOT_FOLDERS_MAP[projectType];
66
+ const nxExplicitDir = configName && isNxContext(tree) && tree.readJson('/nx.json')?.workspaceLayout[configName];
67
+ const schematicConfigDir = configName && (0, collection_1.getSchematicOptions)(config, schematicName)?.[configName];
68
+ // eslint-disable-next-line @typescript-eslint/restrict-plus-operands
69
+ return '/' + (schematicConfigDir || nxExplicitDir || ((projectType && configName) ? exports.DEFAULT_ROOT_FOLDERS[configName] : ''));
70
+ }
71
+ exports.getPackagesBaseRootFolder = getPackagesBaseRootFolder;
30
72
  //# sourceMappingURL=monorepo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"monorepo.js","sourceRoot":"","sources":["../../../src/utility/monorepo.ts"],"names":[],"mappings":";;;AACA,kCAAkC;AAElC;;;;;;;GAOG;AACH,SAAgB,0BAA0B,CAAC,IAAU,EAAE,KAAe,EAAE,UAAkB;IACxF,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IAChE,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,OAAO,EAAE,CAAC;KACX;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,SAAS,EAAE,CAAC,CAAC;AAC1D,CAAC;AAPD,gEAOC;AACD;;;;GAIG;AACH,SAAgB,WAAW,CAAC,IAAU;IACpC,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACjC,CAAC;AAFD,kCAEC"}
1
+ {"version":3,"file":"monorepo.js","sourceRoot":"","sources":["../../../src/utility/monorepo.ts"],"names":[],"mappings":";;;AACA,kCAAkC;AAElC,6CAAmD;AAGnD;;;;;;;GAOG;AACH,SAAgB,0BAA0B,CAAC,IAAU,EAAE,KAAe,EAAE,UAAkB;IACxF,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IAChE,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,OAAO,EAAE,CAAC;KACX;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,SAAS,EAAE,CAAC,CAAC;AAC1D,CAAC;AAPD,gEAOC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,IAAU;IACpC,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACjC,CAAC;AAFD,kCAEC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,IAAU;IAC/C,OAAO,CAAC,CAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAiB,CAAC,SAAS,CAAC;AACrE,CAAC;AAFD,wDAEC;AAED,mFAAmF;AACtE,QAAA,qBAAqB,GAAG,MAAM,CAAC;AAC5C,sFAAsF;AACzE,QAAA,wBAAwB,GAAG,MAAM,CAAC;AAE/C,oEAAoE;AACvD,QAAA,oBAAoB,GAAoB;IACnD,OAAO,EAAE,6BAAqB;IAC9B,OAAO,EAAE,gCAAwB;CAClC,CAAC;AAEF,uDAAuD;AAC1C,QAAA,qBAAqB,GAAmE;IACnG,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,SAAS;CACvB,CAAC;AAEF;;;;;;;;;GASG;AACH,SAAgB,yBAAyB,CAAC,MAAuB,EAAE,IAAU,EAAE,WAA6C,EAAE,aAAsB;IAClJ,MAAM,UAAU,GAAG,WAAW,IAAI,6BAAqB,CAAC,WAAW,CAAC,CAAC;IACrE,MAAM,aAAa,GAAG,UAAU,IAAI,WAAW,CAAC,IAAI,CAAC,IAAK,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAS,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;IAEzH,MAAM,kBAAkB,GAAG,UAAU,IAAI,IAAA,gCAAmB,EAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAElG,qEAAqE;IACrE,OAAO,GAAG,GAAG,CAAC,kBAAkB,IAAI,aAAa,IAAI,CAAC,CAAC,WAAW,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,4BAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9H,CAAC;AARD,8DAQC"}