@mxpicture/gcp-functions-generator 2.1.16 → 2.1.17

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,18 +1,8 @@
1
- import type { DecoNames, DecoratorData } from "@mxpicture/gcp-functions-common/decorator";
1
+ import type { DecoNames } from "@mxpicture/gcp-functions-common/decorator";
2
2
  import { Generator } from "./Generator.js";
3
3
  import type { GeneratorEnv, GeneratorRunItem, GeneratorRunResult } from "../common/types.common.js";
4
- import type { AnnotationsProperty, DecoPropertyBase, DecoRoutes } from "@mxpicture/gcp-functions-common/types";
4
+ import type { AnnotationsProperty, DecoPropertyBase } from "@mxpicture/gcp-functions-common/types";
5
5
  import type { ExportsAlias } from "@mxpicture/build-api/types";
6
- interface CacheEntry {
7
- name: string;
8
- raw: DecoratorData;
9
- apiSuperClass: string;
10
- isApiAbstract: boolean;
11
- additionalRoutes: DecoRoutes;
12
- isStoreFactory: boolean;
13
- names: DecoNames;
14
- namespace: string;
15
- }
16
6
  /**
17
7
  * Generator that produces backend-specific code including API classes, stores, functions, and factory helpers.
18
8
  *
@@ -21,10 +11,7 @@ interface CacheEntry {
21
11
  * `IBackendFunction`, `Store`, and a `create*Function` factory.
22
12
  */
23
13
  export declare class GeneratorBackend extends Generator {
24
- protected _cache: Map<string, CacheEntry>;
25
14
  constructor();
26
- protected setCache(item: GeneratorRunItem): CacheEntry;
27
- protected cache(name: string): CacheEntry;
28
15
  protected runHeader(item: GeneratorRunItem, env: GeneratorEnv): Promise<GeneratorRunResult | null>;
29
16
  protected buildConstants(virtualKeysName: string, virtuals: AnnotationsProperty<DecoPropertyBase>[], datePathsName: string, datePaths: string[], sideEffectsName: string, sideEffects: AnnotationsProperty<DecoPropertyBase>[]): string[];
30
17
  protected buildApi(name: string, virtualKeysName: string, datePathsName: string, sideEffectsName: string, virtuals: AnnotationsProperty<DecoPropertyBase>[], sideEffects: AnnotationsProperty<DecoPropertyBase>[]): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"GeneratorBackend.d.ts","sourceRoot":"","sources":["../../src/generator/GeneratorBackend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACd,MAAM,2CAA2C,CAAC;AAWnD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACX,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,aAAa,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,UAAU,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,qBAAa,gBAAiB,SAAQ,SAAS;IAC7C,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAa;;IAUtD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,UAAU;IAmCtD,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;cAMhB,SAAS,CAChC,IAAI,EAAE,gBAAgB,EACtB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IA2ErC,SAAS,CAAC,cAAc,CACtB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,EACjD,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EAAE,EACnB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,GACnD,MAAM,EAAE;IAqBX,SAAS,CAAC,QAAQ,CAChB,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,EACjD,WAAW,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,GACnD,MAAM,EAAE;IAgDX,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAkB/C,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IA4B9C,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAS5C,SAAS,CAAC,mBAAmB,CAC3B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,YAAY,GAChB;QACD,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,OAAO,EAAE,YAAY,EAAE,CAAC;KACzB;IAmBD,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,EAAE;CAe1E;;AAED,wBAAsC"}
1
+ {"version":3,"file":"GeneratorBackend.d.ts","sourceRoot":"","sources":["../../src/generator/GeneratorBackend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAO3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG/D;;;;;;GAMG;AACH,qBAAa,gBAAiB,SAAQ,SAAS;;cASpB,SAAS,CAChC,IAAI,EAAE,gBAAgB,EACtB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IA2ErC,SAAS,CAAC,cAAc,CACtB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,EACjD,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EAAE,EACnB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,GACnD,MAAM,EAAE;IAqBX,SAAS,CAAC,QAAQ,CAChB,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,EACjD,WAAW,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,GACnD,MAAM,EAAE;IAgDX,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAmB/C,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IA6B9C,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAU5C,SAAS,CAAC,mBAAmB,CAC3B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,YAAY,GAChB;QACD,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,OAAO,EAAE,YAAY,EAAE,CAAC;KACzB;IAmBD,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,EAAE;CAe1E;;AAED,wBAAsC"}
@@ -1,8 +1,9 @@
1
- import { hasCrudRoute, isCrudRoute, DecoFileExtension, DecoFileType, DecoPropertyType, DecoPackageType, hasCustomCrudRoute, isCustomCrudRoute, } from "@mxpicture/gcp-functions-common/decorator";
1
+ import { DecoFileExtension, DecoFileType, DecoPropertyType, DecoPackageType, } from "@mxpicture/gcp-functions-common/decorator";
2
2
  import { Generator } from "./Generator.js";
3
3
  import {} from "@mxpicture/gcp-functions-backend/api"; // for reference only
4
4
  import {} from "@mxpicture/gcp-functions-frontend/types"; // for reference only
5
5
  import { extractAnnotationsPaths } from "@mxpicture/gcp-functions-common/annotation";
6
+ import { cacheBE, setCache } from "../run/GeneratorCache.js";
6
7
  /**
7
8
  * Generator that produces backend-specific code including API classes, stores, functions, and factory helpers.
8
9
  *
@@ -11,7 +12,6 @@ import { extractAnnotationsPaths } from "@mxpicture/gcp-functions-common/annotat
11
12
  * `IBackendFunction`, `Store`, and a `create*Function` factory.
12
13
  */
13
14
  export class GeneratorBackend extends Generator {
14
- _cache = new Map();
15
15
  constructor() {
16
16
  super({
17
17
  fileType: DecoFileType.backend,
@@ -19,43 +19,8 @@ export class GeneratorBackend extends Generator {
19
19
  packageType: DecoPackageType.backend,
20
20
  });
21
21
  }
22
- setCache(item) {
23
- let entry = this._cache.get(item.decorator.name);
24
- if (entry)
25
- return entry;
26
- const raw = item.decorator.extractRaw();
27
- const apiSuperClass = hasCustomCrudRoute(raw.routes)
28
- ? "BackendCrudApi"
29
- : hasCrudRoute(raw.routes)
30
- ? "BackendDefaultApi"
31
- : "BackendStoreApi";
32
- const additionalRoutes = Object.entries(raw.routes ?? {})
33
- .filter(([, params]) => !isCrudRoute(params) && !isCustomCrudRoute(params))
34
- .reduce((acc, [key, value]) => {
35
- acc[key] = value;
36
- return acc;
37
- }, {});
38
- entry = {
39
- name: raw.name,
40
- raw,
41
- apiSuperClass,
42
- isApiAbstract: Object.keys(additionalRoutes).length > 0,
43
- additionalRoutes,
44
- isStoreFactory: !!raw.lead,
45
- names: item.names,
46
- namespace: raw.namespace ?? "default",
47
- };
48
- this._cache.set(raw.name, entry);
49
- return entry;
50
- }
51
- cache(name) {
52
- const entry = this._cache.get(name);
53
- if (!entry)
54
- throw new Error(`No cache entry available for "${name}"`);
55
- return entry;
56
- }
57
22
  async runHeader(item, env) {
58
- const cache = this.setCache(item);
23
+ const cache = setCache(item);
59
24
  if (!cache.raw.routes || Object.keys(cache.raw.routes).length === 0)
60
25
  return null;
61
26
  const names = item.names;
@@ -108,7 +73,8 @@ export class GeneratorBackend extends Generator {
108
73
  }
109
74
  buildApi(name, virtualKeysName, datePathsName, sideEffectsName, virtuals, sideEffects) {
110
75
  const code = [];
111
- const { apiSuperClass, isApiAbstract, additionalRoutes, names } = this.cache(name);
76
+ const { additionalRoutes, backend } = cacheBE(name);
77
+ const { apiSuperClass, isApiAbstract, names } = backend;
112
78
  code.push(`export ${isApiAbstract ? "abstract" : ""} class ${names.api} extends ${apiSuperClass}<${names.docStore}, ${names.doc}, ${names.docSideEffects}, ${names.store}, Validation<${names.doc}>>`, `implements ApiFromRoutes<${names.routes}>`, "{", ` public constructor() { super("${names.basenameLower}", ${datePathsName}, ${virtualKeysName}, ${sideEffectsName}); }`, "");
113
79
  if (virtuals.length === 0) {
114
80
  // create dummy method with 1:1 mapping
@@ -134,7 +100,8 @@ export class GeneratorBackend extends Generator {
134
100
  return code;
135
101
  }
136
102
  buildFunction(name) {
137
- const { names } = this.cache(name);
103
+ const { backend } = cacheBE(name);
104
+ const { names } = backend;
138
105
  return [
139
106
  `export interface ${names.func}Params { projectId: string; region: string; serviceAccount: string; api?: ${names.api}; name?: string; functionName?: string; }`,
140
107
  "",
@@ -150,7 +117,8 @@ export class GeneratorBackend extends Generator {
150
117
  ];
151
118
  }
152
119
  buildFactory(name) {
153
- const { isApiAbstract, names, isStoreFactory } = this.cache(name);
120
+ const { backend } = cacheBE(name);
121
+ const { isStoreFactory, isApiAbstract, names } = backend;
154
122
  const createApi = isApiAbstract
155
123
  ? ""
156
124
  : ` protected override _createApi(): ${names.api} { void name; return new ${names.api}(); }`;
@@ -173,7 +141,8 @@ export class GeneratorBackend extends Generator {
173
141
  ];
174
142
  }
175
143
  buildStore(name) {
176
- const { names, namespace } = this.cache(name);
144
+ const { namespace, backend } = cacheBE(name);
145
+ const { names } = backend;
177
146
  return [
178
147
  `export class ${names.store} extends Store<${names.doc}> {`,
179
148
  ` public constructor(converter?: FirestoreDataConverter<${names.doc}>) { super("${names.basenameLower}", "${namespace}", converter); }`,
@@ -1 +1 @@
1
- {"version":3,"file":"GeneratorBackend.js","sourceRoot":"","sources":["../../src/generator/GeneratorBackend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeneratorBackend.js","sourceRoot":"","sources":["../../src/generator/GeneratorBackend.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GeneratorComposite.d.ts","sourceRoot":"","sources":["../../src/generator/GeneratorComposite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACZ,MAAM,uCAAuC,CAAC;AAM/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,SAAQ,SAAS;;IASzB,SAAS,CAC7B,SAAS,EAAE,QAAQ,EAAE,EACrB,GAAG,EAAE,YAAY,EACjB,EAAE,EAAE,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,EAC7C,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,IAAI,CAAC;cA6BS,SAAS,CAChC,IAAI,EAAE,gBAAgB,EACtB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAMrC,SAAS,CAAC,cAAc,CACtB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,gBAAgB,EAAE,EACzB,GAAG,EAAE,YAAY,GAChB,MAAM,EAAE;CAuDZ;;AAED,wBAAwC"}
1
+ {"version":3,"file":"GeneratorComposite.d.ts","sourceRoot":"","sources":["../../src/generator/GeneratorComposite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACZ,MAAM,uCAAuC,CAAC;AAM/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG/D;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,SAAQ,SAAS;;IASzB,SAAS,CAC7B,SAAS,EAAE,QAAQ,EAAE,EACrB,GAAG,EAAE,YAAY,EACjB,EAAE,EAAE,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,EAC7C,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,IAAI,CAAC;cA6BS,SAAS,CAChC,IAAI,EAAE,gBAAgB,EACtB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAMrC,SAAS,CAAC,cAAc,CACtB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,gBAAgB,EAAE,EACzB,GAAG,EAAE,YAAY,GAChB,MAAM,EAAE;CAsDZ;;AAED,wBAAwC"}
@@ -1,5 +1,6 @@
1
1
  import { DecoFileExtension, DecoFileType, DecoPackageType, } from "@mxpicture/gcp-functions-common/decorator";
2
2
  import { Generator } from "./Generator.js";
3
+ import { cacheBE, setCache } from "../run/GeneratorCache.js";
3
4
  /**
4
5
  * Cross-file generator emitting one composite backend function per namespace,
5
6
  * aggregating all decorators marked with `standalone(false)`.
@@ -61,17 +62,15 @@ export class GeneratorComposite extends Generator {
61
62
  // imports for the per-topic symbols below (IXxxBeFunction, XxxStore, validation).
62
63
  code.push(`import { CompositeBackendFunction } from "@mxpicture/gcp-functions-backend/function";`, `import type { ExpressAuthHandler } from "@mxpicture/gcp-functions-backend/types";`, "");
63
64
  code.push(`export interface ${factoriesType} {`, ...items.map((item) => {
64
- const names = item.names;
65
- return ` ${names.basenameLower}: (projectId: string, region: string, serviceAccount: string) => ${names.func};`;
65
+ setCache(item);
66
+ const { isApiAbstract, names } = cacheBE(item.decorator.name).backend;
67
+ return ` ${names.basenameLower}${isApiAbstract ? "" : "?"}: ${names.factory};`;
66
68
  }), "}", "");
67
69
  const wireTopic = (item) => {
68
70
  const names = item.names;
69
71
  return [
70
72
  " {",
71
- ` const f = factories.${names.basenameLower}("${env.projectId}", "${env.region}", "${env.serviceAccount}");`,
72
- ` f.api.useStore(new ${names.store}());`,
73
- ` f.api.useValidation(${names.validation}());`,
74
- ` composite.useTopic("${names.basenameLower}", f);`,
73
+ ` composite.useTopic("${names.basenameLower}", factories.${names.basenameLower}.func());`,
75
74
  " }",
76
75
  ];
77
76
  };
@@ -1 +1 @@
1
- {"version":3,"file":"GeneratorComposite.js","sourceRoot":"","sources":["../../src/generator/GeneratorComposite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeneratorComposite.js","sourceRoot":"","sources":["../../src/generator/GeneratorComposite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { type DecoNames, type DecoratorData } from "@mxpicture/gcp-functions-common/decorator";
2
+ import type { DecoRoutes } from "@mxpicture/gcp-functions-common/types";
3
+ import type { GeneratorRunItem } from "../common/types.common.js";
4
+ export interface GeneratorCacheEntryFE {
5
+ names: DecoNames;
6
+ }
7
+ export interface GeneratorCacheEntryBE {
8
+ apiSuperClass: string;
9
+ isApiAbstract: boolean;
10
+ isStoreFactory: boolean;
11
+ names: DecoNames;
12
+ }
13
+ export interface GeneratorCacheEntry {
14
+ name: string;
15
+ raw: DecoratorData;
16
+ additionalRoutes: DecoRoutes;
17
+ namespace: string;
18
+ backend?: GeneratorCacheEntryBE;
19
+ frontend?: GeneratorCacheEntryFE;
20
+ }
21
+ export declare class GeneratorCache {
22
+ protected _entries: Map<string, GeneratorCacheEntry>;
23
+ constructor();
24
+ set(item: GeneratorRunItem): GeneratorCacheEntry;
25
+ get(name: string): GeneratorCacheEntry;
26
+ protected ensureEntry(item: GeneratorRunItem): GeneratorCacheEntry;
27
+ }
28
+ export declare const cache: (name: string) => GeneratorCacheEntry;
29
+ export declare const cacheFE: (name: string) => GeneratorCacheEntry & {
30
+ frontend: GeneratorCacheEntryFE;
31
+ };
32
+ export declare const cacheBE: (name: string) => GeneratorCacheEntry & {
33
+ backend: GeneratorCacheEntryBE;
34
+ };
35
+ export declare const setCache: (item: GeneratorRunItem) => GeneratorCacheEntry;
36
+ //# sourceMappingURL=GeneratorCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeneratorCache.d.ts","sourceRoot":"","sources":["../../src/run/GeneratorCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,aAAa,CAAC;IACnB,gBAAgB,EAAE,UAAU,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC;AAED,qBAAa,cAAc;IACzB,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAa;;IAI1D,GAAG,CAAC,IAAI,EAAE,gBAAgB,GAAG,mBAAmB;IA6BhD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB;IAM7C,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,gBAAgB,GAAG,mBAAmB;CAyBnE;AAID,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,KAAG,mBAIpC,CAAC;AAEF,eAAO,MAAM,OAAO,GAClB,MAAM,MAAM,KACX,mBAAmB,GAAG;IAAE,QAAQ,EAAE,qBAAqB,CAAA;CAKzD,CAAC;AAEF,eAAO,MAAM,OAAO,GAClB,MAAM,MAAM,KACX,mBAAmB,GAAG;IAAE,OAAO,EAAE,qBAAqB,CAAA;CAKxD,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,MAAM,gBAAgB,wBAAqB,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { hasCrudRoute, hasCustomCrudRoute, isCrudRoute, isCustomCrudRoute, } from "@mxpicture/gcp-functions-common/decorator";
2
+ export class GeneratorCache {
3
+ _entries = new Map();
4
+ constructor() { }
5
+ set(item) {
6
+ const entry = this.ensureEntry(item);
7
+ // backend
8
+ if (!entry.backend) {
9
+ const apiSuperClass = hasCustomCrudRoute(entry.raw.routes)
10
+ ? "BackendCrudApi"
11
+ : hasCrudRoute(entry.raw.routes)
12
+ ? "BackendDefaultApi"
13
+ : "BackendStoreApi";
14
+ entry.backend = {
15
+ apiSuperClass,
16
+ isApiAbstract: Object.keys(entry.additionalRoutes).length > 0,
17
+ isStoreFactory: !!entry.raw.lead,
18
+ names: item.names,
19
+ };
20
+ }
21
+ // frontend
22
+ if (!entry.frontend) {
23
+ entry.frontend = {
24
+ names: item.names,
25
+ };
26
+ }
27
+ return entry;
28
+ }
29
+ get(name) {
30
+ const entry = this._entries.get(name);
31
+ if (!entry)
32
+ throw new Error(`No cache entry available for "${name}"`);
33
+ return entry;
34
+ }
35
+ ensureEntry(item) {
36
+ let entry = this._entries.get(item.decorator.name);
37
+ if (entry)
38
+ return entry;
39
+ const raw = item.decorator.extractRaw();
40
+ const additionalRoutes = Object.entries(raw.routes ?? {})
41
+ .filter(([, params]) => !isCrudRoute(params) && !isCustomCrudRoute(params))
42
+ .reduce((acc, [key, value]) => {
43
+ acc[key] = value;
44
+ return acc;
45
+ }, {});
46
+ entry = {
47
+ name: raw.name,
48
+ raw,
49
+ additionalRoutes,
50
+ namespace: raw.namespace ?? "default",
51
+ };
52
+ this._entries.set(raw.name, entry);
53
+ return entry;
54
+ }
55
+ }
56
+ const _cache = new GeneratorCache();
57
+ export const cache = (name) => {
58
+ const entry = _cache.get(name);
59
+ if (!entry)
60
+ throw new Error(`No cache entry available for "${name}"`);
61
+ return entry;
62
+ };
63
+ export const cacheFE = (name) => {
64
+ const entry = cache(name);
65
+ if (!entry.frontend)
66
+ throw new Error(`No cache frontend entry available for "${name}"`);
67
+ return entry;
68
+ };
69
+ export const cacheBE = (name) => {
70
+ const entry = cache(name);
71
+ if (!entry.backend)
72
+ throw new Error(`No cache backend entry available for "${name}"`);
73
+ return entry;
74
+ };
75
+ export const setCache = (item) => _cache.set(item);
76
+ //# sourceMappingURL=GeneratorCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeneratorCache.js","sourceRoot":"","sources":["../../src/run/GeneratorCache.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ export * from "./GeneratorBarrel.js";
2
2
  export * from "./GeneratorBase.js";
3
3
  export * from "./GeneratorBaseFile.js";
4
4
  export * from "./GeneratorBasePersist.js";
5
+ export * from "./GeneratorCache.js";
5
6
  export * from "./GeneratorDirectory.js";
6
7
  export * from "./GeneratorFile.js";
7
8
  export * from "./GeneratorFileImports.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/run/index.ts"],"names":[],"mappings":"AACA,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/run/index.ts"],"names":[],"mappings":"AACA,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
package/dist/run/index.js CHANGED
@@ -3,6 +3,7 @@ export * from "./GeneratorBarrel.js";
3
3
  export * from "./GeneratorBase.js";
4
4
  export * from "./GeneratorBaseFile.js";
5
5
  export * from "./GeneratorBasePersist.js";
6
+ export * from "./GeneratorCache.js";
6
7
  export * from "./GeneratorDirectory.js";
7
8
  export * from "./GeneratorFile.js";
8
9
  export * from "./GeneratorFileImports.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/run/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/run/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mxpicture/gcp-functions-generator",
3
- "version": "2.1.16",
3
+ "version": "2.1.17",
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.37",
52
- "@mxpicture/gcp-functions-backend": "^2.1.16",
53
- "@mxpicture/gcp-functions-common": "^2.1.16",
54
- "@mxpicture/gcp-functions-frontend": "^2.1.16",
52
+ "@mxpicture/gcp-functions-backend": "^2.1.17",
53
+ "@mxpicture/gcp-functions-common": "^2.1.17",
54
+ "@mxpicture/gcp-functions-frontend": "^2.1.17",
55
55
  "google-auth-library": "^10.6.2",
56
56
  "googleapis": "^171.4.0",
57
57
  "json5": "^2.2.3"