@mxpicture/gcp-functions-generator 1.1.3 → 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 (67) hide show
  1. package/dist/common/Barrel.d.ts +50 -0
  2. package/dist/common/Barrel.d.ts.map +1 -1
  3. package/dist/common/Barrel.js +38 -0
  4. package/dist/common/Barrel.js.map +1 -1
  5. package/dist/common/Collector.d.ts +48 -0
  6. package/dist/common/Collector.d.ts.map +1 -1
  7. package/dist/common/Collector.js +39 -0
  8. package/dist/common/Collector.js.map +1 -1
  9. package/dist/common/Directories.d.ts +23 -0
  10. package/dist/common/Directories.d.ts.map +1 -1
  11. package/dist/common/Directories.js +6 -0
  12. package/dist/common/Directories.js.map +1 -1
  13. package/dist/common/Extractor.d.ts +26 -0
  14. package/dist/common/Extractor.d.ts.map +1 -1
  15. package/dist/common/Extractor.js +26 -0
  16. package/dist/common/Extractor.js.map +1 -1
  17. package/dist/common/file.common.d.ts +46 -0
  18. package/dist/common/file.common.d.ts.map +1 -1
  19. package/dist/common/file.common.js +46 -0
  20. package/dist/common/file.common.js.map +1 -1
  21. package/dist/common/generator.common.d.ts +58 -0
  22. package/dist/common/generator.common.d.ts.map +1 -1
  23. package/dist/common/generator.common.js +52 -0
  24. package/dist/common/generator.common.js.map +1 -1
  25. package/dist/common/string.common.d.ts +24 -0
  26. package/dist/common/string.common.d.ts.map +1 -1
  27. package/dist/common/string.common.js +24 -0
  28. package/dist/common/string.common.js.map +1 -1
  29. package/dist/common/types.common.d.ts +16 -0
  30. package/dist/common/types.common.d.ts.map +1 -1
  31. package/dist/decorator/deco.imports.d.ts +19 -0
  32. package/dist/decorator/deco.imports.d.ts.map +1 -1
  33. package/dist/decorator/deco.imports.js +16 -0
  34. package/dist/decorator/deco.imports.js.map +1 -1
  35. package/dist/decorator/deco.names.d.ts +85 -0
  36. package/dist/decorator/deco.names.d.ts.map +1 -1
  37. package/dist/decorator/deco.names.js +85 -0
  38. package/dist/decorator/deco.names.js.map +1 -1
  39. package/dist/generator/Generator.d.ts +82 -0
  40. package/dist/generator/Generator.d.ts.map +1 -1
  41. package/dist/generator/Generator.js +67 -0
  42. package/dist/generator/Generator.js.map +1 -1
  43. package/dist/generator/GeneratorAnnotations.d.ts +7 -0
  44. package/dist/generator/GeneratorAnnotations.d.ts.map +1 -1
  45. package/dist/generator/GeneratorAnnotations.js +7 -0
  46. package/dist/generator/GeneratorAnnotations.js.map +1 -1
  47. package/dist/generator/GeneratorBackend.d.ts +7 -0
  48. package/dist/generator/GeneratorBackend.d.ts.map +1 -1
  49. package/dist/generator/GeneratorBackend.js +7 -0
  50. package/dist/generator/GeneratorBackend.js.map +1 -1
  51. package/dist/generator/GeneratorDoc.d.ts +6 -0
  52. package/dist/generator/GeneratorDoc.d.ts.map +1 -1
  53. package/dist/generator/GeneratorDoc.js +6 -0
  54. package/dist/generator/GeneratorDoc.js.map +1 -1
  55. package/dist/generator/GeneratorFrontend.d.ts +7 -0
  56. package/dist/generator/GeneratorFrontend.d.ts.map +1 -1
  57. package/dist/generator/GeneratorFrontend.js +7 -0
  58. package/dist/generator/GeneratorFrontend.js.map +1 -1
  59. package/dist/generator/GeneratorRoutes.d.ts +8 -0
  60. package/dist/generator/GeneratorRoutes.d.ts.map +1 -1
  61. package/dist/generator/GeneratorRoutes.js +8 -0
  62. package/dist/generator/GeneratorRoutes.js.map +1 -1
  63. package/dist/generator/GeneratorZod.d.ts +8 -0
  64. package/dist/generator/GeneratorZod.d.ts.map +1 -1
  65. package/dist/generator/GeneratorZod.js +8 -0
  66. package/dist/generator/GeneratorZod.js.map +1 -1
  67. package/package.json +7 -5
@@ -1 +1 @@
1
- {"version":3,"file":"file.common.js","sourceRoot":"","sources":["../../src/common/file.common.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,2CAA2C,CAAC;AAGnD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAW,EAAE,CAC1D,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,IAAkB,EAAW,EAAE,CACxE,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,QAAgB,EAChB,IAAmB,EACnB,GAAuB,EACd,EAAE;IACX,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAC9C,IAAI,GAAG,IAAI,GAAG,KAAK,KAAK,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAoB,EAAE;IACrE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,oCAAoC,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,oBAAoB,KAAK,GAAG,CAAC,CAAC;IAC9E,IAAI,CAAC,GAAG;QACN,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,yBAAyB,IAAI,GAAG,CAAC,CAAC;IACzE,OAAO;QACL,QAAQ;QACR,IAAI;QACJ,GAAG;QACH,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;KAC5B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAuB,EAAU,EAAE,CACjE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;KACtE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KAClB,IAAI,CAAC,GAAG,CAAC,CAAC;AAEf,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAK1B,EAAU,EAAE,CACX,eAAe,CAAC;IACd,GAAG,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;IACZ,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,iBAAiB,CAAC,EAAE;IAClC,SAAS,EAAE,CAAC,CAAC,SAAS;CACvB,CAAC,CAAC"}
1
+ {"version":3,"file":"file.common.js","sourceRoot":"","sources":["../../src/common/file.common.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,2CAA2C,CAAC;AAGnD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAW,EAAE,CAC1D,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,IAAkB,EAAW,EAAE,CACxE,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,QAAgB,EAChB,IAAmB,EACnB,GAAuB,EACd,EAAE;IACX,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAC9C,IAAI,GAAG,IAAI,GAAG,KAAK,KAAK,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAoB,EAAE;IACrE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,oCAAoC,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,oBAAoB,KAAK,GAAG,CAAC,CAAC;IAC9E,IAAI,CAAC,GAAG;QACN,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,yBAAyB,IAAI,GAAG,CAAC,CAAC;IACzE,OAAO;QACL,QAAQ;QACR,IAAI;QACJ,GAAG;QACH,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;KAC5B,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAuB,EAAU,EAAE,CACjE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;KACtE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KAClB,IAAI,CAAC,GAAG,CAAC,CAAC;AAEf;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAK1B,EAAU,EAAE,CACX,eAAe,CAAC;IACd,GAAG,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;IACZ,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,iBAAiB,CAAC,EAAE;IAClC,SAAS,EAAE,CAAC,CAAC,SAAS;CACvB,CAAC,CAAC"}
@@ -2,21 +2,79 @@ import { Generator, GeneratorResultFile } from "../generator/Generator.js";
2
2
  import { DirectoriesParams } from "./Directories.js";
3
3
  import { GeneratorEnv } from "./types.common.js";
4
4
  import { DecoFile } from "@mxpicture/gcp-functions-common/types";
5
+ /** Resolved absolute path to the `generator/` directory. */
5
6
  export declare const generatorDirPath: string;
7
+ /**
8
+ * Metadata about a generator source file on disk.
9
+ */
6
10
  export interface GeneratorFile {
7
11
  filename: string;
8
12
  filePath: string;
9
13
  filenameWoExt: string;
10
14
  fileExt: string;
11
15
  }
16
+ /**
17
+ * A generator file paired with its instantiated {@link Generator}.
18
+ */
12
19
  export interface GeneratorEntry extends GeneratorFile {
13
20
  gen: Generator;
14
21
  }
22
+ /**
23
+ * Reads and caches the list of generator files from the generator directory.
24
+ *
25
+ * @remarks
26
+ * Excludes the base `Generator.ts`/`.js` file and declaration files.
27
+ *
28
+ * @returns A promise resolving to an array of {@link GeneratorFile} objects.
29
+ */
15
30
  export declare const readGeneratorFiles: () => Promise<GeneratorFile[]>;
31
+ /**
32
+ * Reads a specific generator file by filename.
33
+ *
34
+ * @param filename - The filename to look up.
35
+ * @returns The matching {@link GeneratorFile}, or `null` if not found.
36
+ */
16
37
  export declare const readGeneratorFile: (filename: string) => Promise<GeneratorFile | null>;
38
+ /**
39
+ * Dynamically imports a generator file and returns a cached {@link GeneratorEntry}.
40
+ *
41
+ * @param file - The generator file to import.
42
+ * @returns The generator entry, or `null` if the default export is not a {@link Generator}.
43
+ */
17
44
  export declare const createGenerator: (file: GeneratorFile) => Promise<GeneratorEntry | null>;
45
+ /**
46
+ * Discovers and instantiates all available generators.
47
+ *
48
+ * @returns A promise resolving to an array of valid {@link GeneratorEntry} objects.
49
+ */
18
50
  export declare const createGenerators: () => Promise<GeneratorEntry[]>;
51
+ /**
52
+ * Orchestrates the full code generation pipeline.
53
+ *
54
+ * @remarks
55
+ * Sets up directories, extracts templates, runs all generators,
56
+ * writes output files, and creates barrel files with `package.json` exports.
57
+ *
58
+ * @param params - Directory configuration for templates and output.
59
+ * @param env - Environment variables (region, service account) for backend generation.
60
+ */
19
61
  export declare const runGeneration: (params: DirectoriesParams, env: GeneratorEnv) => Promise<void>;
62
+ /**
63
+ * Runs a single generator against one decorator file and writes the result.
64
+ *
65
+ * @param file - The extracted decorator file to process.
66
+ * @param gen - The generator to run.
67
+ * @param env - Environment variables for the generation context.
68
+ * @returns The generated result file.
69
+ */
20
70
  export declare const runFile: (file: DecoFile, gen: Generator, env: GeneratorEnv) => Promise<GeneratorResultFile>;
71
+ /**
72
+ * Runs a generator against multiple decorator files without writing to disk.
73
+ *
74
+ * @param files - The extracted decorator files to process.
75
+ * @param gen - The generator to run.
76
+ * @param env - Environment variables for the generation context.
77
+ * @returns A promise resolving to an array of generated result files.
78
+ */
21
79
  export declare const runFiles: (files: DecoFile[], gen: Generator, env: GeneratorEnv) => Promise<GeneratorResultFile[]>;
22
80
  //# sourceMappingURL=generator.common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.common.d.ts","sourceRoot":"","sources":["../../src/common/generator.common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,EAAe,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAEjE,eAAO,MAAM,gBAAgB,QAA+C,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,GAAG,EAAE,SAAS,CAAC;CAChB;AAKD,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,aAAa,EAAE,CAyBlE,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,UAAU,MAAM,KACf,OAAO,CAAC,aAAa,GAAG,IAAI,CAEzB,CAAC;AAEP,eAAO,MAAM,eAAe,GAC1B,MAAM,aAAa,KAClB,OAAO,CAAC,cAAc,GAAG,IAAI,CAY/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,cAAc,EAAE,CAKjE,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,QAAQ,iBAAiB,EACzB,KAAK,YAAY,kBA4BlB,CAAC;AAUF,eAAO,MAAM,OAAO,GAClB,MAAM,QAAQ,EACd,KAAK,SAAS,EACd,KAAK,YAAY,KAChB,OAAO,CAAC,mBAAmB,CAK7B,CAAC;AAEF,eAAO,MAAM,QAAQ,GACnB,OAAO,QAAQ,EAAE,EACjB,KAAK,SAAS,EACd,KAAK,YAAY,KAChB,OAAO,CAAC,mBAAmB,EAAE,CAC4B,CAAC"}
1
+ {"version":3,"file":"generator.common.d.ts","sourceRoot":"","sources":["../../src/common/generator.common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,EAAe,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAEjE,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB,QAA+C,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,GAAG,EAAE,SAAS,CAAC;CAChB;AAKD;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,aAAa,EAAE,CAyBlE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAU,MAAM,KACf,OAAO,CAAC,aAAa,GAAG,IAAI,CAEzB,CAAC;AAEP;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAC1B,MAAM,aAAa,KAClB,OAAO,CAAC,cAAc,GAAG,IAAI,CAY/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,cAAc,EAAE,CAKjE,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GACxB,QAAQ,iBAAiB,EACzB,KAAK,YAAY,kBA4BlB,CAAC;AAUF;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,GAClB,MAAM,QAAQ,EACd,KAAK,SAAS,EACd,KAAK,YAAY,KAChB,OAAO,CAAC,mBAAmB,CAK7B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,GACnB,OAAO,QAAQ,EAAE,EACjB,KAAK,SAAS,EACd,KAAK,YAAY,KAChB,OAAO,CAAC,mBAAmB,EAAE,CAC4B,CAAC"}
@@ -4,9 +4,18 @@ import { readdir } from "node:fs/promises";
4
4
  import { directories } from "./Directories.js";
5
5
  import { runExtractors } from "./Extractor.js";
6
6
  import { Barrel } from "./Barrel.js";
7
+ /** Resolved absolute path to the `generator/` directory. */
7
8
  export const generatorDirPath = resolve(import.meta.dirname, "../generator");
8
9
  const generators = [];
9
10
  let generatorFiles = null;
11
+ /**
12
+ * Reads and caches the list of generator files from the generator directory.
13
+ *
14
+ * @remarks
15
+ * Excludes the base `Generator.ts`/`.js` file and declaration files.
16
+ *
17
+ * @returns A promise resolving to an array of {@link GeneratorFile} objects.
18
+ */
10
19
  export const readGeneratorFiles = async () => {
11
20
  if (!generatorFiles) {
12
21
  const filenames = (await readdir(generatorDirPath)).filter((filename) => filename !== "Generator.ts" &&
@@ -26,8 +35,20 @@ export const readGeneratorFiles = async () => {
26
35
  }
27
36
  return generatorFiles;
28
37
  };
38
+ /**
39
+ * Reads a specific generator file by filename.
40
+ *
41
+ * @param filename - The filename to look up.
42
+ * @returns The matching {@link GeneratorFile}, or `null` if not found.
43
+ */
29
44
  export const readGeneratorFile = async (filename) => (await readGeneratorFiles()).find((file) => file.filename === filename) ??
30
45
  null;
46
+ /**
47
+ * Dynamically imports a generator file and returns a cached {@link GeneratorEntry}.
48
+ *
49
+ * @param file - The generator file to import.
50
+ * @returns The generator entry, or `null` if the default export is not a {@link Generator}.
51
+ */
31
52
  export const createGenerator = async (file) => {
32
53
  let found = generators.find((generator) => generator.filePath === file.filePath);
33
54
  if (found)
@@ -39,12 +60,27 @@ export const createGenerator = async (file) => {
39
60
  generators.push(found);
40
61
  return found;
41
62
  };
63
+ /**
64
+ * Discovers and instantiates all available generators.
65
+ *
66
+ * @returns A promise resolving to an array of valid {@link GeneratorEntry} objects.
67
+ */
42
68
  export const createGenerators = async () => {
43
69
  const files = await readGeneratorFiles();
44
70
  const promises = files.map(createGenerator);
45
71
  const entries = await Promise.all(promises);
46
72
  return entries.filter((entry) => !!entry);
47
73
  };
74
+ /**
75
+ * Orchestrates the full code generation pipeline.
76
+ *
77
+ * @remarks
78
+ * Sets up directories, extracts templates, runs all generators,
79
+ * writes output files, and creates barrel files with `package.json` exports.
80
+ *
81
+ * @param params - Directory configuration for templates and output.
82
+ * @param env - Environment variables (region, service account) for backend generation.
83
+ */
48
84
  export const runGeneration = async (params, env) => {
49
85
  const { files, entries } = await prepareRunGeneration(params);
50
86
  console.log("using:");
@@ -74,11 +110,27 @@ const prepareRunGeneration = async (params) => {
74
110
  const entries = await createGenerators();
75
111
  return { files, entries };
76
112
  };
113
+ /**
114
+ * Runs a single generator against one decorator file and writes the result.
115
+ *
116
+ * @param file - The extracted decorator file to process.
117
+ * @param gen - The generator to run.
118
+ * @param env - Environment variables for the generation context.
119
+ * @returns The generated result file.
120
+ */
77
121
  export const runFile = async (file, gen, env) => {
78
122
  console.log(` - ${gen.type} (${gen.ext})`);
79
123
  const resultFile = await gen.run(file, env);
80
124
  await Generator.write(resultFile);
81
125
  return resultFile;
82
126
  };
127
+ /**
128
+ * Runs a generator against multiple decorator files without writing to disk.
129
+ *
130
+ * @param files - The extracted decorator files to process.
131
+ * @param gen - The generator to run.
132
+ * @param env - Environment variables for the generation context.
133
+ * @returns A promise resolving to an array of generated result files.
134
+ */
83
135
  export const runFiles = async (files, gen, env) => Promise.all(files.map(async (file) => gen.run(file, env)));
84
136
  //# sourceMappingURL=generator.common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.common.js","sourceRoot":"","sources":["../../src/common/generator.common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.common.js","sourceRoot":"","sources":["../../src/common/generator.common.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,29 @@
1
+ /**
2
+ * Converts the first character of a string to lower case.
3
+ *
4
+ * @param val - The input string.
5
+ * @returns The string with its first character lower-cased.
6
+ */
1
7
  export declare const lowerFirstLetter: (val: string) => string;
8
+ /**
9
+ * Converts the first character of a string to upper case.
10
+ *
11
+ * @param val - The input string.
12
+ * @returns The string with its first character upper-cased.
13
+ */
2
14
  export declare const upperFirstLetter: (val: string) => string;
15
+ /**
16
+ * Async variant of {@link lowerFirstLetter}.
17
+ *
18
+ * @param val - The input string.
19
+ * @returns A promise resolving to the string with its first character lower-cased.
20
+ */
3
21
  export declare const lowerFirstLetterAsync: (val: string) => Promise<string>;
22
+ /**
23
+ * Async variant of {@link upperFirstLetter}.
24
+ *
25
+ * @param val - The input string.
26
+ * @returns A promise resolving to the string with its first character upper-cased.
27
+ */
4
28
  export declare const upperFirstLetterAsync: (val: string) => Promise<string>;
5
29
  //# sourceMappingURL=string.common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"string.common.d.ts","sourceRoot":"","sources":["../../src/common/string.common.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,WAGf,CAAC;AAE9B,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,WAGrB,CAAC;AAExB,eAAO,MAAM,qBAAqB,GAAU,KAAK,MAAM,oBACF,CAAC;AAEtD,eAAO,MAAM,qBAAqB,GAAU,KAAK,MAAM,oBACF,CAAC"}
1
+ {"version":3,"file":"string.common.d.ts","sourceRoot":"","sources":["../../src/common/string.common.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,WAGf,CAAC;AAE9B;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,WAGrB,CAAC;AAExB;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAU,KAAK,MAAM,oBACF,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAU,KAAK,MAAM,oBACF,CAAC"}
@@ -1,9 +1,33 @@
1
+ /**
2
+ * Converts the first character of a string to lower case.
3
+ *
4
+ * @param val - The input string.
5
+ * @returns The string with its first character lower-cased.
6
+ */
1
7
  export const lowerFirstLetter = (val) => val.length > 1
2
8
  ? val.charAt(0).toLocaleLowerCase() + val.slice(1)
3
9
  : val.toLocaleLowerCase();
10
+ /**
11
+ * Converts the first character of a string to upper case.
12
+ *
13
+ * @param val - The input string.
14
+ * @returns The string with its first character upper-cased.
15
+ */
4
16
  export const upperFirstLetter = (val) => val.length > 1
5
17
  ? val.charAt(0).toUpperCase() + val.slice(1)
6
18
  : val.toUpperCase();
19
+ /**
20
+ * Async variant of {@link lowerFirstLetter}.
21
+ *
22
+ * @param val - The input string.
23
+ * @returns A promise resolving to the string with its first character lower-cased.
24
+ */
7
25
  export const lowerFirstLetterAsync = async (val) => Promise.resolve().then(() => lowerFirstLetter(val));
26
+ /**
27
+ * Async variant of {@link upperFirstLetter}.
28
+ *
29
+ * @param val - The input string.
30
+ * @returns A promise resolving to the string with its first character upper-cased.
31
+ */
8
32
  export const upperFirstLetterAsync = async (val) => Promise.resolve().then(() => upperFirstLetter(val));
9
33
  //# sourceMappingURL=string.common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"string.common.js","sourceRoot":"","sources":["../../src/common/string.common.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE,CAC9C,GAAG,CAAC,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;AAE9B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE,CAC9C,GAAG,CAAC,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;AAExB,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE,CACzD,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE,CACzD,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"string.common.js","sourceRoot":"","sources":["../../src/common/string.common.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE,CAC9C,GAAG,CAAC,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;AAE9B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE,CAC9C,GAAG,CAAC,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;AAExB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE,CACzD,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE,CACzD,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC"}
@@ -1,19 +1,35 @@
1
1
  import { PackageJson } from "@mxpicture/build-api/types";
2
2
  import { DecoFileExtension, DecoFileType, DecoTargetType } from "@mxpicture/gcp-functions-common/decorator";
3
+ /**
4
+ * Decomposed parts of a dot-separated decorator filename.
5
+ */
3
6
  export interface ExtractFileParts {
7
+ /** The original full filename. */
4
8
  filename: string;
9
+ /** The decorator file type (first segment). */
5
10
  type: DecoFileType;
11
+ /** The file extension (last segment). */
6
12
  ext: DecoFileExtension;
13
+ /** The middle portion of the filename between type and extension. */
7
14
  middlePart: string;
15
+ /** Whether this file is a generated artifact. */
8
16
  generated?: boolean;
9
17
  }
18
+ /**
19
+ * Represents a target package with its location and parsed `package.json`.
20
+ */
10
21
  export interface TargetPackage {
11
22
  targetType: DecoTargetType;
12
23
  filePath: string;
13
24
  pkg: PackageJson;
14
25
  }
26
+ /**
27
+ * Environment variables required by generators that produce deployment-aware code.
28
+ */
15
29
  export interface GeneratorEnv {
30
+ /** The GCP region for Cloud Functions deployment. */
16
31
  region: string;
32
+ /** The GCP service account email used by Cloud Functions. */
17
33
  serviceAccount: string;
18
34
  }
19
35
  //# sourceMappingURL=types.common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.common.d.ts","sourceRoot":"","sources":["../../src/common/types.common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACf,MAAM,2CAA2C,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,EAAE,iBAAiB,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,WAAW,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"types.common.d.ts","sourceRoot":"","sources":["../../src/common/types.common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACf,MAAM,2CAA2C,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,IAAI,EAAE,YAAY,CAAC;IACnB,yCAAyC;IACzC,GAAG,EAAE,iBAAiB,CAAC;IACvB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,WAAW,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;CACxB"}
@@ -1,5 +1,8 @@
1
1
  import ts from "typescript";
2
2
  import { DecoImport } from "@mxpicture/gcp-functions-common/types";
3
+ /**
4
+ * Represents a single import declaration extracted from a TypeScript source file.
5
+ */
3
6
  export interface ExtractedImport {
4
7
  module: string;
5
8
  defaultImport?: string;
@@ -7,6 +10,22 @@ export interface ExtractedImport {
7
10
  namespaceImport?: string;
8
11
  isTypeOnly?: boolean;
9
12
  }
13
+ /**
14
+ * Extracts named imports from a TypeScript source file or raw source string.
15
+ *
16
+ * @remarks
17
+ * Only imports with named bindings are included in the result; default and namespace
18
+ * imports are excluded.
19
+ *
20
+ * @param sourceFile - A TypeScript `SourceFile` AST node or raw source code string.
21
+ * @returns An array of {@link DecoImport} entries representing named imports.
22
+ */
10
23
  export declare const extractNamedImports: (sourceFile: ts.SourceFile | string) => DecoImport[];
24
+ /**
25
+ * Extracts all import declarations from a TypeScript source file AST.
26
+ *
27
+ * @param sourceFile - The TypeScript `SourceFile` to traverse.
28
+ * @returns An array of {@link ExtractedImport} objects for every import declaration found.
29
+ */
11
30
  export declare const extractImports: (sourceFile: ts.SourceFile) => ExtractedImport[];
12
31
  //# sourceMappingURL=deco.imports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deco.imports.d.ts","sourceRoot":"","sources":["../../src/decorator/deco.imports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAGnE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,mBAAmB,GAC9B,YAAY,EAAE,CAAC,UAAU,GAAG,MAAM,KACjC,UAAU,EAmBZ,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,YAAY,EAAE,CAAC,UAAU,KACxB,eAAe,EAqCjB,CAAC"}
1
+ {"version":3,"file":"deco.imports.d.ts","sourceRoot":"","sources":["../../src/decorator/deco.imports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAGnE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,GAC9B,YAAY,EAAE,CAAC,UAAU,GAAG,MAAM,KACjC,UAAU,EAmBZ,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,YAAY,EAAE,CAAC,UAAU,KACxB,eAAe,EAqCjB,CAAC"}
@@ -1,5 +1,15 @@
1
1
  import ts from "typescript";
2
2
  import { createSourceFiles } from "@mxpicture/build-api/code";
3
+ /**
4
+ * Extracts named imports from a TypeScript source file or raw source string.
5
+ *
6
+ * @remarks
7
+ * Only imports with named bindings are included in the result; default and namespace
8
+ * imports are excluded.
9
+ *
10
+ * @param sourceFile - A TypeScript `SourceFile` AST node or raw source code string.
11
+ * @returns An array of {@link DecoImport} entries representing named imports.
12
+ */
3
13
  export const extractNamedImports = (sourceFile) => {
4
14
  if (typeof sourceFile === "string") {
5
15
  const files = createSourceFiles([sourceFile]);
@@ -20,6 +30,12 @@ export const extractNamedImports = (sourceFile) => {
20
30
  }
21
31
  return results;
22
32
  };
33
+ /**
34
+ * Extracts all import declarations from a TypeScript source file AST.
35
+ *
36
+ * @param sourceFile - The TypeScript `SourceFile` to traverse.
37
+ * @returns An array of {@link ExtractedImport} objects for every import declaration found.
38
+ */
23
39
  export const extractImports = (sourceFile) => {
24
40
  const imports = [];
25
41
  sourceFile.forEachChild((node) => {
@@ -1 +1 @@
1
- {"version":3,"file":"deco.imports.js","sourceRoot":"","sources":["../../src/decorator/deco.imports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAU9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,UAAkC,EACpB,EAAE;IAChB,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,iBAAiB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAClC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACnC,CAAC;IACD,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAE3C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACjE,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,GAAG,CAAC,MAAM;YAChB,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC;YAC5B,MAAM,EAAE,GAAG,CAAC,UAAU;SACvB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,UAAyB,EACN,EAAE;IACrB,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,UAAU,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/B,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzD,MAAM,UAAU,GAAI,IAAI,CAAC,eAAoC,CAAC,IAAI,CAAC;YAEnE,IAAI,aAAiC,CAAC;YACtC,IAAI,YAAY,GAAa,EAAE,CAAC;YAChC,IAAI,eAAmC,CAAC;YAExC,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO;YAC/B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI;gBAAE,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YACxE,MAAM,UAAU,GACd,IAAI,CAAC,YAAY,CAAC,aAAa,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAEhE,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;gBACpC,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;oBACvD,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CACzD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CACrB,CAAC;gBACJ,CAAC;qBAAM,IAAI,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;oBACjE,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC9D,CAAC;YACH,CAAC;YAED,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,UAAU;gBAClB,aAAa;gBACb,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;gBAC5D,eAAe;gBACf,UAAU;aACX,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"deco.imports.js","sourceRoot":"","sources":["../../src/decorator/deco.imports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAa9D;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,UAAkC,EACpB,EAAE;IAChB,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,iBAAiB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAClC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACnC,CAAC;IACD,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAE3C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACjE,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,GAAG,CAAC,MAAM;YAChB,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC;YAC5B,MAAM,EAAE,GAAG,CAAC,UAAU;SACvB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,UAAyB,EACN,EAAE;IACrB,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,UAAU,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/B,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzD,MAAM,UAAU,GAAI,IAAI,CAAC,eAAoC,CAAC,IAAI,CAAC;YAEnE,IAAI,aAAiC,CAAC;YACtC,IAAI,YAAY,GAAa,EAAE,CAAC;YAChC,IAAI,eAAmC,CAAC;YAExC,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO;YAC/B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI;gBAAE,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YACxE,MAAM,UAAU,GACd,IAAI,CAAC,YAAY,CAAC,aAAa,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAEhE,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;gBACpC,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;oBACvD,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CACzD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CACrB,CAAC;gBACJ,CAAC;qBAAM,IAAI,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;oBACjE,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC9D,CAAC;YACH,CAAC;YAED,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,UAAU;gBAClB,aAAa;gBACb,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;gBAC5D,eAAe;gBACf,UAAU;aACX,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -1,13 +1,98 @@
1
1
  import { DecoFileType, DecoNames, DecoTargetType } from "@mxpicture/gcp-functions-common/decorator";
2
+ /**
3
+ * Renames a decorator base name by appending a capitalized type suffix.
4
+ *
5
+ * @param name - The original decorator name.
6
+ * @param type - The file type or arbitrary suffix to append.
7
+ * @returns The renamed string (e.g. `"Medication"` + `"doc"` → `"MedicationDoc"`).
8
+ */
2
9
  export declare const decoRename: (name: string, type: DecoFileType | string) => string;
10
+ /**
11
+ * Async variant of {@link decoRename}.
12
+ *
13
+ * @param name - The original decorator name.
14
+ * @param type - The file type or arbitrary suffix to append.
15
+ * @returns A promise resolving to the renamed string.
16
+ */
3
17
  export declare const decoRenameAsync: (name: string, type: DecoFileType | string) => Promise<string>;
18
+ /**
19
+ * Strips a known decorator file type suffix from a name to obtain the base name.
20
+ *
21
+ * @param name - The decorator name, possibly suffixed with a file type.
22
+ * @returns The base name without the type suffix.
23
+ */
4
24
  export declare const decoBasename: (name: string) => string;
25
+ /**
26
+ * Async variant of {@link decoBasename}.
27
+ *
28
+ * @param name - The decorator name.
29
+ * @returns A promise resolving to the base name.
30
+ */
5
31
  export declare const decoBasenameAsync: (name: string) => Promise<string>;
32
+ /**
33
+ * Checks whether a decorator name ends with the given file type suffix.
34
+ *
35
+ * @param name - The decorator name to test.
36
+ * @param type - The file type to check for.
37
+ * @returns `true` if `name` ends with the capitalized form of `type`.
38
+ */
6
39
  export declare const isDecoNameType: (name: string, type: DecoFileType) => boolean;
40
+ /**
41
+ * Builds a full set of decorator names for code generation from a base name.
42
+ *
43
+ * @remarks
44
+ * Produces consistent naming for doc types, routes, stores, schemas, shapes,
45
+ * annotations, and Cloud Function names across all generators.
46
+ *
47
+ * @param basename - The base decorator name.
48
+ * @param namespace - Optional namespace prefix for the function name.
49
+ * @param apiType - Optional API type suffix override.
50
+ * @param funcType - Optional function type suffix override.
51
+ * @param targetType - Target type; defaults to `DecoTargetType.common`.
52
+ * @returns A fully populated {@link DecoNames} object.
53
+ */
7
54
  export declare const decoNames: (basename: string, namespace?: string, apiType?: string, funcType?: string, targetType?: DecoTargetType) => DecoNames;
55
+ /**
56
+ * Async variant of {@link decoNames}.
57
+ *
58
+ * @param basename - The base decorator name.
59
+ * @param namespace - Optional namespace prefix for the function name.
60
+ * @param apiType - Optional API type suffix override.
61
+ * @param funcType - Optional function type suffix override.
62
+ * @param targetType - Target type; defaults to `DecoTargetType.common`.
63
+ * @returns A promise resolving to a fully populated {@link DecoNames} object.
64
+ */
8
65
  export declare const decoNamesAsync: (basename: string, namespace?: string, apiType?: string, funcType?: string, targetType?: DecoTargetType) => Promise<DecoNames>;
66
+ /**
67
+ * Builds frontend-specific decorator names with `feApi`/`feFunction` suffixes.
68
+ *
69
+ * @param basename - The base decorator name.
70
+ * @param namespace - Optional namespace prefix.
71
+ * @returns A {@link DecoNames} object for the frontend target.
72
+ */
9
73
  export declare const decoFrontendNames: (basename: string, namespace?: string) => DecoNames;
74
+ /**
75
+ * Async variant of {@link decoFrontendNames}.
76
+ *
77
+ * @param basename - The base decorator name.
78
+ * @param namespace - Optional namespace prefix.
79
+ * @returns A promise resolving to frontend-specific {@link DecoNames}.
80
+ */
10
81
  export declare const decoFrontendNamesAsync: (basename: string, namespace?: string) => Promise<DecoNames>;
82
+ /**
83
+ * Builds backend-specific decorator names with `beApi`/`beFunction` suffixes.
84
+ *
85
+ * @param basename - The base decorator name.
86
+ * @param namespace - Optional namespace prefix.
87
+ * @returns A {@link DecoNames} object for the backend target.
88
+ */
11
89
  export declare const decoBackendNames: (basename: string, namespace?: string) => DecoNames;
90
+ /**
91
+ * Async variant of {@link decoBackendNames}.
92
+ *
93
+ * @param basename - The base decorator name.
94
+ * @param namespace - Optional namespace prefix.
95
+ * @returns A promise resolving to backend-specific {@link DecoNames}.
96
+ */
12
97
  export declare const decoBackendNamesAsync: (basename: string, namespace?: string) => Promise<DecoNames>;
13
98
  //# sourceMappingURL=deco.names.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deco.names.d.ts","sourceRoot":"","sources":["../../src/decorator/deco.names.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,SAAS,EACT,cAAc,EACf,MAAM,2CAA2C,CAAC;AAQnD,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,MAAM,YAAY,GAAG,MAAM,KAAG,MACrB,CAAC;AAEnD,eAAO,MAAM,eAAe,GAC1B,MAAM,MAAM,EACZ,MAAM,YAAY,GAAG,MAAM,oBAO5B,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,MAM3C,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,MAAM,MAAM,oBACF,CAAC;AAEnD,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,MAAM,YAAY,KAAG,OAC3B,CAAC;AAExC,eAAO,MAAM,SAAS,GACpB,UAAU,MAAM,EAChB,YAAY,MAAM,EAClB,UAAU,MAAM,EAChB,WAAW,MAAM,EACjB,aAAa,cAAc,KAC1B,SAwBF,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,UAAU,MAAM,EAChB,YAAY,MAAM,EAClB,UAAU,MAAM,EAChB,WAAW,MAAM,EACjB,aAAa,cAAc,KAC1B,OAAO,CAAC,SAAS,CAkEnB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,EAAE,YAAY,MAAM,cAOnE,CAAC;AAEJ,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,EAChB,YAAY,MAAM,uBAQjB,CAAC;AAEJ,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,EAAE,YAAY,MAAM,cACU,CAAC;AAEhF,eAAO,MAAM,qBAAqB,GAChC,UAAU,MAAM,EAChB,YAAY,MAAM,uBAQjB,CAAC"}
1
+ {"version":3,"file":"deco.names.d.ts","sourceRoot":"","sources":["../../src/decorator/deco.names.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,SAAS,EACT,cAAc,EACf,MAAM,2CAA2C,CAAC;AAQnD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,MAAM,YAAY,GAAG,MAAM,KAAG,MACrB,CAAC;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAC1B,MAAM,MAAM,EACZ,MAAM,YAAY,GAAG,MAAM,oBAO5B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,MAM3C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAU,MAAM,MAAM,oBACF,CAAC;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,MAAM,YAAY,KAAG,OAC3B,CAAC;AAExC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,SAAS,GACpB,UAAU,MAAM,EAChB,YAAY,MAAM,EAClB,UAAU,MAAM,EAChB,WAAW,MAAM,EACjB,aAAa,cAAc,KAC1B,SAwBF,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GACzB,UAAU,MAAM,EAChB,YAAY,MAAM,EAClB,UAAU,MAAM,EAChB,WAAW,MAAM,EACjB,aAAa,cAAc,KAC1B,OAAO,CAAC,SAAS,CAkEnB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,EAAE,YAAY,MAAM,cAOnE,CAAC;AAEJ;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,EAChB,YAAY,MAAM,uBAQjB,CAAC;AAEJ;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,EAAE,YAAY,MAAM,cACU,CAAC;AAEhF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAChC,UAAU,MAAM,EAChB,YAAY,MAAM,uBAQjB,CAAC"}
@@ -1,6 +1,20 @@
1
1
  import { DecoFileType, DecoTargetType, } from "@mxpicture/gcp-functions-common/decorator";
2
2
  import { lowerFirstLetter, lowerFirstLetterAsync, upperFirstLetter, upperFirstLetterAsync, } from "../common/string.common.js";
3
+ /**
4
+ * Renames a decorator base name by appending a capitalized type suffix.
5
+ *
6
+ * @param name - The original decorator name.
7
+ * @param type - The file type or arbitrary suffix to append.
8
+ * @returns The renamed string (e.g. `"Medication"` + `"doc"` → `"MedicationDoc"`).
9
+ */
3
10
  export const decoRename = (name, type) => `${decoBasename(name)}${upperFirstLetter(type)}`;
11
+ /**
12
+ * Async variant of {@link decoRename}.
13
+ *
14
+ * @param name - The original decorator name.
15
+ * @param type - The file type or arbitrary suffix to append.
16
+ * @returns A promise resolving to the renamed string.
17
+ */
4
18
  export const decoRenameAsync = async (name, type) => {
5
19
  const [n, t] = await Promise.all([
6
20
  decoBasenameAsync(name),
@@ -8,6 +22,12 @@ export const decoRenameAsync = async (name, type) => {
8
22
  ]);
9
23
  return `${n}${t}`;
10
24
  };
25
+ /**
26
+ * Strips a known decorator file type suffix from a name to obtain the base name.
27
+ *
28
+ * @param name - The decorator name, possibly suffixed with a file type.
29
+ * @returns The base name without the type suffix.
30
+ */
11
31
  export const decoBasename = (name) => {
12
32
  for (const type of Object.values(DecoFileType)) {
13
33
  if (isDecoNameType(name, type))
@@ -15,8 +35,35 @@ export const decoBasename = (name) => {
15
35
  }
16
36
  return name.substring(0);
17
37
  };
38
+ /**
39
+ * Async variant of {@link decoBasename}.
40
+ *
41
+ * @param name - The decorator name.
42
+ * @returns A promise resolving to the base name.
43
+ */
18
44
  export const decoBasenameAsync = async (name) => Promise.resolve().then(() => decoBasename(name));
45
+ /**
46
+ * Checks whether a decorator name ends with the given file type suffix.
47
+ *
48
+ * @param name - The decorator name to test.
49
+ * @param type - The file type to check for.
50
+ * @returns `true` if `name` ends with the capitalized form of `type`.
51
+ */
19
52
  export const isDecoNameType = (name, type) => name.endsWith(upperFirstLetter(type));
53
+ /**
54
+ * Builds a full set of decorator names for code generation from a base name.
55
+ *
56
+ * @remarks
57
+ * Produces consistent naming for doc types, routes, stores, schemas, shapes,
58
+ * annotations, and Cloud Function names across all generators.
59
+ *
60
+ * @param basename - The base decorator name.
61
+ * @param namespace - Optional namespace prefix for the function name.
62
+ * @param apiType - Optional API type suffix override.
63
+ * @param funcType - Optional function type suffix override.
64
+ * @param targetType - Target type; defaults to `DecoTargetType.common`.
65
+ * @returns A fully populated {@link DecoNames} object.
66
+ */
20
67
  export const decoNames = (basename, namespace, apiType, funcType, targetType) => {
21
68
  const basenameLower = lowerFirstLetter(basename);
22
69
  const basenameUpper = upperFirstLetter(basename);
@@ -42,6 +89,16 @@ export const decoNames = (basename, namespace, apiType, funcType, targetType) =>
42
89
  : basenameLower,
43
90
  };
44
91
  };
92
+ /**
93
+ * Async variant of {@link decoNames}.
94
+ *
95
+ * @param basename - The base decorator name.
96
+ * @param namespace - Optional namespace prefix for the function name.
97
+ * @param apiType - Optional API type suffix override.
98
+ * @param funcType - Optional function type suffix override.
99
+ * @param targetType - Target type; defaults to `DecoTargetType.common`.
100
+ * @returns A promise resolving to a fully populated {@link DecoNames} object.
101
+ */
45
102
  export const decoNamesAsync = async (basename, namespace, apiType, funcType, targetType) => {
46
103
  const [basenameLower, basenameUpper,
47
104
  // template,
@@ -86,8 +143,36 @@ export const decoNamesAsync = async (basename, namespace, apiType, funcType, tar
86
143
  functionName,
87
144
  };
88
145
  };
146
+ /**
147
+ * Builds frontend-specific decorator names with `feApi`/`feFunction` suffixes.
148
+ *
149
+ * @param basename - The base decorator name.
150
+ * @param namespace - Optional namespace prefix.
151
+ * @returns A {@link DecoNames} object for the frontend target.
152
+ */
89
153
  export const decoFrontendNames = (basename, namespace) => decoNames(basename, namespace, "feApi", "feFunction", DecoTargetType.frontend);
154
+ /**
155
+ * Async variant of {@link decoFrontendNames}.
156
+ *
157
+ * @param basename - The base decorator name.
158
+ * @param namespace - Optional namespace prefix.
159
+ * @returns A promise resolving to frontend-specific {@link DecoNames}.
160
+ */
90
161
  export const decoFrontendNamesAsync = async (basename, namespace) => decoNamesAsync(basename, namespace, "feApi", "feFunction", DecoTargetType.frontend);
162
+ /**
163
+ * Builds backend-specific decorator names with `beApi`/`beFunction` suffixes.
164
+ *
165
+ * @param basename - The base decorator name.
166
+ * @param namespace - Optional namespace prefix.
167
+ * @returns A {@link DecoNames} object for the backend target.
168
+ */
91
169
  export const decoBackendNames = (basename, namespace) => decoNames(basename, namespace, "beApi", "beFunction", DecoTargetType.backend);
170
+ /**
171
+ * Async variant of {@link decoBackendNames}.
172
+ *
173
+ * @param basename - The base decorator name.
174
+ * @param namespace - Optional namespace prefix.
175
+ * @returns A promise resolving to backend-specific {@link DecoNames}.
176
+ */
92
177
  export const decoBackendNamesAsync = async (basename, namespace) => decoNamesAsync(basename, namespace, "beApi", "beFunction", DecoTargetType.backend);
93
178
  //# sourceMappingURL=deco.names.js.map