@mxpicture/gcp-functions-generator 2.1.35 → 2.1.36

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.
@@ -1,8 +1,40 @@
1
+ import { VirtualFilesHandler } from "@mxpicture/build-api/file";
2
+ import type { DecoResolve } from "@mxpicture/gcp-functions-common/types";
3
+ import { GeneratorFs } from "../run/GeneratorFs.js";
4
+ import { GeneratorRun } from "../run/GeneratorRun.js";
5
+ import type { GeneratorFile } from "../run/GeneratorFile.js";
6
+ import type { GeneratorEnv } from "../common/types.common.js";
1
7
  export declare const wsRoot: string;
2
8
  export declare const templatesDir: string;
9
+ export declare const tsconfigPath: string;
3
10
  export declare const createTestWorkspace: (pkgsDir: string) => Promise<string>;
4
11
  export declare const removeTestWorkspace: (p: string | null) => Promise<void>;
5
12
  export declare const isTestWorkspace: (fileNameOrPath: string) => boolean;
6
13
  export declare const readAllTestWorkspaces: () => Promise<string[]>;
7
14
  export declare const removeAllTestWorkspaces: () => Promise<void>;
15
+ /** Default GCP environment used when running the generator in tests. */
16
+ export declare const testGeneratorEnv: GeneratorEnv;
17
+ /** Default import-resolution policy used when running the generator in tests. */
18
+ export declare const testDecoResolve: DecoResolve;
19
+ /** Outcome of {@link runTestGeneration}. */
20
+ export interface TestGeneration {
21
+ /** Absolute path to the throwaway workspace that was generated into. */
22
+ targetDir: string;
23
+ /** The in-memory file tree produced by the generator. */
24
+ fs: GeneratorFs<VirtualFilesHandler<GeneratorFile>>;
25
+ /** The orchestrator instance, exposed for assertions on individual phases. */
26
+ run: GeneratorRun;
27
+ /** Whether the import-resolution phase reported unresolved diagnostics. */
28
+ hadErrors: boolean;
29
+ }
30
+ /**
31
+ * Runs the full generator pipeline end-to-end against the bundled
32
+ * {@link templatesDir} templates inside a freshly created test workspace and
33
+ * writes the result to disk.
34
+ *
35
+ * @param pkgsDir - Name of the packages directory created in the workspace.
36
+ * @returns The workspace path, the in-memory {@link GeneratorFs}, the
37
+ * {@link GeneratorRun} orchestrator, and whether errors were reported.
38
+ */
39
+ export declare const runTestGeneration: (pkgsDir?: string) => Promise<TestGeneration>;
8
40
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/4testing/utils.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,MAAM,QAA8B,CAAC;AAClD,eAAO,MAAM,YAAY,QAAoC,CAAC;AAkB9D,eAAO,MAAM,mBAAmB,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAYzE,CAAC;AAEF,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":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAMhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAGzE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAU9D,eAAO,MAAM,MAAM,QAA8B,CAAC;AAClD,eAAO,MAAM,YAAY,QAAoC,CAAC;AAC9D,eAAO,MAAM,YAAY,QAA4C,CAAC;AAqBtE,eAAO,MAAM,mBAAmB,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAYzE,CAAC;AAEF,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;AAEF,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,EAAE,YAI9B,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,eAAe,EAAE,WAE7B,CAAC;AAEF,4CAA4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,EAAE,EAAE,WAAW,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC;IACpD,8EAA8E;IAC9E,GAAG,EAAE,YAAY,CAAC;IAClB,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAS,MAAmB,KAC3B,OAAO,CAAC,cAAc,CAgBxB,CAAC"}
@@ -1,10 +1,14 @@
1
1
  import { writePackageJson } from "@mxpicture/build-api/pkg";
2
- import { DecoPackageType } from "@mxpicture/gcp-functions-common/decorator";
2
+ import { VirtualFilesHandler } from "@mxpicture/build-api/file";
3
+ import { DecoPackageType, DecoResolveMode, DecoResolveTarget, } from "@mxpicture/gcp-functions-common/decorator";
3
4
  import { mkdir, readdir, rm } from "node:fs/promises";
4
5
  import { join, resolve } from "node:path";
6
+ import { GeneratorFs } from "../run/GeneratorFs.js";
7
+ import { GeneratorRun } from "../run/GeneratorRun.js";
5
8
  const __dirname = import.meta.dirname;
6
9
  export const wsRoot = resolve(__dirname, "../..");
7
10
  export const templatesDir = resolve(__dirname, "./templates");
11
+ export const tsconfigPath = resolve(__dirname, "../../tsconfig.json");
8
12
  const prepareWorkspace = (ws, pkgsDir) => {
9
13
  const pkgsPath = join(ws, pkgsDir);
10
14
  return Object.values(DecoPackageType).map((pkgType) => ({
@@ -14,6 +18,9 @@ const prepareWorkspace = (ws, pkgsDir) => {
14
18
  pkgJson: {
15
19
  name: `test-pkg-${pkgType}`,
16
20
  version: "0.0.1",
21
+ // Generated sources are ESM; mark the package so the TypeScript
22
+ // language service treats emitted files as modules.
23
+ type: "module",
17
24
  },
18
25
  }));
19
26
  };
@@ -42,4 +49,32 @@ export const removeAllTestWorkspaces = async () => {
42
49
  const dirNames = await readAllTestWorkspaces();
43
50
  await Promise.all(dirNames.map((dirName) => removeTestWorkspace(join(__dirname, dirName))));
44
51
  };
52
+ /** Default GCP environment used when running the generator in tests. */
53
+ export const testGeneratorEnv = {
54
+ projectId: "test-project",
55
+ region: "us-central1",
56
+ serviceAccount: "test@test.com",
57
+ };
58
+ /** Default import-resolution policy used when running the generator in tests. */
59
+ export const testDecoResolve = {
60
+ default: { mode: DecoResolveMode.rel, target: DecoResolveTarget.barrel },
61
+ };
62
+ /**
63
+ * Runs the full generator pipeline end-to-end against the bundled
64
+ * {@link templatesDir} templates inside a freshly created test workspace and
65
+ * writes the result to disk.
66
+ *
67
+ * @param pkgsDir - Name of the packages directory created in the workspace.
68
+ * @returns The workspace path, the in-memory {@link GeneratorFs}, the
69
+ * {@link GeneratorRun} orchestrator, and whether errors were reported.
70
+ */
71
+ export const runTestGeneration = async (pkgsDir = "packages") => {
72
+ const targetDir = await createTestWorkspace(pkgsDir);
73
+ const handler = new VirtualFilesHandler(tsconfigPath);
74
+ const fs = new GeneratorFs(targetDir, handler, undefined, pkgsDir);
75
+ const run = new GeneratorRun(targetDir, templatesDir, fs, testGeneratorEnv, testDecoResolve);
76
+ const hadErrors = await run.run();
77
+ await fs.persist();
78
+ return { targetDir, fs, run, hadErrors };
79
+ };
45
80
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/4testing/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/4testing/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mxpicture/gcp-functions-generator",
3
- "version": "2.1.35",
3
+ "version": "2.1.36",
4
4
  "description": "Tools for google cloud functions",
5
5
  "type": "module",
6
6
  "author": "MXPicture",
@@ -49,9 +49,9 @@
49
49
  "dependencies": {
50
50
  "@google-cloud/scheduler": "^5.3.1",
51
51
  "@mxpicture/build-api": "^0.4.42",
52
- "@mxpicture/gcp-functions-backend": "^2.1.35",
53
- "@mxpicture/gcp-functions-common": "^2.1.35",
54
- "@mxpicture/gcp-functions-frontend": "^2.1.35",
52
+ "@mxpicture/gcp-functions-backend": "^2.1.36",
53
+ "@mxpicture/gcp-functions-common": "^2.1.36",
54
+ "@mxpicture/gcp-functions-frontend": "^2.1.36",
55
55
  "google-auth-library": "^10.6.2",
56
56
  "googleapis": "^171.4.0",
57
57
  "json5": "^2.2.3"