@mxpicture/gcp-functions-generator 1.1.2 → 1.1.4

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.
Files changed (70) hide show
  1. package/dist/4testing/utils.d.ts.map +1 -1
  2. package/dist/4testing/utils.js +1 -0
  3. package/dist/4testing/utils.js.map +1 -1
  4. package/dist/common/Barrel.d.ts +50 -0
  5. package/dist/common/Barrel.d.ts.map +1 -1
  6. package/dist/common/Barrel.js +38 -0
  7. package/dist/common/Barrel.js.map +1 -1
  8. package/dist/common/Collector.d.ts +48 -0
  9. package/dist/common/Collector.d.ts.map +1 -1
  10. package/dist/common/Collector.js +39 -0
  11. package/dist/common/Collector.js.map +1 -1
  12. package/dist/common/Directories.d.ts +23 -0
  13. package/dist/common/Directories.d.ts.map +1 -1
  14. package/dist/common/Directories.js +6 -0
  15. package/dist/common/Directories.js.map +1 -1
  16. package/dist/common/Extractor.d.ts +26 -0
  17. package/dist/common/Extractor.d.ts.map +1 -1
  18. package/dist/common/Extractor.js +28 -4
  19. package/dist/common/Extractor.js.map +1 -1
  20. package/dist/common/file.common.d.ts +46 -0
  21. package/dist/common/file.common.d.ts.map +1 -1
  22. package/dist/common/file.common.js +46 -0
  23. package/dist/common/file.common.js.map +1 -1
  24. package/dist/common/generator.common.d.ts +58 -0
  25. package/dist/common/generator.common.d.ts.map +1 -1
  26. package/dist/common/generator.common.js +54 -4
  27. package/dist/common/generator.common.js.map +1 -1
  28. package/dist/common/string.common.d.ts +24 -0
  29. package/dist/common/string.common.d.ts.map +1 -1
  30. package/dist/common/string.common.js +24 -0
  31. package/dist/common/string.common.js.map +1 -1
  32. package/dist/common/types.common.d.ts +16 -0
  33. package/dist/common/types.common.d.ts.map +1 -1
  34. package/dist/decorator/deco.imports.d.ts +19 -0
  35. package/dist/decorator/deco.imports.d.ts.map +1 -1
  36. package/dist/decorator/deco.imports.js +16 -0
  37. package/dist/decorator/deco.imports.js.map +1 -1
  38. package/dist/decorator/deco.names.d.ts +85 -0
  39. package/dist/decorator/deco.names.d.ts.map +1 -1
  40. package/dist/decorator/deco.names.js +85 -0
  41. package/dist/decorator/deco.names.js.map +1 -1
  42. package/dist/generator/Generator.d.ts +82 -0
  43. package/dist/generator/Generator.d.ts.map +1 -1
  44. package/dist/generator/Generator.js +67 -0
  45. package/dist/generator/Generator.js.map +1 -1
  46. package/dist/generator/GeneratorAnnotations.d.ts +7 -0
  47. package/dist/generator/GeneratorAnnotations.d.ts.map +1 -1
  48. package/dist/generator/GeneratorAnnotations.js +7 -0
  49. package/dist/generator/GeneratorAnnotations.js.map +1 -1
  50. package/dist/generator/GeneratorBackend.d.ts +7 -0
  51. package/dist/generator/GeneratorBackend.d.ts.map +1 -1
  52. package/dist/generator/GeneratorBackend.js +7 -0
  53. package/dist/generator/GeneratorBackend.js.map +1 -1
  54. package/dist/generator/GeneratorDoc.d.ts +6 -0
  55. package/dist/generator/GeneratorDoc.d.ts.map +1 -1
  56. package/dist/generator/GeneratorDoc.js +6 -0
  57. package/dist/generator/GeneratorDoc.js.map +1 -1
  58. package/dist/generator/GeneratorFrontend.d.ts +7 -0
  59. package/dist/generator/GeneratorFrontend.d.ts.map +1 -1
  60. package/dist/generator/GeneratorFrontend.js +7 -0
  61. package/dist/generator/GeneratorFrontend.js.map +1 -1
  62. package/dist/generator/GeneratorRoutes.d.ts +8 -0
  63. package/dist/generator/GeneratorRoutes.d.ts.map +1 -1
  64. package/dist/generator/GeneratorRoutes.js +8 -0
  65. package/dist/generator/GeneratorRoutes.js.map +1 -1
  66. package/dist/generator/GeneratorZod.d.ts +8 -0
  67. package/dist/generator/GeneratorZod.d.ts.map +1 -1
  68. package/dist/generator/GeneratorZod.js +8 -0
  69. package/dist/generator/GeneratorZod.js.map +1 -1
  70. package/package.json +7 -5
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/4testing/utils.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,QAA8B,CAAC;AAClD,eAAO,MAAM,YAAY,QAAoC,CAAC;AAE9D,eAAO,MAAM,mBAAmB,uBACiB,CAAC;AAElD,eAAO,MAAM,mBAAmB,GAAU,GAAG,MAAM,GAAG,IAAI,KAAG,OAAO,CAAC,IAAI,CAKxE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,gBAAgB,MAAM,YACD,CAAC;AAEtD,eAAO,MAAM,qBAAqB,yBAGL,CAAC;AAE9B,eAAO,MAAM,uBAAuB,QAAa,OAAO,CAAC,IAAI,CAK5D,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/4testing/utils.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,MAAM,QAA8B,CAAC;AAClD,eAAO,MAAM,YAAY,QAAoC,CAAC;AAE9D,eAAO,MAAM,mBAAmB,uBACiB,CAAC;AAElD,eAAO,MAAM,mBAAmB,GAAU,GAAG,MAAM,GAAG,IAAI,KAAG,OAAO,CAAC,IAAI,CAKxE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,gBAAgB,MAAM,YACD,CAAC;AAEtD,eAAO,MAAM,qBAAqB,yBAGL,CAAC;AAE9B,eAAO,MAAM,uBAAuB,QAAa,OAAO,CAAC,IAAI,CAK5D,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { readdir, rm } from "node:fs/promises";
2
2
  import { join, resolve } from "node:path";
3
+ const __dirname = import.meta.dirname;
3
4
  export const wsRoot = resolve(__dirname, "../..");
4
5
  export const templatesDir = resolve(__dirname, "./templates");
5
6
  export const createTestWorkspace = async () => join(__dirname, `generator-test-${Date.now()}`);
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/4testing/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAE9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE,CAC5C,IAAI,CAAC,SAAS,EAAE,kBAAkB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,CAAgB,EAAiB,EAAE;IAC3E,IAAI,CAAC,CAAC;QAAE,OAAO;IACf,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,cAAsB,EAAE,EAAE,CACxD,8BAA8B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,IAAI,EAAE,CAC9C,CAAC,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;KAChD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAClE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE9B,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,IAAmB,EAAE;IAC/D,MAAM,QAAQ,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAC/C,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CACzE,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/4testing/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAE9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE,CAC5C,IAAI,CAAC,SAAS,EAAE,kBAAkB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,CAAgB,EAAiB,EAAE;IAC3E,IAAI,CAAC,CAAC;QAAE,OAAO;IACf,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,cAAsB,EAAE,EAAE,CACxD,8BAA8B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,IAAI,EAAE,CAC9C,CAAC,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;KAChD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAClE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE9B,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,IAAmB,EAAE;IAC/D,MAAM,QAAQ,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAC/C,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CACzE,CAAC;AACJ,CAAC,CAAC"}
@@ -1,24 +1,74 @@
1
1
  import { DecoTargetType } from "@mxpicture/gcp-functions-common/decorator";
2
+ /**
3
+ * Represents the result of creating a barrel (index) file for a directory.
4
+ */
2
5
  export interface BarrelResult {
6
+ /** Absolute path to the directory containing the barrel file. */
3
7
  dirPath: string;
8
+ /** Absolute path to the generated barrel file. */
4
9
  barrelFilePath: string;
10
+ /** Array of export statements to write into the barrel file. */
5
11
  exportsCode: string[];
6
12
  }
13
+ /**
14
+ * Groups files in the same directory that share a common barrel file.
15
+ */
7
16
  export interface BarrelFileGroup {
17
+ /** Absolute path to the directory. */
8
18
  dirPath: string;
19
+ /** Name of the barrel file (typically `index.ts`). */
9
20
  barrelFilename: string;
21
+ /** File names within the directory to re-export. */
10
22
  filenames: string[];
11
23
  }
24
+ /**
25
+ * Manages generation of barrel (index) files that re-export modules from a directory.
26
+ *
27
+ * @remarks
28
+ * Uses a singleton-per-target-type pattern via {@link Barrel.instance}.
29
+ * All created instances are tracked in {@link Barrel.instances}.
30
+ */
12
31
  export declare class Barrel {
13
32
  readonly targetType: DecoTargetType;
33
+ /** When `true`, skips updating `package.json` exports during barrel generation. */
14
34
  static ignorePackageJson: boolean;
35
+ /** All barrel instances created so far, one per {@link DecoTargetType}. */
15
36
  static instances: Barrel[];
16
37
  protected filePaths: string[];
38
+ /**
39
+ * Retrieves or creates the singleton barrel instance for a given target type.
40
+ *
41
+ * @param targetType - The decorator target type to get the barrel for.
42
+ * @returns The existing or newly created {@link Barrel} instance.
43
+ */
17
44
  static instance(targetType: DecoTargetType): Barrel;
18
45
  protected constructor(targetType: DecoTargetType);
46
+ /**
47
+ * Registers file paths to be included in the barrel output.
48
+ *
49
+ * @param filePaths - One or more absolute file paths to add.
50
+ */
19
51
  add(...filePaths: string[]): void;
52
+ /**
53
+ * Creates barrel results by grouping registered file paths by directory.
54
+ *
55
+ * @returns An array of {@link BarrelResult} objects, one per directory.
56
+ */
20
57
  create(): BarrelResult[];
58
+ /**
59
+ * Writes barrel files to disk, formatting the code before writing.
60
+ *
61
+ * @param results - The barrel results to write.
62
+ */
21
63
  write(results: BarrelResult[]): Promise<void>;
64
+ /**
65
+ * Updates the target `package.json` exports map to include the generated barrel paths.
66
+ *
67
+ * @remarks
68
+ * Skipped when {@link Barrel.ignorePackageJson} is `true`.
69
+ *
70
+ * @param results - The barrel results whose paths should be added to `package.json`.
71
+ */
22
72
  ensurePackageBarrels(results: BarrelResult[]): Promise<void>;
23
73
  protected groupPaths(filePaths: string[]): BarrelFileGroup[];
24
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Barrel.d.ts","sourceRoot":"","sources":["../../src/common/Barrel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAG3E,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,qBAAa,MAAM;aAgBqB,UAAU,EAAE,cAAc;IAfhE,OAAc,iBAAiB,EAAE,OAAO,CAAS;IACjD,OAAc,SAAS,EAAE,MAAM,EAAE,CAAM;IACvC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,CAAM;WAErB,QAAQ,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM;IAW1D,SAAS,aAA6B,UAAU,EAAE,cAAc;IAEzD,GAAG,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAIjC,MAAM,IAAI,YAAY,EAAE;IAUlB,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAc7C,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzE,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE;CAsB7D"}
1
+ {"version":3,"file":"Barrel.d.ts","sourceRoot":"","sources":["../../src/common/Barrel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAG3E;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,cAAc,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;;GAMG;AACH,qBAAa,MAAM;aAwBqB,UAAU,EAAE,cAAc;IAvBhE,mFAAmF;IACnF,OAAc,iBAAiB,EAAE,OAAO,CAAS;IACjD,2EAA2E;IAC3E,OAAc,SAAS,EAAE,MAAM,EAAE,CAAM;IACvC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,CAAM;IAEnC;;;;;OAKG;WACW,QAAQ,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM;IAW1D,SAAS,aAA6B,UAAU,EAAE,cAAc;IAEhE;;;;OAIG;IACI,GAAG,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAIxC;;;;OAIG;IACI,MAAM,IAAI,YAAY,EAAE;IAU/B;;;;OAIG;IACU,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAc1D;;;;;;;OAOG;IACU,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzE,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE;CAsB7D"}
@@ -2,11 +2,26 @@ import { basename, dirname, join } from "node:path";
2
2
  import { mkdir, writeFile, readFile } from "node:fs/promises";
3
3
  import { directories } from "./Directories.js";
4
4
  import { formatCode } from "@mxpicture/build-api/code";
5
+ /**
6
+ * Manages generation of barrel (index) files that re-export modules from a directory.
7
+ *
8
+ * @remarks
9
+ * Uses a singleton-per-target-type pattern via {@link Barrel.instance}.
10
+ * All created instances are tracked in {@link Barrel.instances}.
11
+ */
5
12
  export class Barrel {
6
13
  targetType;
14
+ /** When `true`, skips updating `package.json` exports during barrel generation. */
7
15
  static ignorePackageJson = false;
16
+ /** All barrel instances created so far, one per {@link DecoTargetType}. */
8
17
  static instances = [];
9
18
  filePaths = [];
19
+ /**
20
+ * Retrieves or creates the singleton barrel instance for a given target type.
21
+ *
22
+ * @param targetType - The decorator target type to get the barrel for.
23
+ * @returns The existing or newly created {@link Barrel} instance.
24
+ */
10
25
  static instance(targetType) {
11
26
  let found = this.instances.find((barrel) => barrel.targetType === targetType);
12
27
  if (!found) {
@@ -18,9 +33,19 @@ export class Barrel {
18
33
  constructor(targetType) {
19
34
  this.targetType = targetType;
20
35
  }
36
+ /**
37
+ * Registers file paths to be included in the barrel output.
38
+ *
39
+ * @param filePaths - One or more absolute file paths to add.
40
+ */
21
41
  add(...filePaths) {
22
42
  this.filePaths.push(...filePaths);
23
43
  }
44
+ /**
45
+ * Creates barrel results by grouping registered file paths by directory.
46
+ *
47
+ * @returns An array of {@link BarrelResult} objects, one per directory.
48
+ */
24
49
  create() {
25
50
  return this.groupPaths(this.filePaths).map((group) => ({
26
51
  dirPath: group.dirPath,
@@ -28,6 +53,11 @@ export class Barrel {
28
53
  exportsCode: group.filenames.map((fielname) => `export * from "./${fielname}";`),
29
54
  }));
30
55
  }
56
+ /**
57
+ * Writes barrel files to disk, formatting the code before writing.
58
+ *
59
+ * @param results - The barrel results to write.
60
+ */
31
61
  async write(results) {
32
62
  const promises = [];
33
63
  for (const result of results) {
@@ -39,6 +69,14 @@ export class Barrel {
39
69
  }
40
70
  await Promise.all(promises);
41
71
  }
72
+ /**
73
+ * Updates the target `package.json` exports map to include the generated barrel paths.
74
+ *
75
+ * @remarks
76
+ * Skipped when {@link Barrel.ignorePackageJson} is `true`.
77
+ *
78
+ * @param results - The barrel results whose paths should be added to `package.json`.
79
+ */
42
80
  async ensurePackageBarrels(results) {
43
81
  if (Barrel.ignorePackageJson) {
44
82
  console.log("ensurePackageBarrels ignored");
@@ -1 +1 @@
1
- {"version":3,"file":"Barrel.js","sourceRoot":"","sources":["../../src/common/Barrel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Barrel.js","sourceRoot":"","sources":["../../src/common/Barrel.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,70 @@
1
1
  import { DecoNames, DecoTargetType } from "@mxpicture/gcp-functions-common/decorator";
2
+ /**
3
+ * Identifies a collected item by its base name and target type.
4
+ */
2
5
  export interface CollectorKey {
3
6
  basename: string;
4
7
  targetType: DecoTargetType;
5
8
  }
9
+ /**
10
+ * Data associated with a collected decorator, primarily its resolved names.
11
+ */
6
12
  export interface CollectorData {
7
13
  names: DecoNames;
8
14
  }
15
+ /**
16
+ * A single entry in the collector, pairing a key with its data.
17
+ */
9
18
  export interface CollectorItem {
10
19
  key: CollectorKey;
11
20
  data: CollectorData;
12
21
  }
22
+ /**
23
+ * Collects and indexes decorator metadata by base name and target type.
24
+ *
25
+ * @remarks
26
+ * Acts as a shared registry across generators so that later generators
27
+ * (e.g. Zod) can reference names resolved by earlier generators (e.g. Doc).
28
+ * Use {@link Collector.instance} for the global singleton.
29
+ */
13
30
  export declare class Collector {
14
31
  protected items: CollectorItem[];
32
+ /**
33
+ * Returns the global singleton instance of the collector.
34
+ *
35
+ * @returns The shared {@link Collector} instance.
36
+ */
15
37
  static instance(): Collector;
16
38
  constructor();
39
+ /**
40
+ * Adds a decorator entry if one with the same base name and target type does not already exist.
41
+ *
42
+ * @param basename - The base name of the decorator.
43
+ * @param targetType - The target type (e.g. common, backend, frontend).
44
+ * @param data - The decorator metadata to store.
45
+ */
17
46
  add(basename: string, targetType: DecoTargetType, data: CollectorData): void;
47
+ /**
48
+ * Finds a collector item by exact base name and target type.
49
+ *
50
+ * @param basename - The base name to search for.
51
+ * @param targetType - The target type to match.
52
+ * @returns The matching item, or `null` if not found.
53
+ */
18
54
  find(basename: string, targetType: DecoTargetType): CollectorItem | null;
55
+ /**
56
+ * Searches for collector items where the name matches the base name or any named property.
57
+ *
58
+ * @param name - The name to search across all decorator name properties.
59
+ * @returns An array of matching {@link CollectorItem} entries.
60
+ */
19
61
  findGeneric(name: string): CollectorItem[];
62
+ /**
63
+ * Returns the first matching collector item for the given name.
64
+ *
65
+ * @param name - The name to search for.
66
+ * @returns The first matching item, or `null` if none found.
67
+ */
20
68
  findFirst(name: string): CollectorItem | null;
21
69
  }
22
70
  //# sourceMappingURL=Collector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Collector.d.ts","sourceRoot":"","sources":["../../src/common/Collector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,cAAc,EACf,MAAM,2CAA2C,CAAC;AAEnD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,YAAY,CAAC;IAClB,IAAI,EAAE,aAAa,CAAC;CACrB;AAID,qBAAa,SAAS;IACpB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,CAAM;WAExB,QAAQ,IAAI,SAAS;;IAO5B,GAAG,CACR,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,cAAc,EAC1B,IAAI,EAAE,aAAa,GAClB,IAAI;IAKA,IAAI,CACT,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,cAAc,GACzB,aAAa,GAAG,IAAI;IAShB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE;IAc1C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;CAIrD"}
1
+ {"version":3,"file":"Collector.d.ts","sourceRoot":"","sources":["../../src/common/Collector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,cAAc,EACf,MAAM,2CAA2C,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,SAAS,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,YAAY,CAAC;IAClB,IAAI,EAAE,aAAa,CAAC;CACrB;AAID;;;;;;;GAOG;AACH,qBAAa,SAAS;IACpB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,CAAM;IAEtC;;;;OAIG;WACW,QAAQ,IAAI,SAAS;;IAOnC;;;;;;OAMG;IACI,GAAG,CACR,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,cAAc,EAC1B,IAAI,EAAE,aAAa,GAClB,IAAI;IAKP;;;;;;OAMG;IACI,IAAI,CACT,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,cAAc,GACzB,aAAa,GAAG,IAAI;IASvB;;;;;OAKG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE;IAcjD;;;;;OAKG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;CAIrD"}
@@ -1,21 +1,54 @@
1
1
  import { decoNamesProperties, } from "@mxpicture/gcp-functions-common/decorator";
2
2
  let __instance = null;
3
+ /**
4
+ * Collects and indexes decorator metadata by base name and target type.
5
+ *
6
+ * @remarks
7
+ * Acts as a shared registry across generators so that later generators
8
+ * (e.g. Zod) can reference names resolved by earlier generators (e.g. Doc).
9
+ * Use {@link Collector.instance} for the global singleton.
10
+ */
3
11
  export class Collector {
4
12
  items = [];
13
+ /**
14
+ * Returns the global singleton instance of the collector.
15
+ *
16
+ * @returns The shared {@link Collector} instance.
17
+ */
5
18
  static instance() {
6
19
  if (!__instance)
7
20
  __instance = new Collector();
8
21
  return __instance;
9
22
  }
10
23
  constructor() { }
24
+ /**
25
+ * Adds a decorator entry if one with the same base name and target type does not already exist.
26
+ *
27
+ * @param basename - The base name of the decorator.
28
+ * @param targetType - The target type (e.g. common, backend, frontend).
29
+ * @param data - The decorator metadata to store.
30
+ */
11
31
  add(basename, targetType, data) {
12
32
  if (this.find(basename, targetType))
13
33
  return;
14
34
  this.items.push({ key: { basename, targetType }, data: { ...data } });
15
35
  }
36
+ /**
37
+ * Finds a collector item by exact base name and target type.
38
+ *
39
+ * @param basename - The base name to search for.
40
+ * @param targetType - The target type to match.
41
+ * @returns The matching item, or `null` if not found.
42
+ */
16
43
  find(basename, targetType) {
17
44
  return (this.items.find((item) => item.key.basename === basename && item.key.targetType === targetType) ?? null);
18
45
  }
46
+ /**
47
+ * Searches for collector items where the name matches the base name or any named property.
48
+ *
49
+ * @param name - The name to search across all decorator name properties.
50
+ * @returns An array of matching {@link CollectorItem} entries.
51
+ */
19
52
  findGeneric(name) {
20
53
  const results = [];
21
54
  for (const item of this.items) {
@@ -30,6 +63,12 @@ export class Collector {
30
63
  }
31
64
  return results;
32
65
  }
66
+ /**
67
+ * Returns the first matching collector item for the given name.
68
+ *
69
+ * @param name - The name to search for.
70
+ * @returns The first matching item, or `null` if none found.
71
+ */
33
72
  findFirst(name) {
34
73
  const results = this.findGeneric(name);
35
74
  return results.length > 0 ? results[0] : null;
@@ -1 +1 @@
1
- {"version":3,"file":"Collector.js","sourceRoot":"","sources":["../../src/common/Collector.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,GAEpB,MAAM,2CAA2C,CAAC;AAgBnD,IAAI,UAAU,GAAqB,IAAI,CAAC;AAExC,MAAM,OAAO,SAAS;IACV,KAAK,GAAoB,EAAE,CAAC;IAE/B,MAAM,CAAC,QAAQ;QACpB,IAAI,CAAC,UAAU;YAAE,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;QAC9C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,gBAAsB,CAAC;IAEhB,GAAG,CACR,QAAgB,EAChB,UAA0B,EAC1B,IAAmB;QAEnB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;YAAE,OAAO;QAC5C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;IAEM,IAAI,CACT,QAAgB,EAChB,UAA0B;QAE1B,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,UAAU,CACvE,IAAI,IAAI,CACV,CAAC;IACJ,CAAC;IAEM,WAAW,CAAC,IAAY;QAC7B,MAAM,OAAO,GAAoB,EAAE,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,KAAK,MAAM,IAAI,IAAI,mBAAmB,EAAE,CAAC;gBACvC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,SAAS,CAAC,IAAY;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;CACF"}
1
+ {"version":3,"file":"Collector.js","sourceRoot":"","sources":["../../src/common/Collector.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,GAEpB,MAAM,2CAA2C,CAAC;AAyBnD,IAAI,UAAU,GAAqB,IAAI,CAAC;AAExC;;;;;;;GAOG;AACH,MAAM,OAAO,SAAS;IACV,KAAK,GAAoB,EAAE,CAAC;IAEtC;;;;OAIG;IACI,MAAM,CAAC,QAAQ;QACpB,IAAI,CAAC,UAAU;YAAE,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;QAC9C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,gBAAsB,CAAC;IAEvB;;;;;;OAMG;IACI,GAAG,CACR,QAAgB,EAChB,UAA0B,EAC1B,IAAmB;QAEnB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;YAAE,OAAO;QAC5C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;OAMG;IACI,IAAI,CACT,QAAgB,EAChB,UAA0B;QAE1B,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,UAAU,CACvE,IAAI,IAAI,CACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,IAAY;QAC7B,MAAM,OAAO,GAAoB,EAAE,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,KAAK,MAAM,IAAI,IAAI,mBAAmB,EAAE,CAAC;gBACvC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACI,SAAS,CAAC,IAAY;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;CACF"}
@@ -1,14 +1,31 @@
1
1
  import { DecoFileType, DecoTargetType } from "@mxpicture/gcp-functions-common/decorator";
2
+ /**
3
+ * Parameters used by {@link DirectoriesResolver} to identify a target/file type pair.
4
+ */
2
5
  export interface DirectoriesResolverParams {
3
6
  targetType: DecoTargetType;
4
7
  fileType: DecoFileType;
5
8
  }
9
+ /**
10
+ * Resolves an import path between two target/file type pairs.
11
+ *
12
+ * @param imp - The import target parameters (e.g. `common/doc`).
13
+ * @param current - The current file's parameters used as the resolution base.
14
+ * @returns The resolved import path string.
15
+ */
6
16
  export type DirectoriesResolver = (imp: DirectoriesResolverParams, // e.g ${TargetType}/${DecoFileType} --> common/doc,
7
17
  current: DirectoriesResolverParams) => string;
18
+ /**
19
+ * Configuration parameters for the directories manager.
20
+ */
8
21
  export interface DirectoriesParams {
22
+ /** Current working directory used as the base for resolving paths. */
9
23
  cwd: string;
24
+ /** Relative path from `cwd` to the templates directory. */
10
25
  templatesDir: string;
26
+ /** Relative path from `cwd` to the code generation target directory. */
11
27
  targetDir: string;
28
+ /** Callback that resolves import paths between target/file type pairs. */
12
29
  importResolver: DirectoriesResolver;
13
30
  }
14
31
  declare class Directories {
@@ -32,6 +49,12 @@ declare class Directories {
32
49
  concatResolverPath(params: DirectoriesResolverParams): string;
33
50
  protected get params(): DirectoriesParams;
34
51
  }
52
+ /**
53
+ * Singleton instance of the directories manager.
54
+ *
55
+ * @remarks
56
+ * Must be configured via `directories.setup(params)` before use.
57
+ */
35
58
  export declare const directories: Directories;
36
59
  export {};
37
60
  //# sourceMappingURL=Directories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Directories.d.ts","sourceRoot":"","sources":["../../src/common/Directories.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,cAAc,EAGf,MAAM,2CAA2C,CAAC;AAGnD,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,MAAM,mBAAmB,GAAG,CAChC,GAAG,EAAE,yBAAyB,EAAE,oDAAoD;AACpF,OAAO,EAAE,yBAAyB,KAC/B,MAAM,CAAC;AAEZ,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,mBAAmB,CAAC;CACrC;AAQD,cAAM,WAAW;IACf,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAQ;;IAI5C,KAAK,CAAC,MAAM,EAAE,iBAAiB;IAStC,IAAW,YAAY,IAAI,MAAM,CAEhC;IAEM,SAAS,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM;IAI7C,cAAc,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM;IAIlD,YAAY,CACjB,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,cAAc;IAKrB,iBAAiB,CAAC,UAAU,EAAE,cAAc;IAItC,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAM5C,aAAa,CAClB,GAAG,EAAE;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,GAAG,MAAM,EACpE,WAAW,EACP;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,GACtD,MAAM,GACT,MAAM;IASF,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB;IAkB1D,kBAAkB,CAAC,MAAM,EAAE,yBAAyB,GAAG,MAAM;IAIpE,SAAS,KAAK,MAAM,IAAI,iBAAiB,CAGxC;CACF;AAED,eAAO,MAAM,WAAW,aAAa,CAAC"}
1
+ {"version":3,"file":"Directories.d.ts","sourceRoot":"","sources":["../../src/common/Directories.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,cAAc,EAGf,MAAM,2CAA2C,CAAC;AAGnD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAChC,GAAG,EAAE,yBAAyB,EAAE,oDAAoD;AACpF,OAAO,EAAE,yBAAyB,KAC/B,MAAM,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,cAAc,EAAE,mBAAmB,CAAC;CACrC;AAQD,cAAM,WAAW;IACf,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAQ;;IAI5C,KAAK,CAAC,MAAM,EAAE,iBAAiB;IAStC,IAAW,YAAY,IAAI,MAAM,CAEhC;IAEM,SAAS,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM;IAI7C,cAAc,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM;IAIlD,YAAY,CACjB,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,cAAc;IAKrB,iBAAiB,CAAC,UAAU,EAAE,cAAc;IAItC,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAM5C,aAAa,CAClB,GAAG,EAAE;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,GAAG,MAAM,EACpE,WAAW,EACP;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,GACtD,MAAM,GACT,MAAM;IASF,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB;IAkB1D,kBAAkB,CAAC,MAAM,EAAE,yBAAyB,GAAG,MAAM;IAIpE,SAAS,KAAK,MAAM,IAAI,iBAAiB,CAGxC;CACF;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,aAAa,CAAC"}
@@ -66,5 +66,11 @@ class Directories {
66
66
  return this._params;
67
67
  }
68
68
  }
69
+ /**
70
+ * Singleton instance of the directories manager.
71
+ *
72
+ * @remarks
73
+ * Must be configured via `directories.setup(params)` before use.
74
+ */
69
75
  export const directories = instance();
70
76
  //# sourceMappingURL=Directories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Directories.js","sourceRoot":"","sources":["../../src/common/Directories.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Directories.js","sourceRoot":"","sources":["../../src/common/Directories.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,36 @@
1
1
  import { DecoFile } from "@mxpicture/gcp-functions-common/types";
2
+ /**
3
+ * Creates {@link Extractor} instances for the given template file paths.
4
+ *
5
+ * @param filePaths - Absolute paths to template files.
6
+ * @returns A promise resolving to an array of extractors.
7
+ */
2
8
  export declare const createExtractors: (filePaths: string[]) => Promise<Extractor[]>;
9
+ /**
10
+ * Creates extractors for the given file paths and runs them all.
11
+ *
12
+ * @param filePaths - Absolute paths to template files.
13
+ * @returns A promise resolving to the extracted decorator files.
14
+ */
3
15
  export declare const runExtractors: (filePaths: string[]) => Promise<DecoFile[]>;
16
+ /**
17
+ * Dynamically imports a template file and extracts its {@link Decorator} instances.
18
+ */
4
19
  export declare class Extractor {
5
20
  readonly filePath: string;
6
21
  readonly rootDir: string;
22
+ /**
23
+ * Creates a new extractor.
24
+ *
25
+ * @param filePath - Absolute path to the template file.
26
+ * @param rootDir - Workspace root directory used to compute relative paths.
27
+ */
7
28
  constructor(filePath: string, rootDir: string);
29
+ /**
30
+ * Imports the template file and extracts all {@link Decorator} exports.
31
+ *
32
+ * @returns A {@link DecoFile} containing the template path and its decorators.
33
+ */
8
34
  run(): Promise<DecoFile>;
9
35
  }
10
36
  //# sourceMappingURL=Extractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Extractor.d.ts","sourceRoot":"","sources":["../../src/common/Extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAQjE,eAAO,MAAM,gBAAgB,GAC3B,WAAW,MAAM,EAAE,KAClB,OAAO,CAAC,SAAS,EAAE,CAGrB,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,WAAW,MAAM,EAAE,KAClB,OAAO,CAAC,QAAQ,EAAE,CAGpB,CAAC;AAEF,qBAAa,SAAS;aAEF,QAAQ,EAAE,MAAM;aAChB,OAAO,EAAE,MAAM;gBADf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM;IAGpB,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;CAUtC"}
1
+ {"version":3,"file":"Extractor.d.ts","sourceRoot":"","sources":["../../src/common/Extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAKjE;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,WAAW,MAAM,EAAE,KAClB,OAAO,CAAC,SAAS,EAAE,CAGrB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GACxB,WAAW,MAAM,EAAE,KAClB,OAAO,CAAC,QAAQ,EAAE,CAGpB,CAAC;AAEF;;GAEG;AACH,qBAAa,SAAS;aAQF,QAAQ,EAAE,MAAM;aAChB,OAAO,EAAE,MAAM;IARjC;;;;;OAKG;gBAEe,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM;IAGjC;;;;OAIG;IACU,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;CAUtC"}
@@ -1,23 +1,47 @@
1
- import { dirname, relative } from "node:path";
1
+ import { relative } from "node:path";
2
2
  import { findWorkspaceRoot } from "@mxpicture/build-api/workspace";
3
- import { fileURLToPath } from "node:url";
4
3
  import { Decorator } from "@mxpicture/gcp-functions-common/decorator";
5
- const __dirname = dirname(fileURLToPath(import.meta.url));
4
+ /**
5
+ * Creates {@link Extractor} instances for the given template file paths.
6
+ *
7
+ * @param filePaths - Absolute paths to template files.
8
+ * @returns A promise resolving to an array of extractors.
9
+ */
6
10
  export const createExtractors = async (filePaths) => {
7
- const rootDir = (await findWorkspaceRoot(__dirname)).dirPath;
11
+ const rootDir = (await findWorkspaceRoot(import.meta.dirname)).dirPath;
8
12
  return filePaths.map((filePath) => new Extractor(filePath, rootDir));
9
13
  };
14
+ /**
15
+ * Creates extractors for the given file paths and runs them all.
16
+ *
17
+ * @param filePaths - Absolute paths to template files.
18
+ * @returns A promise resolving to the extracted decorator files.
19
+ */
10
20
  export const runExtractors = async (filePaths) => {
11
21
  const exs = await createExtractors(filePaths);
12
22
  return Promise.all(exs.map((ex) => ex.run()));
13
23
  };
24
+ /**
25
+ * Dynamically imports a template file and extracts its {@link Decorator} instances.
26
+ */
14
27
  export class Extractor {
15
28
  filePath;
16
29
  rootDir;
30
+ /**
31
+ * Creates a new extractor.
32
+ *
33
+ * @param filePath - Absolute path to the template file.
34
+ * @param rootDir - Workspace root directory used to compute relative paths.
35
+ */
17
36
  constructor(filePath, rootDir) {
18
37
  this.filePath = filePath;
19
38
  this.rootDir = rootDir;
20
39
  }
40
+ /**
41
+ * Imports the template file and extracts all {@link Decorator} exports.
42
+ *
43
+ * @returns A {@link DecoFile} containing the template path and its decorators.
44
+ */
21
45
  async run() {
22
46
  const imported = await import(this.filePath);
23
47
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"Extractor.js","sourceRoot":"","sources":["../../src/common/Extractor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAEtE,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,SAAmB,EACG,EAAE;IACxB,MAAM,OAAO,GAAG,CAAC,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7D,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,SAAmB,EACE,EAAE;IACvB,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,OAAO,SAAS;IAEF;IACA;IAFlB,YACkB,QAAgB,EAChB,OAAe;QADf,aAAQ,GAAR,QAAQ,CAAQ;QAChB,YAAO,GAAP,OAAO,CAAQ;IAC9B,CAAC;IAEG,KAAK,CAAC,GAAG;QACd,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,OAAO;YACL,gBAAgB,EAAE,IAAI,CAAC,QAAQ;YAC/B,oBAAoB,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC;YAC3D,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CACxC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,YAAY,SAAS,CAC9C;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"Extractor.js","sourceRoot":"","sources":["../../src/common/Extractor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,SAAmB,EACG,EAAE;IACxB,MAAM,OAAO,GAAG,CAAC,MAAM,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACvE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,SAAmB,EACE,EAAE;IACvB,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,SAAS;IAQF;IACA;IARlB;;;;;OAKG;IACH,YACkB,QAAgB,EAChB,OAAe;QADf,aAAQ,GAAR,QAAQ,CAAQ;QAChB,YAAO,GAAP,OAAO,CAAQ;IAC9B,CAAC;IAEJ;;;;OAIG;IACI,KAAK,CAAC,GAAG;QACd,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,OAAO;YACL,gBAAgB,EAAE,IAAI,CAAC,QAAQ;YAC/B,oBAAoB,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC;YAC3D,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CACxC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,YAAY,SAAS,CAC9C;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -1,10 +1,56 @@
1
1
  import { DecoFileExtension, DecoFileType } from "@mxpicture/gcp-functions-common/decorator";
2
2
  import { ExtractFileParts } from "./types.common.js";
3
+ /**
4
+ * Checks whether a filename matches the template file naming convention.
5
+ *
6
+ * @param filename - The filename to check.
7
+ * @returns `true` if the file is a TypeScript template file.
8
+ */
3
9
  export declare const isTemplateFile: (filename: string) => boolean;
10
+ /**
11
+ * Checks whether a filename is a TypeScript file of the given decorator file type.
12
+ *
13
+ * @param filename - The filename to check.
14
+ * @param type - The expected decorator file type.
15
+ * @returns `true` if the file matches the type and has a `.ts` extension.
16
+ */
4
17
  export declare const isTsFile: (filename: string, type: DecoFileType) => boolean;
18
+ /**
19
+ * Checks whether a filename matches an optional type and extension.
20
+ *
21
+ * @param filename - The filename to check.
22
+ * @param type - Optional decorator file type filter.
23
+ * @param ext - Optional file extension filter.
24
+ * @returns `true` if the file matches the given filters (or no filter is provided).
25
+ */
5
26
  export declare const isAnyFile: (filename: string, type?: DecoFileType, ext?: DecoFileExtension) => boolean;
27
+ /**
28
+ * Parses a dot-separated filename into its constituent parts.
29
+ *
30
+ * @remarks
31
+ * Filenames must have at least three dot-separated segments: `{type}.{middle}.{ext}`.
32
+ *
33
+ * @param filename - The filename to parse.
34
+ * @returns The parsed {@link ExtractFileParts}.
35
+ * @throws Error if the filename has fewer than three dot-separated parts or contains invalid type/extension.
36
+ */
6
37
  export declare const extractFileParts: (filename: string) => ExtractFileParts;
38
+ /**
39
+ * Concatenates file parts back into a dot-separated filename string.
40
+ *
41
+ * @remarks
42
+ * If `parts.generated` is `true`, a `.gen` segment is inserted before the extension.
43
+ *
44
+ * @param parts - The file parts to concatenate.
45
+ * @returns The reconstructed filename.
46
+ */
7
47
  export declare const concatFileParts: (parts: ExtractFileParts) => string;
48
+ /**
49
+ * Builds a target filename by replacing the type and optionally the extension of an existing filename.
50
+ *
51
+ * @param p - Parameters containing the original filename, desired type, and optional overrides.
52
+ * @returns The transformed filename string.
53
+ */
8
54
  export declare const toFilename: (p: {
9
55
  filename: string;
10
56
  type: DecoFileType;
@@ -1 +1 @@
1
- {"version":3,"file":"file.common.d.ts","sourceRoot":"","sources":["../../src/common/file.common.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,YAAY,EAGb,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,KAAG,OACP,CAAC;AAE5C,eAAO,MAAM,QAAQ,GAAI,UAAU,MAAM,EAAE,MAAM,YAAY,KAAG,OACf,CAAC;AAElD,eAAO,MAAM,SAAS,GACpB,UAAU,MAAM,EAChB,OAAO,YAAY,EACnB,MAAM,iBAAiB,KACtB,OASF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,KAAG,gBAiBnD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,gBAAgB,KAAG,MAG5C,CAAC;AAEf,eAAO,MAAM,UAAU,GAAI,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,iBAAiB,CAAC;CACzB,KAAG,MAMA,CAAC"}
1
+ {"version":3,"file":"file.common.d.ts","sourceRoot":"","sources":["../../src/common/file.common.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,YAAY,EAGb,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,KAAG,OACP,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,UAAU,MAAM,EAAE,MAAM,YAAY,KAAG,OACf,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GACpB,UAAU,MAAM,EAChB,OAAO,YAAY,EACnB,MAAM,iBAAiB,KACtB,OASF,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,KAAG,gBAiBnD,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,gBAAgB,KAAG,MAG5C,CAAC;AAEf;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,iBAAiB,CAAC;CACzB,KAAG,MAMA,CAAC"}