@mxpicture/gcp-functions-tools 0.1.67 → 0.1.69

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 (44) hide show
  1. package/dist/change/ChangeHandler.js +1 -1
  2. package/dist/common/Barrel.d.ts +4 -4
  3. package/dist/common/Barrel.js +1 -1
  4. package/dist/common/Collector.d.ts +5 -5
  5. package/dist/common/Collector.js +2 -1
  6. package/dist/common/Directories.d.ts +8 -9
  7. package/dist/common/Directories.js +3 -3
  8. package/dist/common/Extractor.d.ts +2 -3
  9. package/dist/common/Extractor.js +1 -2
  10. package/dist/generator/Generator.d.ts +5 -6
  11. package/dist/generator/Generator.js +9 -9
  12. package/dist/generator/GeneratorAnnotations.d.ts +1 -1
  13. package/dist/generator/GeneratorAnnotations.js +45 -9
  14. package/dist/generator/GeneratorBackend.d.ts +1 -1
  15. package/dist/generator/GeneratorBackend.js +3 -3
  16. package/dist/generator/GeneratorDoc.d.ts +1 -1
  17. package/dist/generator/GeneratorDoc.js +2 -3
  18. package/dist/generator/GeneratorFrontend.d.ts +1 -1
  19. package/dist/generator/GeneratorFrontend.js +3 -3
  20. package/dist/generator/GeneratorRoutes.d.ts +1 -1
  21. package/dist/generator/GeneratorRoutes.js +2 -3
  22. package/dist/generator/GeneratorZod.d.ts +2 -2
  23. package/dist/generator/GeneratorZod.js +2 -4
  24. package/dist/meta/index.d.ts +0 -4
  25. package/dist/meta/index.js +0 -4
  26. package/dist/meta/meta.common.d.ts +5 -10
  27. package/dist/meta/meta.common.js +4 -12
  28. package/dist/meta/meta.decorators.d.ts +3 -2
  29. package/dist/meta/meta.decorators.js +1 -4
  30. package/dist/meta/meta.imports.d.ts +1 -1
  31. package/dist/meta/meta.main.d.ts +3 -3
  32. package/dist/meta/meta.main.js +1 -1
  33. package/dist/meta/meta.names.d.ts +2 -2
  34. package/dist/meta/meta.names.js +5 -5
  35. package/dist/testTemplates/template.medication.js +1 -1
  36. package/package.json +2 -5
  37. package/dist/meta/meta.annotations.d.ts +0 -11
  38. package/dist/meta/meta.annotations.js +0 -1
  39. package/dist/meta/meta.enum.d.ts +0 -87
  40. package/dist/meta/meta.enum.js +0 -99
  41. package/dist/meta/meta.properties.d.ts +0 -62
  42. package/dist/meta/meta.properties.js +0 -37
  43. package/dist/meta/meta.types.d.ts +0 -110
  44. package/dist/meta/meta.types.js +0 -27
@@ -37,7 +37,7 @@ export class ChangeHandler {
37
37
  if (!this._history)
38
38
  return null;
39
39
  await mkdir(historyJsonDir, { recursive: true });
40
- await writeFile(historyJsonPath, await formatJson(pkg.stringify(this._history)));
40
+ await writeFile(historyJsonPath, formatJson(pkg.stringify(this._history)));
41
41
  return this._history;
42
42
  }
43
43
  async readChanges(sinceCommit) {
@@ -1,4 +1,4 @@
1
- import { TargetType } from "../meta/meta.common.js";
1
+ import { MetaTargetType } from "@mxpicture/gcp-functions-common/meta";
2
2
  export interface BarrelResult {
3
3
  dirPath: string;
4
4
  barrelFilePath: string;
@@ -10,12 +10,12 @@ export interface BarrelFileGroup {
10
10
  filenames: string[];
11
11
  }
12
12
  export declare class Barrel {
13
- readonly targetType: TargetType;
13
+ readonly targetType: MetaTargetType;
14
14
  static ignorePackageJson: boolean;
15
15
  static instances: Barrel[];
16
16
  protected filePaths: string[];
17
- static instance(targetType: TargetType): Barrel;
18
- protected constructor(targetType: TargetType);
17
+ static instance(targetType: MetaTargetType): Barrel;
18
+ protected constructor(targetType: MetaTargetType);
19
19
  add(...filePaths: string[]): void;
20
20
  create(): BarrelResult[];
21
21
  write(results: BarrelResult[]): Promise<void>;
@@ -32,7 +32,7 @@ export class Barrel {
32
32
  const promises = [];
33
33
  for (const result of results) {
34
34
  promises.push((async () => {
35
- const code = await formatCode(result.exportsCode.join("\n"));
35
+ const code = formatCode(result.exportsCode.join("\n"));
36
36
  await mkdir(result.dirPath, { recursive: true });
37
37
  return writeFile(result.barrelFilePath, code);
38
38
  })());
@@ -1,8 +1,8 @@
1
- import { TargetType } from "../meta/meta.common.js";
2
- import { MetaNames } from "../meta/meta.types.js";
1
+ import { MetaTargetType } from "@mxpicture/gcp-functions-common/meta";
2
+ import { MetaNames } from "@mxpicture/gcp-functions-common/types";
3
3
  export interface CollectorKey {
4
4
  basename: string;
5
- targetType: TargetType;
5
+ targetType: MetaTargetType;
6
6
  }
7
7
  export interface CollectorData {
8
8
  names: MetaNames;
@@ -15,8 +15,8 @@ export declare class Collector {
15
15
  protected items: CollectorItem[];
16
16
  static instance(): Collector;
17
17
  constructor();
18
- add(basename: string, targetType: TargetType, data: CollectorData): void;
19
- find(basename: string, targetType: TargetType): CollectorItem | null;
18
+ add(basename: string, targetType: MetaTargetType, data: CollectorData): void;
19
+ find(basename: string, targetType: MetaTargetType): CollectorItem | null;
20
20
  findGeneric(name: string): CollectorItem[];
21
21
  findFirst(name: string): CollectorItem | null;
22
22
  }
@@ -1,4 +1,5 @@
1
- import { metaNameProperties } from "../meta/meta.types.js";
1
+ // import type { MetaNames } from "@mxpicture/gcp-functions-common/types";
2
+ import { metaNameProperties, } from "@mxpicture/gcp-functions-common/types";
2
3
  let __instance = null;
3
4
  export class Collector {
4
5
  items = [];
@@ -1,7 +1,6 @@
1
- import { TargetType } from "../meta/meta.common.js";
2
- import { MetaFileType } from "../meta/meta.enum.js";
1
+ import { MetaFileType, MetaTargetType } from "@mxpicture/gcp-functions-common/meta";
3
2
  export interface DirectoriesResolverParams {
4
- targetType: TargetType;
3
+ targetType: MetaTargetType;
5
4
  fileType: MetaFileType;
6
5
  }
7
6
  export type DirectoriesResolver = (imp: DirectoriesResolverParams, // e.g ${TargetType}/${MetaFileType} --> common/doc,
@@ -17,16 +16,16 @@ declare class Directories {
17
16
  constructor();
18
17
  setup(params: DirectoriesParams): void;
19
18
  get templatesDir(): string;
20
- targetDir(targetType: TargetType): string;
21
- targetBasePath(targetType: TargetType): string;
22
- toTargetPath(type: MetaFileType, filename: string, targetType: TargetType): string;
23
- targetPackageJson(targetType: TargetType): string;
19
+ targetDir(targetType: MetaTargetType): string;
20
+ targetBasePath(targetType: MetaTargetType): string;
21
+ toTargetPath(type: MetaFileType, filename: string, targetType: MetaTargetType): string;
22
+ targetPackageJson(targetType: MetaTargetType): string;
24
23
  templatesPathRead(): Promise<string[]>;
25
24
  resolveImport(imp: {
26
- targetType: TargetType;
25
+ targetType: MetaTargetType;
27
26
  fileType: MetaFileType;
28
27
  } | string, currentFile: {
29
- targetType: TargetType;
28
+ targetType: MetaTargetType;
30
29
  fileType: MetaFileType;
31
30
  } | string): string;
32
31
  splitResolverPath(path: string): DirectoriesResolverParams;
@@ -1,7 +1,7 @@
1
1
  import { join, resolve } from "node:path";
2
- import { guardTargetType, isTemplateFile, } from "../meta/meta.common.js";
3
- import { guardMetaFileType } from "../meta/meta.enum.js";
2
+ import { isTemplateFile } from "../meta/meta.common.js";
4
3
  import { readdir } from "node:fs/promises";
4
+ import { guardMetaFileType, guardMetaTargetType, } from "@mxpicture/gcp-functions-common/meta";
5
5
  let __instance = null;
6
6
  const instance = () => {
7
7
  if (!__instance)
@@ -52,7 +52,7 @@ class Directories {
52
52
  const fileType = guardMetaFileType(_fileType);
53
53
  if (!fileType)
54
54
  throw new Error(`${path}: fileType ${_fileType} invalid`);
55
- const targetType = guardTargetType(_targetType);
55
+ const targetType = guardMetaTargetType(_targetType);
56
56
  if (!targetType)
57
57
  throw new Error(`${path}: targetType ${_targetType} invalid`);
58
58
  return { targetType, fileType };
@@ -1,9 +1,8 @@
1
1
  import ts from "typescript";
2
- import type { MetaMainInterfaceOptions, MetaRouteParams } from "../meta/meta.types.js";
3
- import type { MetaPropertyOptionsBase, MetaPropertyData, MetaPropertyDecorator } from "../meta/meta.properties.js";
4
2
  import { MetaMainData, MetaMainDecorator, MetaMainOptionsBase } from "../meta/meta.main.js";
5
- import { CrudRouteName } from "../meta/meta.enum.js";
6
3
  import { DocumentData } from "@mxpicture/gcp-functions-common/types";
4
+ import { CrudRouteName, MetaPropertyData, MetaPropertyDecorator, MetaPropertyOptionsBase } from "@mxpicture/gcp-functions-common/meta";
5
+ import type { MetaRouteParams, MetaMainInterfaceOptions } from "@mxpicture/gcp-functions-common/types";
7
6
  export type MetaMainExtract = {
8
7
  [K in keyof MetaMainOptionsBase]: (property: ts.ClassDeclaration) => MetaMainData | undefined;
9
8
  };
@@ -1,12 +1,11 @@
1
1
  import ts from "typescript";
2
2
  import { Evaluate } from "./Evaluate.js";
3
- import { metaPropertyOptionsMap } from "../meta/meta.properties.js";
4
3
  import { metaMainOptionsMap, } from "../meta/meta.main.js";
5
- import { MetaFileType, MetaMainType, } from "../meta/meta.enum.js";
6
4
  import { createSourceFiles } from "../meta/meta.common.js";
7
5
  import { metaRename } from "../meta/meta.names.js";
8
6
  import { relative } from "node:path";
9
7
  import { VSCodeWorkspace } from "../vscode/VSCodeWorkspace.js";
8
+ import { MetaFileType, MetaMainType, metaPropertyOptionsMap, } from "@mxpicture/gcp-functions-common/meta";
10
9
  export const createExtractors = (filePaths) => createSourceFiles(filePaths).map((f) => new Extractor(f.filePath, f.checker, f.sourceFile));
11
10
  export const extract = (extractors) => {
12
11
  const results = [];
@@ -1,8 +1,7 @@
1
- import { MetaFileExtension, MetaFileType } from "../meta/meta.enum.js";
2
- import { TargetType } from "../meta/meta.common.js";
3
1
  import { MetaMainData } from "../meta/meta.main.js";
4
- import { MetaImport, MetaNames } from "../meta/meta.types.js";
5
2
  import { Collector } from "../common/Collector.js";
3
+ import { MetaImport, MetaNames } from "@mxpicture/gcp-functions-common/types";
4
+ import { MetaFileType, MetaFileExtension, MetaTargetType } from "@mxpicture/gcp-functions-common/meta";
6
5
  export interface GeneratorBase {
7
6
  imports: MetaImport[];
8
7
  code: string[];
@@ -21,13 +20,13 @@ export declare const importsToCode: (imports: MetaImport[]) => string[];
21
20
  export declare abstract class Generator {
22
21
  readonly type: MetaFileType;
23
22
  readonly ext: MetaFileExtension;
24
- readonly targetType: TargetType;
23
+ readonly targetType: MetaTargetType;
25
24
  readonly collector: Collector;
26
25
  readonly useAdditionalImports: boolean;
27
- constructor(type: MetaFileType, ext: MetaFileExtension, targetType: TargetType, collector: Collector, useAdditionalImports?: boolean);
26
+ constructor(type: MetaFileType, ext: MetaFileExtension, targetType: MetaTargetType, collector: Collector, useAdditionalImports?: boolean);
28
27
  run(interfaceData: MetaMainData[]): GeneratorResultFile[];
29
28
  static write(files: GeneratorResultFile[]): Promise<void>;
30
- resolveImport(targetType: TargetType, fileType: MetaFileType): string;
29
+ resolveImport(targetType: MetaTargetType, fileType: MetaFileType): string;
31
30
  importCommon(fileType: MetaFileType): string;
32
31
  importFrontend(fileType: MetaFileType): string;
33
32
  importBackend(fileType: MetaFileType): string;
@@ -1,9 +1,9 @@
1
1
  import { basename, dirname } from "node:path";
2
- import { MetaFileExtension } from "../meta/meta.enum.js";
3
- import { formatCode, formatJson, TargetType, toFilename, } from "../meta/meta.common.js";
2
+ import { formatCode, formatJson, toFilename } from "../meta/meta.common.js";
4
3
  import { mkdir, writeFile } from "node:fs/promises";
5
4
  import { metaBackendNames, metaBasename, metaFrontendNames, metaNames, } from "../meta/meta.names.js";
6
5
  import { directories } from "../common/Directories.js";
6
+ import { MetaFileExtension, MetaTargetType, } from "@mxpicture/gcp-functions-common/meta";
7
7
  export const importsToCode = (imports) => {
8
8
  const code = [];
9
9
  for (const imp of imports)
@@ -48,9 +48,9 @@ export class Generator {
48
48
  };
49
49
  }
50
50
  const extrName = metaBasename(data.templateName);
51
- const names = this.targetType === TargetType.backend
51
+ const names = this.targetType === MetaTargetType.backend
52
52
  ? metaBackendNames(extrName)
53
- : this.targetType === TargetType.frontend
53
+ : this.targetType === MetaTargetType.frontend
54
54
  ? metaFrontendNames(extrName)
55
55
  : metaNames(extrName);
56
56
  this.collector.add(names.basename, this.targetType, { names });
@@ -75,9 +75,9 @@ export class Generator {
75
75
  promises.push((async () => {
76
76
  let code;
77
77
  if (file.ext === MetaFileExtension.ts)
78
- code = await formatCode(preCode);
78
+ code = formatCode(preCode);
79
79
  else if (file.ext === MetaFileExtension.json)
80
- code = await formatJson(preCode);
80
+ code = formatJson(preCode);
81
81
  else
82
82
  code = preCode;
83
83
  await mkdir(dirname(file.targetFilePath), { recursive: true });
@@ -90,13 +90,13 @@ export class Generator {
90
90
  return directories.resolveImport({ targetType, fileType }, { targetType: this.targetType, fileType: this.type });
91
91
  }
92
92
  importCommon(fileType) {
93
- return this.resolveImport(TargetType.common, fileType);
93
+ return this.resolveImport(MetaTargetType.common, fileType);
94
94
  }
95
95
  importFrontend(fileType) {
96
- return this.resolveImport(TargetType.frontend, fileType);
96
+ return this.resolveImport(MetaTargetType.frontend, fileType);
97
97
  }
98
98
  importBackend(fileType) {
99
- return this.resolveImport(TargetType.backend, fileType);
99
+ return this.resolveImport(MetaTargetType.backend, fileType);
100
100
  }
101
101
  addCode(res, code) {
102
102
  if (res.code.length > 0)
@@ -1,5 +1,5 @@
1
+ import { MetaNames } from "@mxpicture/gcp-functions-common/types";
1
2
  import { MetaMainData } from "../meta/meta.main.js";
2
- import { MetaNames } from "../meta/meta.types.js";
3
3
  import { Generator, GeneratorCode } from "./Generator.js";
4
4
  export declare class GeneratorAnnotations extends Generator {
5
5
  constructor();
@@ -1,22 +1,58 @@
1
+ import { MetaFileType, MetaFileExtension, MetaTargetType, } from "@mxpicture/gcp-functions-common/meta";
2
+ import { stripAnnotationsHeader, } from "@mxpicture/gcp-functions-common/types";
1
3
  import { Collector } from "../common/Collector.js";
2
- import { TargetType } from "../meta/meta.common.js";
3
- import { MetaFileType, MetaFileExtension } from "../meta/meta.enum.js";
4
+ import { formatJson2Spaces } from "../meta/meta.common.js";
4
5
  import { Generator } from "./Generator.js";
6
+ const typeRegex = /\"type\": \"([a-zA-Z][a-zA-Z0-9]*)\"/;
7
+ const itemTypeRegex = /\"itemType\": \"([a-zA-Z][a-zA-Z0-9]*)\"/;
5
8
  export class GeneratorAnnotations extends Generator {
6
9
  constructor() {
7
- super(MetaFileType.annotations, MetaFileExtension.ts, TargetType.common, Collector.instance());
10
+ super(MetaFileType.annotations, MetaFileExtension.ts, MetaTargetType.common, Collector.instance());
8
11
  }
9
12
  runInterface(mainData, names) {
10
13
  const res = {
11
14
  code: [],
12
- imports: [],
15
+ imports: [
16
+ {
17
+ path: "@mxpicture/gcp-functions-common/types",
18
+ props: ["AnnotationsHeader"],
19
+ isType: true,
20
+ },
21
+ {
22
+ path: "@mxpicture/gcp-functions-common/meta",
23
+ props: ["MetaPropertyType"],
24
+ isType: false,
25
+ },
26
+ ],
13
27
  name: mainData.templateName,
14
28
  };
15
- res.code.push(`export const ${names.annotations} = {`);
16
- res.code.push(` title: "${mainData.title}",`);
17
- res.code.push(` routes: [],`); // todo
18
- res.code.push(` properties: ${JSON.stringify(mainData.properties)},`);
19
- res.code.push("};");
29
+ const _header = {
30
+ ...mainData,
31
+ routes: Object.entries(mainData.routes).map(([name, params]) => ({
32
+ ...params,
33
+ name,
34
+ })),
35
+ properties: mainData.properties,
36
+ };
37
+ const header = stripAnnotationsHeader(_header);
38
+ const json = formatJson2Spaces(JSON.stringify(header));
39
+ const lines = json.split("\n");
40
+ res.code.push(`export const ${names.annotations}: AnnotationsHeader = `);
41
+ for (let line of lines) {
42
+ let match = null;
43
+ match = line.match(typeRegex);
44
+ while (match && match.length > 1) {
45
+ line = line.replace(typeRegex, `type: MetaPropertyType.${match[1]}`);
46
+ match = line.match(typeRegex);
47
+ }
48
+ match = line.match(itemTypeRegex);
49
+ while (match && match.length > 1) {
50
+ line = line.replace(itemTypeRegex, `itemType: MetaPropertyType.${match[1]}`);
51
+ match = line.match(itemTypeRegex);
52
+ }
53
+ res.code.push(line);
54
+ }
55
+ res.code.push(";");
20
56
  return res;
21
57
  }
22
58
  }
@@ -1,5 +1,5 @@
1
+ import type { MetaNames } from "@mxpicture/gcp-functions-common/types";
1
2
  import { MetaMainData, MetaRoutes } from "../meta/meta.main.js";
2
- import { MetaNames } from "../meta/meta.types.js";
3
3
  import { Generator, GeneratorCode } from "./Generator.js";
4
4
  export declare class GeneratorBackend extends Generator {
5
5
  constructor();
@@ -1,10 +1,10 @@
1
1
  import { Collector } from "../common/Collector.js";
2
- import { lowerFirstLetter, TargetType } from "../meta/meta.common.js";
3
- import { MetaFileType, MetaFileExtension, isCrudRoute, hasCrudRoute, } from "../meta/meta.enum.js";
2
+ import { lowerFirstLetter } from "../meta/meta.common.js";
4
3
  import { Generator } from "./Generator.js";
4
+ import { hasCrudRoute, isCrudRoute, MetaFileExtension, MetaFileType, MetaTargetType, } from "@mxpicture/gcp-functions-common/meta";
5
5
  export class GeneratorBackend extends Generator {
6
6
  constructor() {
7
- super(MetaFileType.backend, MetaFileExtension.ts, TargetType.backend, Collector.instance(), true);
7
+ super(MetaFileType.backend, MetaFileExtension.ts, MetaTargetType.backend, Collector.instance(), true);
8
8
  }
9
9
  runInterface(mainData, names) {
10
10
  if (Object.keys(mainData.routes).length === 0)
@@ -1,6 +1,6 @@
1
1
  import { MetaMainData } from "../meta/meta.main.js";
2
- import { MetaNames } from "../meta/meta.types.js";
3
2
  import { Generator, GeneratorCode } from "./Generator.js";
3
+ import { MetaNames } from "@mxpicture/gcp-functions-common/types";
4
4
  export declare class GeneratorDoc extends Generator {
5
5
  constructor();
6
6
  protected runInterface(mainData: MetaMainData, names: MetaNames): GeneratorCode | undefined;
@@ -1,11 +1,10 @@
1
+ import { MetaFileExtension, MetaFileType, MetaTargetType, } from "@mxpicture/gcp-functions-common/meta";
1
2
  import { Collector } from "../common/Collector.js";
2
- import { TargetType } from "../meta/meta.common.js";
3
- import { MetaFileType, MetaFileExtension } from "../meta/meta.enum.js";
4
3
  import { isMetaNameType, metaBasename } from "../meta/meta.names.js";
5
4
  import { Generator } from "./Generator.js";
6
5
  export class GeneratorDoc extends Generator {
7
6
  constructor() {
8
- super(MetaFileType.doc, MetaFileExtension.ts, TargetType.common, Collector.instance());
7
+ super(MetaFileType.doc, MetaFileExtension.ts, MetaTargetType.common, Collector.instance());
9
8
  }
10
9
  runInterface(mainData, names) {
11
10
  const res = {
@@ -1,6 +1,6 @@
1
1
  import { MetaMainData, MetaRoutes } from "../meta/meta.main.js";
2
- import { MetaNames } from "../meta/meta.types.js";
3
2
  import { Generator, GeneratorCode } from "./Generator.js";
3
+ import { MetaNames } from "@mxpicture/gcp-functions-common/types";
4
4
  export declare class GeneratorFrontend extends Generator {
5
5
  constructor();
6
6
  protected runInterface(mainData: MetaMainData, names: MetaNames): GeneratorCode | undefined;
@@ -1,10 +1,10 @@
1
+ import { hasCrudRoute, isCrudRoute, MetaFileExtension, MetaFileType, MetaTargetType, } from "@mxpicture/gcp-functions-common/meta";
1
2
  import { Collector } from "../common/Collector.js";
2
- import { lowerFirstLetter, TargetType } from "../meta/meta.common.js";
3
- import { MetaFileType, MetaFileExtension, hasCrudRoute, isCrudRoute, } from "../meta/meta.enum.js";
3
+ import { lowerFirstLetter } from "../meta/meta.common.js";
4
4
  import { Generator } from "./Generator.js";
5
5
  export class GeneratorFrontend extends Generator {
6
6
  constructor() {
7
- super(MetaFileType.frontend, MetaFileExtension.ts, TargetType.frontend, Collector.instance(), true);
7
+ super(MetaFileType.frontend, MetaFileExtension.ts, MetaTargetType.frontend, Collector.instance(), true);
8
8
  }
9
9
  runInterface(mainData, names) {
10
10
  if (Object.keys(mainData.routes).length === 0)
@@ -1,6 +1,6 @@
1
1
  import { MetaMainData } from "../meta/meta.main.js";
2
- import { MetaNames } from "../meta/meta.types.js";
3
2
  import { Generator, GeneratorCode } from "./Generator.js";
3
+ import { MetaNames } from "@mxpicture/gcp-functions-common/types";
4
4
  export declare class GeneratorRoutes extends Generator {
5
5
  constructor();
6
6
  protected runInterface(mainData: MetaMainData, names: MetaNames): GeneratorCode | undefined;
@@ -1,10 +1,9 @@
1
+ import { MetaFileExtension, MetaFileType, MetaTargetType, } from "@mxpicture/gcp-functions-common/meta";
1
2
  import { Collector } from "../common/Collector.js";
2
- import { TargetType } from "../meta/meta.common.js";
3
- import { MetaFileType, MetaFileExtension } from "../meta/meta.enum.js";
4
3
  import { Generator } from "./Generator.js";
5
4
  export class GeneratorRoutes extends Generator {
6
5
  constructor() {
7
- super(MetaFileType.routes, MetaFileExtension.ts, TargetType.common, Collector.instance());
6
+ super(MetaFileType.routes, MetaFileExtension.ts, MetaTargetType.common, Collector.instance());
8
7
  }
9
8
  runInterface(mainData, names) {
10
9
  if (Object.keys(mainData.routes).length === 0)
@@ -1,7 +1,7 @@
1
+ import { MetaPropertyData } from "@mxpicture/gcp-functions-common/meta";
1
2
  import { MetaMainData } from "../meta/meta.main.js";
2
- import { MetaPropertyData } from "../meta/meta.properties.js";
3
- import { MetaImport, MetaNames } from "../meta/meta.types.js";
4
3
  import { Generator, GeneratorCode } from "./Generator.js";
4
+ import { MetaImport, MetaNames } from "@mxpicture/gcp-functions-common/types";
5
5
  export declare class GeneratorZod extends Generator {
6
6
  protected zImports: Set<string>;
7
7
  constructor();
@@ -1,12 +1,10 @@
1
+ import { castMetaPropertyArray, castMetaPropertyBoolean, castMetaPropertyCreateTime, castMetaPropertyDate, castMetaPropertyKey, castMetaPropertyNumber, castMetaPropertyObject, castMetaPropertyString, castMetaPropertyUpdateTime, MetaFileExtension, MetaFileType, MetaTargetType, } from "@mxpicture/gcp-functions-common/meta";
1
2
  import { Collector } from "../common/Collector.js";
2
- import { TargetType } from "../meta/meta.common.js";
3
- import { MetaFileType, MetaFileExtension } from "../meta/meta.enum.js";
4
- import { castMetaPropertyArray, castMetaPropertyBoolean, castMetaPropertyCreateTime, castMetaPropertyDate, castMetaPropertyKey, castMetaPropertyNumber, castMetaPropertyObject, castMetaPropertyString, castMetaPropertyUpdateTime, } from "../meta/meta.properties.js";
5
3
  import { Generator } from "./Generator.js";
6
4
  export class GeneratorZod extends Generator {
7
5
  zImports = new Set();
8
6
  constructor() {
9
- super(MetaFileType.zod, MetaFileExtension.ts, TargetType.backend, Collector.instance());
7
+ super(MetaFileType.zod, MetaFileExtension.ts, MetaTargetType.backend, Collector.instance());
10
8
  }
11
9
  runInterface(mainData, names) {
12
10
  if (mainData.properties.length === 0)
@@ -1,9 +1,5 @@
1
- export * from "./meta.annotations.js";
2
1
  export * from "./meta.common.js";
3
2
  export * from "./meta.decorators.js";
4
- export * from "./meta.enum.js";
5
3
  export * from "./meta.imports.js";
6
4
  export * from "./meta.main.js";
7
5
  export * from "./meta.names.js";
8
- export * from "./meta.properties.js";
9
- export * from "./meta.types.js";
@@ -1,10 +1,6 @@
1
1
  // This file is auto-generated. Do not edit manually.
2
- export * from "./meta.annotations.js";
3
2
  export * from "./meta.common.js";
4
3
  export * from "./meta.decorators.js";
5
- export * from "./meta.enum.js";
6
4
  export * from "./meta.imports.js";
7
5
  export * from "./meta.main.js";
8
6
  export * from "./meta.names.js";
9
- export * from "./meta.properties.js";
10
- export * from "./meta.types.js";
@@ -1,12 +1,6 @@
1
1
  import ts from "typescript";
2
- import { MetaFileExtension, MetaFileType } from "./meta.enum.js";
3
2
  import type { PackageJson } from "type-fest";
4
- export declare enum TargetType {
5
- common = "common",
6
- frontend = "frontend",
7
- backend = "backend"
8
- }
9
- export declare const guardTargetType: (type: string | undefined) => TargetType | undefined;
3
+ import { MetaFileExtension, MetaFileType, MetaTargetType } from "@mxpicture/gcp-functions-common/meta";
10
4
  export interface ExtractFileParts {
11
5
  filename: string;
12
6
  type: MetaFileType;
@@ -20,7 +14,7 @@ export interface SourceFile {
20
14
  sourceFile: ts.SourceFile;
21
15
  }
22
16
  export interface TargetPackage {
23
- targetType: TargetType;
17
+ targetType: MetaTargetType;
24
18
  filePath: string;
25
19
  pkg: PackageJson;
26
20
  }
@@ -35,8 +29,9 @@ export declare const toFilename: (p: {
35
29
  generated?: boolean;
36
30
  ext?: MetaFileExtension;
37
31
  }) => string;
38
- export declare const formatCode: (...lines: string[]) => Promise<string>;
39
- export declare const formatJson: (...lines: string[]) => Promise<string>;
32
+ export declare const formatCode: (...lines: string[]) => string;
33
+ export declare const formatJson: (...lines: string[]) => string;
34
+ export declare const formatJson2Spaces: (...lines: string[]) => string;
40
35
  export declare const lowerFirstLetter: (val: string) => string;
41
36
  export declare const upperFirstLetter: (val: string) => string;
42
37
  export declare const createSourceFiles: (filePaths: string[]) => SourceFile[];
@@ -1,16 +1,7 @@
1
1
  import ts from "typescript";
2
- import { guardMetaFileExtension, guardMetaFileType, MetaFileExtension, MetaFileType, } from "./meta.enum.js";
3
2
  import { format } from "prettier";
4
3
  import { createHash } from "node:crypto";
5
- export var TargetType;
6
- (function (TargetType) {
7
- TargetType["common"] = "common";
8
- TargetType["frontend"] = "frontend";
9
- TargetType["backend"] = "backend";
10
- })(TargetType || (TargetType = {}));
11
- export const guardTargetType = (type) => type && Object.values(TargetType).filter((t) => t === type)
12
- ? type
13
- : undefined;
4
+ import { guardMetaFileExtension, guardMetaFileType, MetaFileExtension, MetaFileType, } from "@mxpicture/gcp-functions-common/meta";
14
5
  export const isTemplateFile = (filename) => isTsFile(filename, MetaFileType.template);
15
6
  export const isTsFile = (filename, type) => isAnyFile(filename, type, MetaFileExtension.ts);
16
7
  export const isAnyFile = (filename, type, ext) => {
@@ -54,8 +45,9 @@ export const toFilename = (p) => concatFileParts({
54
45
  ext: p.ext ?? MetaFileExtension.ts,
55
46
  generated: p.generated,
56
47
  });
57
- export const formatCode = async (...lines) => format(lines.join("\n"), { parser: "typescript" });
58
- export const formatJson = async (...lines) => format(lines.join("\n"), { parser: "json" });
48
+ export const formatCode = (...lines) => format(lines.join("\n"), { parser: "typescript" });
49
+ export const formatJson = (...lines) => format(lines.join("\n"), { parser: "json" });
50
+ export const formatJson2Spaces = (...lines) => format(lines.join("\n"), { parser: "json", tabWidth: 2, useTabs: false });
59
51
  // // export const toFilePath = (
60
52
  // // filePath: string,
61
53
  // // type: MetaFileType,
@@ -1,6 +1,7 @@
1
- import { MetaPropertyDecorator } from "./meta.properties.js";
2
- import type { MetaInterfaceOptions, MetaNumberOptions, MetaStringOptions, MetaArrayOptions, MetaObjectOptions, MetaDateOptions, MetaBooleanOptions, WithoutType, MetaKeyOptions, MetaCreateTimeOptions, MetaUpdateTimeOptions, MetaMainInterfaceOptions } from "./meta.types.js";
1
+ import type { WithoutType } from "@mxpicture/gcp-functions-common/types";
3
2
  import { MetaMainDecorator } from "./meta.main.js";
3
+ import { MetaPropertyDecorator } from "@mxpicture/gcp-functions-common/meta";
4
+ import { MetaInterfaceOptions, MetaMainInterfaceOptions, MetaKeyOptions, MetaCreateTimeOptions, MetaUpdateTimeOptions, MetaNumberOptions, MetaStringOptions, MetaArrayOptions, MetaObjectOptions, MetaDateOptions, MetaBooleanOptions } from "@mxpicture/gcp-functions-common/types";
4
5
  export declare const MetaInterface: (options: WithoutType<MetaInterfaceOptions>, decoratorType?: MetaMainDecorator.MetaInterface) => <T extends {
5
6
  new (...args: any[]): {};
6
7
  }>(constructor: T) => T;
@@ -1,8 +1,5 @@
1
- /* eslint-disable @typescript-eslint/no-unused-vars */
2
- /* eslint-disable @typescript-eslint/no-empty-object-type */
3
- /* eslint-disable @typescript-eslint/no-explicit-any */
4
- import { MetaPropertyDecorator } from "./meta.properties.js";
5
1
  import { MetaMainDecorator } from "./meta.main.js";
2
+ import { MetaPropertyDecorator } from "@mxpicture/gcp-functions-common/meta";
6
3
  // after adding new decorator add it to MetaPropDecorator too
7
4
  export const MetaInterface = (options, decoratorType = MetaMainDecorator.MetaInterface) => (constructor) => {
8
5
  return constructor;
@@ -1,5 +1,5 @@
1
1
  import ts from "typescript";
2
- import { MetaImport } from "./meta.types.js";
2
+ import { MetaImport } from "@mxpicture/gcp-functions-common/types";
3
3
  export interface ExtractedImport {
4
4
  module: string;
5
5
  defaultImport?: string;
@@ -1,6 +1,6 @@
1
- import { MetaMainType } from "./meta.enum.js";
2
- import { MetaPropertyData } from "./meta.properties.js";
3
- import { MetaImport, MetaInterfaceOptions, MetaMainBaseOptions, MetaMainInterfaceOptions, MetaRouteParams, WithoutBase } from "./meta.types.js";
1
+ import { MetaMainType, MetaPropertyData } from "@mxpicture/gcp-functions-common/meta";
2
+ import { MetaInterfaceOptions, MetaMainInterfaceOptions, WithoutBase, MetaRouteParams, MetaImport } from "@mxpicture/gcp-functions-common/types";
3
+ import type { MetaMainBaseOptions } from "@mxpicture/gcp-functions-common/types";
4
4
  export type MetaMainDecoratorMap<DEF = any> = Record<MetaMainDecorator, DEF>;
5
5
  export type WithMainDecoratorMap<T, R extends MetaMainDecoratorMap<T>> = R;
6
6
  export declare enum MetaMainDecorator {
@@ -1,4 +1,4 @@
1
- import { MetaMainType } from "./meta.enum.js";
1
+ import { MetaMainType, } from "@mxpicture/gcp-functions-common/meta";
2
2
  export var MetaMainDecorator;
3
3
  (function (MetaMainDecorator) {
4
4
  MetaMainDecorator["MetaInterface"] = "MetaInterface";
@@ -1,5 +1,5 @@
1
- import { MetaFileType } from "./meta.enum.js";
2
- import { MetaNames } from "./meta.types.js";
1
+ import { MetaFileType } from "@mxpicture/gcp-functions-common/meta";
2
+ import type { MetaNames } from "@mxpicture/gcp-functions-common/types";
3
3
  export declare const metaRename: (name: string, type: MetaFileType | string) => string;
4
4
  export declare const metaBasename: (name: string) => string;
5
5
  export declare const isMetaNameType: (name: string, type: MetaFileType) => boolean;
@@ -1,5 +1,5 @@
1
- import { lowerFirstLetter, TargetType, upperFirstLetter, } from "./meta.common.js";
2
- import { MetaFileType } from "./meta.enum.js";
1
+ import { MetaFileType, MetaTargetType, } from "@mxpicture/gcp-functions-common/meta";
2
+ import { lowerFirstLetter, upperFirstLetter } from "./meta.common.js";
3
3
  export const metaRename = (name, type) => `${metaBasename(name)}${upperFirstLetter(type)}`;
4
4
  export const metaBasename = (name) => {
5
5
  for (const type of Object.values(MetaFileType)) {
@@ -11,7 +11,7 @@ export const metaBasename = (name) => {
11
11
  export const isMetaNameType = (name, type) => name.endsWith(upperFirstLetter(type));
12
12
  export const metaNames = (basename) => ({
13
13
  basename,
14
- targetType: TargetType.common,
14
+ targetType: MetaTargetType.common,
15
15
  template: metaRename(basename, MetaFileType.template),
16
16
  doc: metaRename(basename, MetaFileType.doc),
17
17
  routes: metaRename(basename, MetaFileType.routes),
@@ -24,13 +24,13 @@ export const metaNames = (basename) => ({
24
24
  });
25
25
  export const metaFrontendNames = (basename) => ({
26
26
  ...metaNames(basename),
27
- targetType: TargetType.frontend,
27
+ targetType: MetaTargetType.frontend,
28
28
  api: metaRename(basename, "feApi"),
29
29
  func: metaRename(basename, "feFunction"),
30
30
  });
31
31
  export const metaBackendNames = (basename) => ({
32
32
  ...metaNames(basename),
33
- targetType: TargetType.frontend,
33
+ targetType: MetaTargetType.frontend,
34
34
  api: metaRename(basename, "beApi"),
35
35
  func: metaRename(basename, "beFunction"),
36
36
  });
@@ -20,7 +20,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
20
20
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
21
21
  };
22
22
  import { MetaArray, MetaCreateTime, MetaDate, MetaInterface, MetaKey, MetaMainInterface, MetaNumber, MetaObject, MetaString, MetaUpdateTime, } from "../meta/meta.decorators.js";
23
- import { MetaPropertyType } from "../meta/meta.enum.js";
23
+ import { MetaPropertyType } from "@mxpicture/gcp-functions-common/meta";
24
24
  let MedicationPlanTimesTemplate = class MedicationPlanTimesTemplate {
25
25
  morning;
26
26
  noon;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mxpicture/gcp-functions-tools",
3
- "version": "0.1.67",
3
+ "version": "0.1.69",
4
4
  "description": "Tools for google cloud functions",
5
5
  "type": "module",
6
6
  "author": "MXPicture",
@@ -33,7 +33,7 @@
33
33
  "access": "public"
34
34
  },
35
35
  "dependencies": {
36
- "@mxpicture/gcp-functions-common": "*",
36
+ "@mxpicture/gcp-functions-common": "workspace:*",
37
37
  "json5": "^1.0.2",
38
38
  "micromatch": "^4.0.8",
39
39
  "prettier": "^2.8.8",
@@ -42,12 +42,9 @@
42
42
  "zod": "^4.3.6"
43
43
  },
44
44
  "devDependencies": {
45
- "@eslint/js": "^9.39.2",
46
45
  "@types/micromatch": "^4.0.10",
47
46
  "@types/node": "^25.2.0",
48
47
  "@types/prettier": "^2.7.3",
49
- "@typescript-eslint/eslint-plugin": "^8.56.0",
50
- "@typescript-eslint/parser": "^8.56.0",
51
48
  "eslint": "^9.39.2",
52
49
  "execa": "^9.6.1",
53
50
  "typescript": "^5.9.3",
@@ -1,11 +0,0 @@
1
- import { MetaPropertyData } from "./meta.properties.js";
2
- export interface AnnotationsRoute {
3
- name: string;
4
- requestType: string;
5
- responseType: string;
6
- }
7
- export interface AnnotationsHeader {
8
- title: string;
9
- properties: MetaPropertyData[];
10
- routes: AnnotationsRoute[];
11
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,87 +0,0 @@
1
- export declare enum MetaFileType {
2
- doc = "doc",
3
- template = "template",
4
- routes = "routes",
5
- backend = "backend",
6
- frontend = "frontend",
7
- zod = "zod",
8
- annotations = "annotations"
9
- }
10
- export declare const guardMetaFileType: (type: string | undefined) => MetaFileType | undefined;
11
- export declare enum MetaFileExtension {
12
- ts = "ts",
13
- json = "json"
14
- }
15
- export declare const guardMetaFileExtension: (ext: string | undefined) => MetaFileExtension | undefined;
16
- export declare enum MetaPropertyType {
17
- string = "string",
18
- number = "number",
19
- boolean = "boolean",
20
- date = "date",
21
- array = "array",
22
- object = "object",
23
- key = "key",
24
- createTime = "createTime",
25
- updateTime = "updateTime"
26
- }
27
- export declare enum MetaMainType {
28
- interface = "interface",
29
- mainInterface = "mainInterface"
30
- }
31
- export declare enum MetaPropertyArrayType {
32
- string = "string",
33
- number = "number",
34
- boolean = "boolean",
35
- date = "date",
36
- object = "object"
37
- }
38
- export declare enum MetaNumberFormat {
39
- int32 = "int32",
40
- uint32 = "uint32",
41
- float32 = "float32",
42
- float64 = "float64",
43
- safeint = "safeint"
44
- }
45
- export declare enum MetaStringFormat {
46
- email = "email",
47
- url = "url",
48
- emoji = "emoji",
49
- uuid = "uuid",
50
- guid = "guid",
51
- nanoid = "nanoid",
52
- cuid = "cuid",
53
- cuid2 = "cuid2",
54
- ulid = "ulid",
55
- xid = "xid",
56
- ksuid = "ksuid",
57
- datetime = "datetime",
58
- date = "date",
59
- time = "time",
60
- duration = "duration",
61
- ipv4 = "ipv4",
62
- ipv6 = "ipv6",
63
- cidrv4 = "cidrv4",
64
- cidrv6 = "cidrv6",
65
- base64 = "base64",
66
- base64url = "base64url",
67
- json_string = "json_string",
68
- e164 = "e164",
69
- lowercase = "lowercase",
70
- uppercase = "uppercase",
71
- regex = "regex",
72
- jwt = "jwt",
73
- starts_with = "starts_with",
74
- ends_with = "ends_with",
75
- includes = "includes"
76
- }
77
- export declare enum CrudRouteName {
78
- create = "create",
79
- update = "update",
80
- delete = "delete",
81
- get = "get",
82
- query = "query",
83
- count = "count",
84
- exists = "exists"
85
- }
86
- export declare const isCrudRoute: (routeName: string) => boolean;
87
- export declare const hasCrudRoute: (routeNames: string[]) => boolean;
@@ -1,99 +0,0 @@
1
- export var MetaFileType;
2
- (function (MetaFileType) {
3
- MetaFileType["doc"] = "doc";
4
- MetaFileType["template"] = "template";
5
- MetaFileType["routes"] = "routes";
6
- MetaFileType["backend"] = "backend";
7
- MetaFileType["frontend"] = "frontend";
8
- MetaFileType["zod"] = "zod";
9
- MetaFileType["annotations"] = "annotations";
10
- })(MetaFileType || (MetaFileType = {}));
11
- export const guardMetaFileType = (type) => type && Object.values(MetaFileType).filter((t) => t === type)
12
- ? type
13
- : undefined;
14
- export var MetaFileExtension;
15
- (function (MetaFileExtension) {
16
- MetaFileExtension["ts"] = "ts";
17
- MetaFileExtension["json"] = "json";
18
- })(MetaFileExtension || (MetaFileExtension = {}));
19
- export const guardMetaFileExtension = (ext) => ext && Object.values(MetaFileExtension).filter((e) => e === ext)
20
- ? ext
21
- : undefined;
22
- export var MetaPropertyType;
23
- (function (MetaPropertyType) {
24
- MetaPropertyType["string"] = "string";
25
- MetaPropertyType["number"] = "number";
26
- MetaPropertyType["boolean"] = "boolean";
27
- MetaPropertyType["date"] = "date";
28
- MetaPropertyType["array"] = "array";
29
- MetaPropertyType["object"] = "object";
30
- MetaPropertyType["key"] = "key";
31
- MetaPropertyType["createTime"] = "createTime";
32
- MetaPropertyType["updateTime"] = "updateTime";
33
- })(MetaPropertyType || (MetaPropertyType = {}));
34
- export var MetaMainType;
35
- (function (MetaMainType) {
36
- MetaMainType["interface"] = "interface";
37
- MetaMainType["mainInterface"] = "mainInterface";
38
- })(MetaMainType || (MetaMainType = {}));
39
- export var MetaPropertyArrayType;
40
- (function (MetaPropertyArrayType) {
41
- MetaPropertyArrayType["string"] = "string";
42
- MetaPropertyArrayType["number"] = "number";
43
- MetaPropertyArrayType["boolean"] = "boolean";
44
- MetaPropertyArrayType["date"] = "date";
45
- MetaPropertyArrayType["object"] = "object";
46
- })(MetaPropertyArrayType || (MetaPropertyArrayType = {}));
47
- export var MetaNumberFormat;
48
- (function (MetaNumberFormat) {
49
- MetaNumberFormat["int32"] = "int32";
50
- MetaNumberFormat["uint32"] = "uint32";
51
- MetaNumberFormat["float32"] = "float32";
52
- MetaNumberFormat["float64"] = "float64";
53
- MetaNumberFormat["safeint"] = "safeint";
54
- })(MetaNumberFormat || (MetaNumberFormat = {}));
55
- export var MetaStringFormat;
56
- (function (MetaStringFormat) {
57
- MetaStringFormat["email"] = "email";
58
- MetaStringFormat["url"] = "url";
59
- MetaStringFormat["emoji"] = "emoji";
60
- MetaStringFormat["uuid"] = "uuid";
61
- MetaStringFormat["guid"] = "guid";
62
- MetaStringFormat["nanoid"] = "nanoid";
63
- MetaStringFormat["cuid"] = "cuid";
64
- MetaStringFormat["cuid2"] = "cuid2";
65
- MetaStringFormat["ulid"] = "ulid";
66
- MetaStringFormat["xid"] = "xid";
67
- MetaStringFormat["ksuid"] = "ksuid";
68
- MetaStringFormat["datetime"] = "datetime";
69
- MetaStringFormat["date"] = "date";
70
- MetaStringFormat["time"] = "time";
71
- MetaStringFormat["duration"] = "duration";
72
- MetaStringFormat["ipv4"] = "ipv4";
73
- MetaStringFormat["ipv6"] = "ipv6";
74
- MetaStringFormat["cidrv4"] = "cidrv4";
75
- MetaStringFormat["cidrv6"] = "cidrv6";
76
- MetaStringFormat["base64"] = "base64";
77
- MetaStringFormat["base64url"] = "base64url";
78
- MetaStringFormat["json_string"] = "json_string";
79
- MetaStringFormat["e164"] = "e164";
80
- MetaStringFormat["lowercase"] = "lowercase";
81
- MetaStringFormat["uppercase"] = "uppercase";
82
- MetaStringFormat["regex"] = "regex";
83
- MetaStringFormat["jwt"] = "jwt";
84
- MetaStringFormat["starts_with"] = "starts_with";
85
- MetaStringFormat["ends_with"] = "ends_with";
86
- MetaStringFormat["includes"] = "includes";
87
- })(MetaStringFormat || (MetaStringFormat = {}));
88
- export var CrudRouteName;
89
- (function (CrudRouteName) {
90
- CrudRouteName["create"] = "create";
91
- CrudRouteName["update"] = "update";
92
- CrudRouteName["delete"] = "delete";
93
- CrudRouteName["get"] = "get";
94
- CrudRouteName["query"] = "query";
95
- CrudRouteName["count"] = "count";
96
- CrudRouteName["exists"] = "exists";
97
- })(CrudRouteName || (CrudRouteName = {}));
98
- export const isCrudRoute = (routeName) => !!Object.values(CrudRouteName).find((r) => r === routeName);
99
- export const hasCrudRoute = (routeNames) => !!routeNames.find((routeName) => isCrudRoute(routeName));
@@ -1,62 +0,0 @@
1
- import { MetaPropertyType } from "./meta.enum.js";
2
- import { MetaPropertyBaseOptions, WithoutBase, MetaKeyOptions, MetaCreateTimeOptions, MetaUpdateTimeOptions, MetaNumberOptions, MetaStringOptions, MetaArrayOptions, MetaObjectOptions, MetaDateOptions, MetaBooleanOptions } from "./meta.types.js";
3
- export type MetaPropertyDecoratorMap<DEF = any> = Record<MetaPropertyDecorator, DEF>;
4
- export type WithPropertyDecoratorMap<T, R extends MetaPropertyDecoratorMap<T>> = R;
5
- export declare enum MetaPropertyDecorator {
6
- MetaKey = "MetaKey",
7
- MetaCreateTime = "MetaCreateTime",
8
- MetaUpdateTime = "MetaUpdateTime",
9
- MetaNumber = "MetaNumber",
10
- MetaString = "MetaString",
11
- MetaArray = "MetaArray",
12
- MetaObject = "MetaObject",
13
- MetaDate = "MetaDate",
14
- MetaBoolean = "MetaBoolean"
15
- }
16
- export declare const metaPropertyOptionsMap: MetaPropertyOptionsMap;
17
- export type MetaPropertyOptionsMap = WithPropertyDecoratorMap<MetaPropertyType, {
18
- [MetaPropertyDecorator.MetaKey]: MetaPropertyType.key;
19
- [MetaPropertyDecorator.MetaCreateTime]: MetaPropertyType.createTime;
20
- [MetaPropertyDecorator.MetaUpdateTime]: MetaPropertyType.updateTime;
21
- [MetaPropertyDecorator.MetaNumber]: MetaPropertyType.number;
22
- [MetaPropertyDecorator.MetaString]: MetaPropertyType.string;
23
- [MetaPropertyDecorator.MetaArray]: MetaPropertyType.array;
24
- [MetaPropertyDecorator.MetaObject]: MetaPropertyType.object;
25
- [MetaPropertyDecorator.MetaDate]: MetaPropertyType.date;
26
- [MetaPropertyDecorator.MetaBoolean]: MetaPropertyType.boolean;
27
- }>;
28
- export type MetaPropertyOptionsBase = WithPropertyDecoratorMap<MetaPropertyBaseOptions, {
29
- [MetaPropertyDecorator.MetaKey]: MetaKeyOptions;
30
- [MetaPropertyDecorator.MetaCreateTime]: MetaCreateTimeOptions;
31
- [MetaPropertyDecorator.MetaUpdateTime]: MetaUpdateTimeOptions;
32
- [MetaPropertyDecorator.MetaNumber]: MetaNumberOptions;
33
- [MetaPropertyDecorator.MetaString]: MetaStringOptions;
34
- [MetaPropertyDecorator.MetaArray]: MetaArrayOptions;
35
- [MetaPropertyDecorator.MetaObject]: MetaObjectOptions;
36
- [MetaPropertyDecorator.MetaDate]: MetaDateOptions;
37
- [MetaPropertyDecorator.MetaBoolean]: MetaBooleanOptions;
38
- }>;
39
- export type MetaPropertyOptions = Partial<WithPropertyDecoratorMap<WithoutBase<MetaPropertyBaseOptions>, {
40
- [MetaPropertyDecorator.MetaKey]: WithoutBase<MetaPropertyOptionsBase[MetaPropertyDecorator.MetaKey]>;
41
- [MetaPropertyDecorator.MetaCreateTime]: WithoutBase<MetaPropertyOptionsBase[MetaPropertyDecorator.MetaCreateTime]>;
42
- [MetaPropertyDecorator.MetaUpdateTime]: WithoutBase<MetaPropertyOptionsBase[MetaPropertyDecorator.MetaUpdateTime]>;
43
- [MetaPropertyDecorator.MetaNumber]: WithoutBase<MetaPropertyOptionsBase[MetaPropertyDecorator.MetaNumber]>;
44
- [MetaPropertyDecorator.MetaString]: WithoutBase<MetaPropertyOptionsBase[MetaPropertyDecorator.MetaString]>;
45
- [MetaPropertyDecorator.MetaArray]: WithoutBase<MetaPropertyOptionsBase[MetaPropertyDecorator.MetaArray]>;
46
- [MetaPropertyDecorator.MetaObject]: WithoutBase<MetaPropertyOptionsBase[MetaPropertyDecorator.MetaObject]>;
47
- [MetaPropertyDecorator.MetaDate]: WithoutBase<MetaPropertyOptionsBase[MetaPropertyDecorator.MetaDate]>;
48
- [MetaPropertyDecorator.MetaBoolean]: WithoutBase<MetaPropertyOptionsBase[MetaPropertyDecorator.MetaBoolean]>;
49
- }>>;
50
- export interface MetaPropertyData extends MetaPropertyBaseOptions, MetaPropertyOptions {
51
- propertyKey: string;
52
- propertyType: string;
53
- }
54
- export declare const castMetaPropertyNumber: (prop: MetaPropertyData) => MetaNumberOptions | null;
55
- export declare const castMetaPropertyKey: (prop: MetaPropertyData) => MetaKeyOptions | null;
56
- export declare const castMetaPropertyCreateTime: (prop: MetaPropertyData) => MetaCreateTimeOptions | null;
57
- export declare const castMetaPropertyUpdateTime: (prop: MetaPropertyData) => MetaUpdateTimeOptions | null;
58
- export declare const castMetaPropertyString: (prop: MetaPropertyData) => MetaStringOptions | null;
59
- export declare const castMetaPropertyArray: (prop: MetaPropertyData) => MetaArrayOptions | null;
60
- export declare const castMetaPropertyObject: (prop: MetaPropertyData) => MetaObjectOptions | null;
61
- export declare const castMetaPropertyDate: (prop: MetaPropertyData) => MetaDateOptions | null;
62
- export declare const castMetaPropertyBoolean: (prop: MetaPropertyData) => MetaBooleanOptions | null;
@@ -1,37 +0,0 @@
1
- import { MetaPropertyType } from "./meta.enum.js";
2
- export var MetaPropertyDecorator;
3
- (function (MetaPropertyDecorator) {
4
- MetaPropertyDecorator["MetaKey"] = "MetaKey";
5
- MetaPropertyDecorator["MetaCreateTime"] = "MetaCreateTime";
6
- MetaPropertyDecorator["MetaUpdateTime"] = "MetaUpdateTime";
7
- MetaPropertyDecorator["MetaNumber"] = "MetaNumber";
8
- MetaPropertyDecorator["MetaString"] = "MetaString";
9
- MetaPropertyDecorator["MetaArray"] = "MetaArray";
10
- MetaPropertyDecorator["MetaObject"] = "MetaObject";
11
- MetaPropertyDecorator["MetaDate"] = "MetaDate";
12
- MetaPropertyDecorator["MetaBoolean"] = "MetaBoolean";
13
- })(MetaPropertyDecorator || (MetaPropertyDecorator = {}));
14
- export const metaPropertyOptionsMap = {
15
- [MetaPropertyDecorator.MetaKey]: MetaPropertyType.key,
16
- [MetaPropertyDecorator.MetaCreateTime]: MetaPropertyType.createTime,
17
- [MetaPropertyDecorator.MetaUpdateTime]: MetaPropertyType.updateTime,
18
- [MetaPropertyDecorator.MetaNumber]: MetaPropertyType.number,
19
- [MetaPropertyDecorator.MetaString]: MetaPropertyType.string,
20
- [MetaPropertyDecorator.MetaArray]: MetaPropertyType.array,
21
- [MetaPropertyDecorator.MetaObject]: MetaPropertyType.object,
22
- [MetaPropertyDecorator.MetaDate]: MetaPropertyType.date,
23
- [MetaPropertyDecorator.MetaBoolean]: MetaPropertyType.boolean,
24
- };
25
- export const castMetaPropertyNumber = (prop) => prop.type === MetaPropertyType.number ? prop : null;
26
- export const castMetaPropertyKey = (prop) => prop.type === MetaPropertyType.key ? prop : null;
27
- export const castMetaPropertyCreateTime = (prop) => prop.type === MetaPropertyType.createTime
28
- ? prop
29
- : null;
30
- export const castMetaPropertyUpdateTime = (prop) => prop.type === MetaPropertyType.updateTime
31
- ? prop
32
- : null;
33
- export const castMetaPropertyString = (prop) => prop.type === MetaPropertyType.string ? prop : null;
34
- export const castMetaPropertyArray = (prop) => prop.type === MetaPropertyType.array ? prop : null;
35
- export const castMetaPropertyObject = (prop) => prop.type === MetaPropertyType.object ? prop : null;
36
- export const castMetaPropertyDate = (prop) => prop.type === MetaPropertyType.date ? prop : null;
37
- export const castMetaPropertyBoolean = (prop) => prop.type === MetaPropertyType.boolean ? prop : null;
@@ -1,110 +0,0 @@
1
- /**
2
- * TypeScript decorators for generating Zod schemas from classes
3
- *
4
- * Example usage:
5
- *
6
- * @Interface({title: "Medication"})
7
- * export class MedicationDoc {
8
- * @PropString()
9
- * ingredient!: string;
10
- * @PropNumber({title: "Dosage mg", min: 0, max: 50})
11
- * dosageMg!: number;
12
- * tradeNames!: string[];
13
- * }
14
- */
15
- import { TargetType } from "./meta.common.js";
16
- import { MetaPropertyType, MetaNumberFormat, MetaStringFormat, MetaMainType } from "./meta.enum.js";
17
- export interface MetaRouteParams {
18
- requestType: string;
19
- responseType: string;
20
- }
21
- export interface MetaMainBaseOptions {
22
- type: MetaMainType;
23
- title: string;
24
- }
25
- export interface MetaInterfaceOptions extends MetaMainBaseOptions {
26
- type: MetaMainType.interface;
27
- }
28
- export interface MetaImport {
29
- props: string[];
30
- path: string;
31
- isType?: boolean;
32
- }
33
- export interface MetaMainInterfaceOptions extends MetaMainBaseOptions {
34
- type: MetaMainType.mainInterface;
35
- routes: Record<string, MetaRouteParams> | {
36
- crud?: boolean;
37
- };
38
- additionalImports?: MetaImport[];
39
- }
40
- export interface MetaPropertyBaseOptions {
41
- type: MetaPropertyType;
42
- title?: string;
43
- description?: string;
44
- optional?: boolean;
45
- }
46
- export type WithoutBase<T extends MetaPropertyBaseOptions | MetaMainBaseOptions> = Omit<T, "title" | "description" | "optional">;
47
- export type WithoutType<T extends MetaPropertyBaseOptions | MetaMainBaseOptions> = Omit<T, "type">;
48
- export interface MetaNumberOptions extends MetaPropertyBaseOptions {
49
- type: MetaPropertyType.number;
50
- min?: number;
51
- minInclusive?: boolean;
52
- max?: number;
53
- maxInclusive?: boolean;
54
- multipleOf?: number;
55
- format?: MetaNumberFormat;
56
- }
57
- export interface MetaKeyOptions extends MetaPropertyBaseOptions {
58
- type: MetaPropertyType.key;
59
- }
60
- export interface MetaCreateTimeOptions extends MetaPropertyBaseOptions {
61
- type: MetaPropertyType.createTime;
62
- }
63
- export interface MetaUpdateTimeOptions extends MetaPropertyBaseOptions {
64
- type: MetaPropertyType.updateTime;
65
- }
66
- export interface MetaStringOptions extends MetaPropertyBaseOptions {
67
- type: MetaPropertyType.string;
68
- minLength?: number;
69
- maxLength?: number;
70
- exactLength?: number;
71
- regex?: string;
72
- format?: MetaStringFormat | string;
73
- }
74
- export interface MetaArrayOptions extends MetaPropertyBaseOptions {
75
- type: MetaPropertyType.array;
76
- itemType?: MetaPropertyType;
77
- minLength?: number;
78
- maxLength?: number;
79
- exactLength?: number;
80
- }
81
- export interface MetaObjectOptions extends MetaPropertyBaseOptions {
82
- type: MetaPropertyType.object;
83
- }
84
- export interface MetaDateOptions extends MetaPropertyBaseOptions {
85
- type: MetaPropertyType.date;
86
- }
87
- export interface MetaBooleanOptions extends MetaPropertyBaseOptions {
88
- type: MetaPropertyType.boolean;
89
- }
90
- export type MetaNamesMap = Record<string, string>;
91
- export type WithMap<R extends MetaNamesMap> = R;
92
- export type MetaNamesNoTarget = WithMap<{
93
- basename: string;
94
- template: string;
95
- doc: string;
96
- routes: string;
97
- api: string;
98
- func: string;
99
- store: string;
100
- shape: string;
101
- schema: string;
102
- annotations: string;
103
- }>;
104
- export interface MetaNames extends MetaNamesNoTarget {
105
- targetType: TargetType;
106
- }
107
- export type MetaNamesFromMap<R extends MetaNamesNoTarget> = {
108
- [K in keyof R]: R[K];
109
- };
110
- export declare const metaNameProperties: (keyof MetaNamesNoTarget)[];
@@ -1,27 +0,0 @@
1
- /**
2
- * TypeScript decorators for generating Zod schemas from classes
3
- *
4
- * Example usage:
5
- *
6
- * @Interface({title: "Medication"})
7
- * export class MedicationDoc {
8
- * @PropString()
9
- * ingredient!: string;
10
- * @PropNumber({title: "Dosage mg", min: 0, max: 50})
11
- * dosageMg!: number;
12
- * tradeNames!: string[];
13
- * }
14
- */
15
- const metaNameDummy = {
16
- basename: "",
17
- template: "",
18
- doc: "",
19
- routes: "",
20
- api: "",
21
- func: "",
22
- store: "",
23
- shape: "",
24
- schema: "",
25
- annotations: "",
26
- };
27
- export const metaNameProperties = Object.keys(metaNameDummy);