@mxpicture/gcp-functions-generator 1.1.92 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/4testing/templates/template.example.d.ts +4 -3
- package/dist/4testing/templates/template.example.d.ts.map +1 -1
- package/dist/4testing/templates/template.example.js.map +1 -1
- package/dist/4testing/templates/template.medication.d.ts +2 -1
- package/dist/4testing/templates/template.medication.d.ts.map +1 -1
- package/dist/4testing/templates/template.medication.js.map +1 -1
- package/dist/4testing/templates/template.settings.d.ts +2 -1
- package/dist/4testing/templates/template.settings.d.ts.map +1 -1
- package/dist/4testing/templates/template.settings.js.map +1 -1
- package/dist/4testing/utils.d.ts +1 -1
- package/dist/4testing/utils.d.ts.map +1 -1
- package/dist/4testing/utils.js +24 -2
- package/dist/4testing/utils.js.map +1 -1
- package/dist/common/file.common.d.ts +11 -2
- package/dist/common/file.common.d.ts.map +1 -1
- package/dist/common/file.common.js +44 -8
- package/dist/common/file.common.js.map +1 -1
- package/dist/common/index.d.ts +1 -6
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +1 -6
- package/dist/common/index.js.map +1 -1
- package/dist/common/job.common.d.ts +1 -1
- package/dist/common/job.common.d.ts.map +1 -1
- package/dist/common/resolve.common.d.ts +17 -0
- package/dist/common/resolve.common.d.ts.map +1 -0
- package/dist/common/resolve.common.js +46 -0
- package/dist/common/resolve.common.js.map +1 -0
- package/dist/common/types.common.d.ts +42 -2
- package/dist/common/types.common.d.ts.map +1 -1
- package/dist/decorator/DecoExtractor.d.ts +22 -0
- package/dist/decorator/DecoExtractor.d.ts.map +1 -0
- package/dist/{common/Extractor.js → decorator/DecoExtractor.js} +2 -23
- package/dist/decorator/DecoExtractor.js.map +1 -0
- package/dist/decorator/deco.names.d.ts +4 -3
- package/dist/decorator/deco.names.d.ts.map +1 -1
- package/dist/decorator/deco.names.js +6 -6
- package/dist/decorator/deco.names.js.map +1 -1
- package/dist/decorator/index.d.ts +1 -1
- package/dist/decorator/index.d.ts.map +1 -1
- package/dist/decorator/index.js +1 -1
- package/dist/decorator/index.js.map +1 -1
- package/dist/exports.gen.json +1357 -0
- package/dist/generator/Generator.d.ts +20 -106
- package/dist/generator/Generator.d.ts.map +1 -1
- package/dist/generator/Generator.js +84 -169
- package/dist/generator/Generator.js.map +1 -1
- package/dist/generator/GeneratorAnnotations.d.ts +3 -4
- package/dist/generator/GeneratorAnnotations.d.ts.map +1 -1
- package/dist/generator/GeneratorAnnotations.js +20 -46
- package/dist/generator/GeneratorAnnotations.js.map +1 -1
- package/dist/generator/GeneratorBackend.d.ts +11 -30
- package/dist/generator/GeneratorBackend.d.ts.map +1 -1
- package/dist/generator/GeneratorBackend.js +68 -177
- package/dist/generator/GeneratorBackend.js.map +1 -1
- package/dist/generator/GeneratorDoc.d.ts +8 -9
- package/dist/generator/GeneratorDoc.d.ts.map +1 -1
- package/dist/generator/GeneratorDoc.js +34 -35
- package/dist/generator/GeneratorDoc.js.map +1 -1
- package/dist/generator/GeneratorEnum.d.ts +6 -7
- package/dist/generator/GeneratorEnum.d.ts.map +1 -1
- package/dist/generator/GeneratorEnum.js +26 -15
- package/dist/generator/GeneratorEnum.js.map +1 -1
- package/dist/generator/GeneratorFrontend.d.ts +5 -6
- package/dist/generator/GeneratorFrontend.d.ts.map +1 -1
- package/dist/generator/GeneratorFrontend.js +28 -48
- package/dist/generator/GeneratorFrontend.js.map +1 -1
- package/dist/generator/GeneratorRoutes.d.ts +6 -7
- package/dist/generator/GeneratorRoutes.d.ts.map +1 -1
- package/dist/generator/GeneratorRoutes.js +26 -31
- package/dist/generator/GeneratorRoutes.js.map +1 -1
- package/dist/generator/GeneratorZod.d.ts +9 -10
- package/dist/generator/GeneratorZod.d.ts.map +1 -1
- package/dist/generator/GeneratorZod.js +29 -25
- package/dist/generator/GeneratorZod.js.map +1 -1
- package/dist/run/GeneratorBarrel.d.ts +11 -0
- package/dist/run/GeneratorBarrel.d.ts.map +1 -0
- package/dist/run/GeneratorBarrel.js +22 -0
- package/dist/run/GeneratorBarrel.js.map +1 -0
- package/dist/run/GeneratorBase.d.ts +6 -0
- package/dist/run/GeneratorBase.d.ts.map +1 -0
- package/dist/run/GeneratorBase.js +4 -0
- package/dist/run/GeneratorBase.js.map +1 -0
- package/dist/run/GeneratorBaseFile.d.ts +16 -0
- package/dist/run/GeneratorBaseFile.d.ts.map +1 -0
- package/dist/run/GeneratorBaseFile.js +36 -0
- package/dist/run/GeneratorBaseFile.js.map +1 -0
- package/dist/run/GeneratorDirectory.d.ts +18 -0
- package/dist/run/GeneratorDirectory.d.ts.map +1 -0
- package/dist/run/GeneratorDirectory.js +42 -0
- package/dist/run/GeneratorDirectory.js.map +1 -0
- package/dist/run/GeneratorFile.d.ts +12 -0
- package/dist/run/GeneratorFile.d.ts.map +1 -0
- package/dist/run/GeneratorFile.js +31 -0
- package/dist/run/GeneratorFile.js.map +1 -0
- package/dist/run/GeneratorFs.d.ts +27 -0
- package/dist/run/GeneratorFs.d.ts.map +1 -0
- package/dist/run/GeneratorFs.js +81 -0
- package/dist/run/GeneratorFs.js.map +1 -0
- package/dist/run/GeneratorPackage.d.ts +21 -0
- package/dist/run/GeneratorPackage.d.ts.map +1 -0
- package/dist/run/GeneratorPackage.js +57 -0
- package/dist/run/GeneratorPackage.js.map +1 -0
- package/dist/run/GeneratorRun.d.ts +27 -0
- package/dist/run/GeneratorRun.d.ts.map +1 -0
- package/dist/run/GeneratorRun.js +60 -0
- package/dist/run/GeneratorRun.js.map +1 -0
- package/dist/run/GeneratorTemplate.d.ts +10 -0
- package/dist/run/GeneratorTemplate.d.ts.map +1 -0
- package/dist/run/GeneratorTemplate.js +27 -0
- package/dist/run/GeneratorTemplate.js.map +1 -0
- package/dist/run/index.d.ts +10 -0
- package/dist/run/index.d.ts.map +1 -0
- package/dist/run/index.js +11 -0
- package/dist/run/index.js.map +1 -0
- package/package.json +7 -6
- package/dist/common/Barrel.d.ts +0 -75
- package/dist/common/Barrel.d.ts.map +0 -1
- package/dist/common/Barrel.js +0 -119
- package/dist/common/Barrel.js.map +0 -1
- package/dist/common/CodeCollector.d.ts +0 -11
- package/dist/common/CodeCollector.d.ts.map +0 -1
- package/dist/common/CodeCollector.js +0 -29
- package/dist/common/CodeCollector.js.map +0 -1
- package/dist/common/Collector.d.ts +0 -70
- package/dist/common/Collector.d.ts.map +0 -1
- package/dist/common/Collector.js +0 -77
- package/dist/common/Collector.js.map +0 -1
- package/dist/common/Directories.d.ts +0 -60
- package/dist/common/Directories.d.ts.map +0 -1
- package/dist/common/Directories.js +0 -76
- package/dist/common/Directories.js.map +0 -1
- package/dist/common/Extractor.d.ts +0 -36
- package/dist/common/Extractor.d.ts.map +0 -1
- package/dist/common/Extractor.js.map +0 -1
- package/dist/common/generator.common.d.ts +0 -80
- package/dist/common/generator.common.d.ts.map +0 -1
- package/dist/common/generator.common.js +0 -138
- package/dist/common/generator.common.js.map +0 -1
- package/dist/decorator/deco.imports.d.ts +0 -31
- package/dist/decorator/deco.imports.d.ts.map +0 -1
- package/dist/decorator/deco.imports.js +0 -71
- package/dist/decorator/deco.imports.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
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;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,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,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC/C,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,YAAY,SAAS,CAC9C,CAAC;QAEF,YAAY,EAAE,CAAC,kBAAkB,CAAC,GAAG,UAAU,CAAC,CAAC;QAEjD,OAAO;YACL,gBAAgB,EAAE,IAAI,CAAC,QAAQ;YAC/B,oBAAoB,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC;YAC3D,UAAU;SACX,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { Generator, GeneratorResultFile } from "../generator/Generator.js";
|
|
2
|
-
import { DirectoriesParams } from "./Directories.js";
|
|
3
|
-
import { GeneratorEnv } from "./types.common.js";
|
|
4
|
-
import { DecoFile } from "@mxpicture/gcp-functions-common/types";
|
|
5
|
-
/** Resolved absolute path to the `generator/` directory. */
|
|
6
|
-
export declare const generatorDirPath: string;
|
|
7
|
-
/**
|
|
8
|
-
* Metadata about a generator source file on disk.
|
|
9
|
-
*/
|
|
10
|
-
export interface GeneratorFile {
|
|
11
|
-
filename: string;
|
|
12
|
-
filePath: string;
|
|
13
|
-
filenameWoExt: string;
|
|
14
|
-
fileExt: string;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* A generator file paired with its instantiated {@link Generator}.
|
|
18
|
-
*/
|
|
19
|
-
export interface GeneratorEntry extends GeneratorFile {
|
|
20
|
-
gen: Generator;
|
|
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
|
-
*/
|
|
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
|
-
*/
|
|
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
|
-
*/
|
|
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
|
-
*/
|
|
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
|
-
*/
|
|
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
|
-
*/
|
|
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
|
-
*/
|
|
79
|
-
export declare const runFiles: (files: DecoFile[], gen: Generator, env: GeneratorEnv) => Promise<GeneratorResultFile[]>;
|
|
80
|
-
//# sourceMappingURL=generator.common.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,CAW/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,cAAc,EAAE,CAOjE,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"}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import { join, parse, resolve } from "node:path";
|
|
2
|
-
import { Generator } from "../generator/Generator.js";
|
|
3
|
-
import { readdir } from "node:fs/promises";
|
|
4
|
-
import { directories } from "./Directories.js";
|
|
5
|
-
import { runExtractors } from "./Extractor.js";
|
|
6
|
-
import { Barrel } from "./Barrel.js";
|
|
7
|
-
/** Resolved absolute path to the `generator/` directory. */
|
|
8
|
-
export const generatorDirPath = resolve(import.meta.dirname, "../generator");
|
|
9
|
-
const generators = [];
|
|
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
|
-
*/
|
|
19
|
-
export const readGeneratorFiles = async () => {
|
|
20
|
-
if (!generatorFiles) {
|
|
21
|
-
const filenames = (await readdir(generatorDirPath)).filter((filename) => filename !== "Generator.ts" &&
|
|
22
|
-
filename !== "Generator.js" &&
|
|
23
|
-
!filename.endsWith(".d.ts") &&
|
|
24
|
-
(filename.endsWith(".ts") || filename.endsWith(".js")));
|
|
25
|
-
generatorFiles = await Promise.all(filenames.map(async (filename) => {
|
|
26
|
-
const filePath = join(generatorDirPath, filename);
|
|
27
|
-
const parsed = parse(filename);
|
|
28
|
-
return {
|
|
29
|
-
filename,
|
|
30
|
-
filePath,
|
|
31
|
-
filenameWoExt: parsed.name,
|
|
32
|
-
fileExt: parsed.ext,
|
|
33
|
-
};
|
|
34
|
-
}));
|
|
35
|
-
}
|
|
36
|
-
return generatorFiles;
|
|
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
|
-
*/
|
|
44
|
-
export const readGeneratorFile = async (filename) => (await readGeneratorFiles()).find((file) => file.filename === filename) ??
|
|
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
|
-
*/
|
|
52
|
-
export const createGenerator = async (file) => {
|
|
53
|
-
let found = generators.find((generator) => generator.filePath === file.filePath);
|
|
54
|
-
if (!found) {
|
|
55
|
-
const gen = (await import(file.filePath)).default;
|
|
56
|
-
if (!(gen instanceof Generator))
|
|
57
|
-
return null;
|
|
58
|
-
found = { ...file, gen };
|
|
59
|
-
generators.push(found);
|
|
60
|
-
}
|
|
61
|
-
return found;
|
|
62
|
-
};
|
|
63
|
-
/**
|
|
64
|
-
* Discovers and instantiates all available generators.
|
|
65
|
-
*
|
|
66
|
-
* @returns A promise resolving to an array of valid {@link GeneratorEntry} objects.
|
|
67
|
-
*/
|
|
68
|
-
export const createGenerators = async () => {
|
|
69
|
-
const files = await readGeneratorFiles();
|
|
70
|
-
const promises = files.map((file) => createGenerator(file));
|
|
71
|
-
const entries = await Promise.all(promises);
|
|
72
|
-
const filtered = entries.filter((entry) => !!entry);
|
|
73
|
-
filtered.sort((a, b) => a.gen.order - b.gen.order);
|
|
74
|
-
return filtered;
|
|
75
|
-
};
|
|
76
|
-
/**
|
|
77
|
-
* Orchestrates the full code generation pipeline.
|
|
78
|
-
*
|
|
79
|
-
* @remarks
|
|
80
|
-
* Sets up directories, extracts templates, runs all generators,
|
|
81
|
-
* writes output files, and creates barrel files with `package.json` exports.
|
|
82
|
-
*
|
|
83
|
-
* @param params - Directory configuration for templates and output.
|
|
84
|
-
* @param env - Environment variables (region, service account) for backend generation.
|
|
85
|
-
*/
|
|
86
|
-
export const runGeneration = async (params, env) => {
|
|
87
|
-
const { files, entries } = await prepareRunGeneration(params);
|
|
88
|
-
console.log("using:");
|
|
89
|
-
const targetFilesFiles = await Promise.all(entries.map(async (entry) => {
|
|
90
|
-
const resultFiles = await runFiles(files, entry.gen, env);
|
|
91
|
-
await Generator.write(...resultFiles);
|
|
92
|
-
return resultFiles;
|
|
93
|
-
}));
|
|
94
|
-
const targetFiles = [];
|
|
95
|
-
for (const tarFiles of targetFilesFiles) {
|
|
96
|
-
targetFiles.push(...tarFiles);
|
|
97
|
-
for (const tarFile of tarFiles)
|
|
98
|
-
Barrel.instance(tarFile.targetType).add(tarFile.targetFilePath);
|
|
99
|
-
}
|
|
100
|
-
const promises = [];
|
|
101
|
-
for (const barrel of Barrel.instances) {
|
|
102
|
-
const barrelFiles = barrel.create();
|
|
103
|
-
promises.push(barrel.write(barrelFiles));
|
|
104
|
-
promises.push(barrel.ensurePackageBarrels(barrelFiles));
|
|
105
|
-
}
|
|
106
|
-
await Promise.all(promises);
|
|
107
|
-
};
|
|
108
|
-
const prepareRunGeneration = async (params) => {
|
|
109
|
-
directories.setup(params);
|
|
110
|
-
const templateFilePaths = await directories.templatesPathRead();
|
|
111
|
-
const files = await runExtractors(templateFilePaths);
|
|
112
|
-
const entries = await createGenerators();
|
|
113
|
-
return { files, entries };
|
|
114
|
-
};
|
|
115
|
-
/**
|
|
116
|
-
* Runs a single generator against one decorator file and writes the result.
|
|
117
|
-
*
|
|
118
|
-
* @param file - The extracted decorator file to process.
|
|
119
|
-
* @param gen - The generator to run.
|
|
120
|
-
* @param env - Environment variables for the generation context.
|
|
121
|
-
* @returns The generated result file.
|
|
122
|
-
*/
|
|
123
|
-
export const runFile = async (file, gen, env) => {
|
|
124
|
-
console.log(` - ${gen.type} (${gen.ext})`);
|
|
125
|
-
const resultFile = await gen.run(file, env);
|
|
126
|
-
await Generator.write(resultFile);
|
|
127
|
-
return resultFile;
|
|
128
|
-
};
|
|
129
|
-
/**
|
|
130
|
-
* Runs a generator against multiple decorator files without writing to disk.
|
|
131
|
-
*
|
|
132
|
-
* @param files - The extracted decorator files to process.
|
|
133
|
-
* @param gen - The generator to run.
|
|
134
|
-
* @param env - Environment variables for the generation context.
|
|
135
|
-
* @returns A promise resolving to an array of generated result files.
|
|
136
|
-
*/
|
|
137
|
-
export const runFiles = async (files, gen, env) => Promise.all(files.map(async (file) => gen.run(file, env)));
|
|
138
|
-
//# sourceMappingURL=generator.common.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generator.common.js","sourceRoot":"","sources":["../../src/common/generator.common.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import ts from "typescript";
|
|
2
|
-
import { DecoImport } from "@mxpicture/gcp-functions-common/types";
|
|
3
|
-
/**
|
|
4
|
-
* Represents a single import declaration extracted from a TypeScript source file.
|
|
5
|
-
*/
|
|
6
|
-
export interface ExtractedImport {
|
|
7
|
-
module: string;
|
|
8
|
-
defaultImport?: string;
|
|
9
|
-
namedImports?: string[];
|
|
10
|
-
namespaceImport?: string;
|
|
11
|
-
isTypeOnly?: boolean;
|
|
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
|
-
*/
|
|
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
|
-
*/
|
|
30
|
-
export declare const extractImports: (sourceFile: ts.SourceFile) => ExtractedImport[];
|
|
31
|
-
//# sourceMappingURL=deco.imports.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,71 +0,0 @@
|
|
|
1
|
-
import ts from "typescript";
|
|
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
|
-
*/
|
|
13
|
-
export const extractNamedImports = (sourceFile) => {
|
|
14
|
-
if (typeof sourceFile === "string") {
|
|
15
|
-
const files = createSourceFiles([sourceFile]);
|
|
16
|
-
if (files.length === 0)
|
|
17
|
-
return [];
|
|
18
|
-
sourceFile = files[0].sourceFile;
|
|
19
|
-
}
|
|
20
|
-
const results = [];
|
|
21
|
-
const imports = extractImports(sourceFile);
|
|
22
|
-
for (const imp of imports) {
|
|
23
|
-
if (!imp.namedImports || imp.namedImports.length === 0)
|
|
24
|
-
continue;
|
|
25
|
-
results.push({
|
|
26
|
-
path: imp.module,
|
|
27
|
-
props: [...imp.namedImports],
|
|
28
|
-
isType: imp.isTypeOnly,
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
return results;
|
|
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
|
-
*/
|
|
39
|
-
export const extractImports = (sourceFile) => {
|
|
40
|
-
const imports = [];
|
|
41
|
-
sourceFile.forEachChild((node) => {
|
|
42
|
-
if (ts.isImportDeclaration(node) && node.moduleSpecifier) {
|
|
43
|
-
const moduleName = node.moduleSpecifier.text;
|
|
44
|
-
let defaultImport;
|
|
45
|
-
let namedImports = [];
|
|
46
|
-
let namespaceImport;
|
|
47
|
-
if (!node.importClause)
|
|
48
|
-
return;
|
|
49
|
-
if (node.importClause.name)
|
|
50
|
-
defaultImport = node.importClause.name.text;
|
|
51
|
-
const isTypeOnly = node.importClause.phaseModifier === ts.SyntaxKind.TypeKeyword;
|
|
52
|
-
if (node.importClause.namedBindings) {
|
|
53
|
-
if (ts.isNamedImports(node.importClause.namedBindings)) {
|
|
54
|
-
namedImports = node.importClause.namedBindings.elements.map((el) => el.name.text);
|
|
55
|
-
}
|
|
56
|
-
else if (ts.isNamespaceImport(node.importClause.namedBindings)) {
|
|
57
|
-
namespaceImport = node.importClause.namedBindings.name.text;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
imports.push({
|
|
61
|
-
module: moduleName,
|
|
62
|
-
defaultImport,
|
|
63
|
-
namedImports: namedImports.length ? namedImports : undefined,
|
|
64
|
-
namespaceImport,
|
|
65
|
-
isTypeOnly,
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
return imports;
|
|
70
|
-
};
|
|
71
|
-
//# sourceMappingURL=deco.imports.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|