@decaf-ts/for-nest 0.2.30 → 0.2.31

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.
@@ -7,6 +7,30 @@ import { normalizeImport } from "@decaf-ts/core";
7
7
  import { InternalError } from "@decaf-ts/db-decorators";
8
8
  import { NestFactory } from "@nestjs/core";
9
9
  import { DocumentBuilder, SwaggerModule } from "@nestjs/swagger";
10
+ const defaultInputCandidates = [
11
+ "./lib/app.module.cjs",
12
+ "./lib/app.module.js",
13
+ "./src/app.module.ts",
14
+ ];
15
+ function defaultCandidateExists(candidate) {
16
+ return fs.existsSync(path.join(process.cwd(), candidate));
17
+ }
18
+ export function resolveInputPath(input, exists = defaultCandidateExists, candidates = defaultInputCandidates) {
19
+ if (input)
20
+ return input;
21
+ const found = candidates.find((candidate) => exists(candidate));
22
+ return found || "./src/app.module.ts";
23
+ }
24
+ export function buildOutputFilePath(params) {
25
+ const { outputDir, pkgName, name, fileName, appendVersion = false, version, } = params;
26
+ const baseDir = path.resolve(outputDir);
27
+ const defaultPkgName = pkgName?.includes("/") ? pkgName.split("/").pop() : pkgName;
28
+ const resolvedRaw = (fileName || name || defaultPkgName || "api").replace(/[\\/]/g, "_");
29
+ const trimmed = resolvedRaw.replace(/^[._]+/, "");
30
+ const resolvedName = trimmed || "api";
31
+ const suffix = appendVersion && version ? `-${version}` : "";
32
+ return path.join(baseDir, `${resolvedName}${suffix}.json`);
33
+ }
10
34
  async function bootApp(log, p) {
11
35
  log = log.for(bootApp);
12
36
  p = path.join(process.cwd(), p);
@@ -52,30 +76,39 @@ async function createSwagger(log, app, cfg) {
52
76
  const compileCommand = new Command()
53
77
  .name("export-api")
54
78
  .description("exports the api in json format")
55
- .option("--input <String>", "path to app module", "./src/app.module.ts")
79
+ .option("--input <String>", "path to app module (ts or compiled)")
56
80
  .option("--output <String>", "output folder for api definition file", "./")
57
81
  .option("--appendVersion <Boolean>", "if the version if to be appended to the json file name", false)
58
82
  .option("--title [String]", "title of the OpenApi spec. defaults to name in package")
59
83
  .option("--description [String]", "description of the OpenApi spec. defaults to description in package")
60
- .option("--name [String]", "file name (without json). defaults to name on package.json")
84
+ .option("--fileName [String]", "file name (without json). defaults to name on package.json (last segment after slash)")
61
85
  .action(async (options) => {
62
86
  const pkg = JSON.parse(fs.readFileSync(path.join(process.cwd(), "package.json"), "utf-8"));
63
87
  const version = pkg.version;
64
88
  // eslint-disable-next-line prefer-const
65
- let { title, name, description, output, input, appendVersion } = options;
89
+ let { title, name, fileName, description, output, input, appendVersion } = options;
66
90
  const log = logger.for("export-api");
67
91
  log.debug(`running with options: ${JSON.stringify(options)} for ${pkg.name} version ${version}`);
68
- description = description = description || pkg.description;
92
+ description = description || pkg.description;
69
93
  title = title || pkg.name;
70
- output = path.resolve(output);
94
+ input = resolveInputPath(input);
95
+ const baseOutputDir = path.resolve(output);
71
96
  try {
72
- fs.statfsSync(output);
97
+ fs.statfsSync(baseOutputDir);
73
98
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
74
99
  }
75
100
  catch (e) {
76
- fs.mkdirSync(output, { recursive: true });
101
+ fs.mkdirSync(baseOutputDir, { recursive: true });
77
102
  }
78
- output = path.resolve(path.join(output, (name || pkg.name) + (appendVersion ? `-${version}` : "") + ".json"));
103
+ const outputPath = buildOutputFilePath({
104
+ outputDir: baseOutputDir,
105
+ pkgName: pkg.name,
106
+ name,
107
+ fileName,
108
+ appendVersion,
109
+ version,
110
+ });
111
+ log.debug(`writing spec to file: ${outputPath}`);
79
112
  const app = await bootApp(log, input);
80
113
  const document = await createSwagger(log, app, {
81
114
  title,
@@ -83,7 +116,7 @@ const compileCommand = new Command()
83
116
  version,
84
117
  });
85
118
  try {
86
- fs.writeFileSync(output, JSON.stringify(document, null, 2), "utf8");
119
+ fs.writeFileSync(outputPath, JSON.stringify(document, null, 2), "utf8");
87
120
  }
88
121
  catch (e) {
89
122
  throw new InternalError(e);
@@ -1 +1 @@
1
- {"version":3,"file":"cli-module.js","sourceRoot":"","sources":["../../src/cli-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEjE,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,CAAS;IAC3C,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEvB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAChC,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,CAAC,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAC7B,GAAG,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;IAElD,IAAI,GAAqB,CAAC;IAE1B,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE;YACxC,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,CAAC,CAAU,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,GAAqB;IAC3D,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClD,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,GAAW,EACX,GAAqB,EACrB,GAA4D;IAE5D,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE;SACjC,QAAQ,CAAC,KAAK,CAAC;SACf,cAAc,CAAC,WAAW,CAAC;SAC3B,UAAU,CAAC,OAAO,CAAC;SACnB,KAAK,EAAE,CAAC;IAEX,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC7B,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3D,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAChC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE;KACjC,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,qBAAqB,CAAC;KACvE,MAAM,CAAC,mBAAmB,EAAE,uCAAuC,EAAE,IAAI,CAAC;KAC1E,MAAM,CACL,2BAA2B,EAC3B,wDAAwD,EACxD,KAAK,CACN;KACA,MAAM,CACL,kBAAkB,EAClB,wDAAwD,CACzD;KACA,MAAM,CACL,wBAAwB,EACxB,qEAAqE,CACtE;KACA,MAAM,CACL,iBAAiB,EACjB,4DAA4D,CAC7D;KACA,MAAM,CAAC,KAAK,EAAE,OAAY,EAAE,EAAE;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CACnE,CAAC;IAEF,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAE5B,wCAAwC;IACxC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IACzE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACrC,GAAG,CAAC,KAAK,CACP,yBAAyB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,IAAI,YAAY,OAAO,EAAE,CACtF,CAAC;IAEF,WAAW,GAAG,WAAW,GAAG,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC;IAC3D,KAAK,GAAG,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC;IAE1B,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACtB,6DAA6D;IAC/D,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,GAAG,IAAI,CAAC,OAAO,CACnB,IAAI,CAAC,IAAI,CACP,MAAM,EACN,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CACpE,CACF,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE;QAC7C,KAAK;QACL,WAAW;QACX,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,CAAC,CAAU,CAAC,CAAC;IACtC,CAAC;YAAS,CAAC;QACT,MAAM,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC1B,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,8DAA8D,CAAC,CAAC;AAE/E,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAEnC,MAAM,CAAC,OAAO,UAAU,IAAI;IAC1B,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"cli-module.js","sourceRoot":"","sources":["../../src/cli-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEjE,MAAM,sBAAsB,GAAG;IAC7B,sBAAsB;IACtB,qBAAqB;IACrB,qBAAqB;CACtB,CAAC;AAEF,SAAS,sBAAsB,CAAC,SAAiB;IAC/C,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,KAAc,EACd,SAAyC,sBAAsB,EAC/D,UAAU,GAAG,sBAAsB;IAEnC,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAChE,OAAO,KAAK,IAAI,qBAAqB,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAOnC;IACC,MAAM,EACJ,SAAS,EACT,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,aAAa,GAAG,KAAK,EACrB,OAAO,GACR,GAAG,MAAM,CAAC;IACX,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IACnF,MAAM,WAAW,GAAG,CAAC,QAAQ,IAAI,IAAI,IAAI,cAAc,IAAI,KAAK,CAAC,CAAC,OAAO,CACvE,QAAQ,EACR,GAAG,CACJ,CAAC;IACF,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,OAAO,IAAI,KAAK,CAAC;IACtC,MAAM,MAAM,GAAG,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,YAAY,GAAG,MAAM,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,CAAS;IAC3C,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEvB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAChC,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,CAAC,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAC7B,GAAG,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;IAElD,IAAI,GAAqB,CAAC;IAE1B,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE;YACxC,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,CAAC,CAAU,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,GAAqB;IAC3D,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClD,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,GAAW,EACX,GAAqB,EACrB,GAA4D;IAE5D,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE;SACjC,QAAQ,CAAC,KAAK,CAAC;SACf,cAAc,CAAC,WAAW,CAAC;SAC3B,UAAU,CAAC,OAAO,CAAC;SACnB,KAAK,EAAE,CAAC;IAEX,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC7B,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3D,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAChC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE;KACjC,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,kBAAkB,EAAE,qCAAqC,CAAC;KACjE,MAAM,CAAC,mBAAmB,EAAE,uCAAuC,EAAE,IAAI,CAAC;KAC1E,MAAM,CACL,2BAA2B,EAC3B,wDAAwD,EACxD,KAAK,CACN;KACA,MAAM,CACL,kBAAkB,EAClB,wDAAwD,CACzD;KACA,MAAM,CACL,wBAAwB,EACxB,qEAAqE,CACtE;KACA,MAAM,CACL,qBAAqB,EACrB,uFAAuF,CACxF;KACA,MAAM,CAAC,KAAK,EAAE,OAAY,EAAE,EAAE;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CACnE,CAAC;IAEF,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAE5B,wCAAwC;IACxC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GACtE,OAAO,CAAC;IACV,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACrC,GAAG,CAAC,KAAK,CACP,yBAAyB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,IAAI,YAAY,OAAO,EAAE,CACtF,CAAC;IAEF,WAAW,GAAG,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC;IAC7C,KAAK,GAAG,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC;IAE1B,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAEhC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC7B,6DAA6D;IAC/D,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,UAAU,GAAG,mBAAmB,CAAC;QACrC,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,IAAI;QACJ,QAAQ;QACR,aAAa;QACb,OAAO;KACR,CAAC,CAAC;IAEH,GAAG,CAAC,KAAK,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC;IAEjD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE;QAC7C,KAAK;QACL,WAAW;QACX,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,CAAC,CAAU,CAAC,CAAC;IACtC,CAAC;YAAS,CAAC;QACT,MAAM,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC1B,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,8DAA8D,CAAC,CAAC;AAE/E,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAEnC,MAAM,CAAC,OAAO,UAAU,IAAI;IAC1B,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,4 +1,25 @@
1
1
  import { OperationKeys } from "@decaf-ts/db-decorators";
2
2
  import { Constructor } from "@decaf-ts/decoration";
3
3
  import { Model } from "@decaf-ts/decorator-validation";
4
+ /**
5
+ * Builds a Nest/Swagger DTO class for the given model and CRUD operation.
6
+ *
7
+ * Rules:
8
+ * - Only CREATE and UPDATE (and their bulk variants) produce a DTO;
9
+ * all other operations return the original model class unchanged.
10
+ * - @generated() properties (createdAt, updatedAt, createdBy, updatedBy,
11
+ * uuid, version, @composed pks, …) are **never** exposed in any DTO.
12
+ * - The @pk() property:
13
+ * • UPDATE – always included.
14
+ * • CREATE – included only when the pk is NOT auto-generated
15
+ * (checked via Model.pkProps().generated AND Model.generated()).
16
+ * - Relation properties (@oneToOne, @oneToMany, …):
17
+ * • CREATE – nested as DtoFor(CREATE, RelatedModel).
18
+ * • UPDATE – union of DtoFor(UPDATE, RelatedModel) **or** the
19
+ * related model's primary-key type (string / integer),
20
+ * expressed as a Swagger oneOf.
21
+ *
22
+ * Metadata.properties() now returns ALL properties across the prototype chain,
23
+ * so DTO inheritance is no longer needed; every DTO is a flat class.
24
+ */
4
25
  export declare function DtoFor<M extends Model>(op: OperationKeys, model: Constructor<M>): Constructor<any>;
@@ -2,38 +2,31 @@ import { BulkCrudOperationKeys, InternalError, OperationKeys, } from "@decaf-ts/
2
2
  import { Metadata } from "@decaf-ts/decoration";
3
3
  import { ApiProperty } from "./../../overrides/decoration.js";
4
4
  import { Model, ValidationKeys } from "@decaf-ts/decorator-validation";
5
- import { PersistenceKeys, TransactionOperationKeys } from "@decaf-ts/core";
5
+ import { TransactionOperationKeys } from "@decaf-ts/core";
6
6
  import { toPascalCase } from "@decaf-ts/logging";
7
+ import { DECORATORS } from "./../../overrides/constants.js";
7
8
  const dtoCache = new Map();
8
- // export function toCache(){
9
- // const cacheableProps: Record<keyof M, any> = Metadata.get(
10
- // model.constructor as Constructor,
11
- // PTPKeys.CACHE
12
- // );
13
- // if (!cacheableProps)
14
- // throw new InternalError("No cacheable properties defined for this model.");
15
- // try {
16
- // const cacheData: Record<keyof M, any> = {} as any;
17
- // for (const key of Object.keys(cacheableProps) as (keyof M)[]) {
18
- // if (
19
- // (model[key] as any) instanceof Model &&
20
- // (model[key] as ICacheable).toCache
21
- // ) {
22
- // cacheData[key] = (model[key] as ICacheable).toCache();
23
- // } else if (
24
- // Array.isArray(model[key]) &&
25
- // model[key].length &&
26
- // model[key].every(
27
- // (m) => m instanceof Model && (m as unknown as ICacheable).toCache
28
- // )
29
- // ) {
30
- // cacheData[key] = (model[key] as unknown as ICacheable[]).map((m) =>
31
- // m.toCache()
32
- // );
33
- // } else cacheData[key] = model[key];
34
- // }
35
- // return (stringify ? JSON.stringify(cacheData) : cacheData) as any;
36
- // }
9
+ /**
10
+ * Builds a Nest/Swagger DTO class for the given model and CRUD operation.
11
+ *
12
+ * Rules:
13
+ * - Only CREATE and UPDATE (and their bulk variants) produce a DTO;
14
+ * all other operations return the original model class unchanged.
15
+ * - @generated() properties (createdAt, updatedAt, createdBy, updatedBy,
16
+ * uuid, version, @composed pks, …) are **never** exposed in any DTO.
17
+ * - The @pk() property:
18
+ * • UPDATE always included.
19
+ * • CREATE – included only when the pk is NOT auto-generated
20
+ * (checked via Model.pkProps().generated AND Model.generated()).
21
+ * - Relation properties (@oneToOne, @oneToMany, ):
22
+ * • CREATE – nested as DtoFor(CREATE, RelatedModel).
23
+ * • UPDATE – union of DtoFor(UPDATE, RelatedModel) **or** the
24
+ * related model's primary-key type (string / integer),
25
+ * expressed as a Swagger oneOf.
26
+ *
27
+ * Metadata.properties() now returns ALL properties across the prototype chain,
28
+ * so DTO inheritance is no longer needed; every DTO is a flat class.
29
+ */
37
30
  export function DtoFor(op, model) {
38
31
  if (!TransactionOperationKeys.includes(op)) {
39
32
  return model;
@@ -42,36 +35,16 @@ export function DtoFor(op, model) {
42
35
  const cached = cache.get(model);
43
36
  if (cached)
44
37
  return cached;
45
- const ancestors = collectInheritance(model);
46
- for (const ancestor of ancestors) {
47
- if (Model.isModel(ancestor)) {
48
- DtoFor(op, ancestor);
49
- }
50
- }
51
- const parentModel = ancestors.at(-1);
52
- const parentDto = parentModel && Model.isModel(parentModel)
53
- ? cache.get(parentModel) || DtoFor(op, parentModel)
54
- : Model;
55
- class DynamicDTO extends parentDto {
38
+ const isUpdateOp = [
39
+ OperationKeys.UPDATE,
40
+ BulkCrudOperationKeys.UPDATE_ALL,
41
+ ].includes(op);
42
+ class DynamicDTO {
56
43
  }
57
44
  cache.set(model, DynamicDTO);
58
45
  Object.defineProperty(DynamicDTO, "name", {
59
46
  value: `${toPascalCase(model.name)}${toPascalCase(op)}DTO`,
60
47
  });
61
- const schemaProps = Metadata.properties(model) || [];
62
- const createdByMetadata = Metadata.get(model, PersistenceKeys.CREATED_BY);
63
- const updatedByMetadata = Metadata.get(model, PersistenceKeys.UPDATED_BY);
64
- const metadataOwnershipProps = [
65
- ...Object.keys(createdByMetadata || {}),
66
- ...Object.keys(updatedByMetadata || {}),
67
- ];
68
- const manualOwnershipProps = ["createdBy", "updatedBy"].filter((prop) => schemaProps.includes(prop));
69
- const ownershipProps = Array.from(new Set([...metadataOwnershipProps, ...manualOwnershipProps]));
70
- const props = Array.from(new Set([...schemaProps, ...ownershipProps]));
71
- const relations = collectRelations(model);
72
- const relationProps = new Set(relations);
73
- const generatedProps = props.filter((prop) => isGeneratedAcrossInheritance(model, prop));
74
- const exceptions = new Set([...generatedProps, ...ownershipProps]);
75
48
  const pkProp = (() => {
76
49
  try {
77
50
  return Model.pk(model);
@@ -80,19 +53,27 @@ export function DtoFor(op, model) {
80
53
  return undefined;
81
54
  }
82
55
  })();
83
- const isUpdateOp = [OperationKeys.UPDATE, BulkCrudOperationKeys.UPDATE_ALL].includes(op);
84
- const allowedProps = props.filter((prop) => {
85
- if (relationProps.has(prop))
56
+ const pkIsGenerated = pkProp
57
+ ? !!Model.pkProps(model)?.generated ||
58
+ isGeneratedAcrossInheritance(model, pkProp)
59
+ : false;
60
+ const allProps = Array.from(new Set(Metadata.properties(model) || []));
61
+ const relations = new Set(Model.relations(model) || []);
62
+ const scalarProps = allProps.filter((prop) => {
63
+ if (relations.has(prop))
86
64
  return false;
87
- if (exceptions.has(prop)) {
88
- return isUpdateOp && prop === pkProp;
65
+ if (prop === pkProp) {
66
+ return isUpdateOp || !pkIsGenerated;
89
67
  }
68
+ if (isGeneratedAcrossInheritance(model, prop))
69
+ return false;
90
70
  return true;
91
71
  });
92
- for (const prop of allowedProps) {
93
- const validation = Metadata.validationFor(model, prop);
72
+ for (const prop of scalarProps) {
73
+ const validation = getValidationAcrossInheritance(model, prop);
94
74
  const isRequired = !!validation?.[ValidationKeys.REQUIRED];
95
- const typeHint = Metadata.type(model, prop);
75
+ const typeHint = getTypeAcrossInheritance(model, prop) ??
76
+ Reflect.getMetadata("design:type", model.prototype, prop);
96
77
  const apiOptions = {
97
78
  required: isRequired,
98
79
  };
@@ -111,22 +92,6 @@ export function DtoFor(op, model) {
111
92
  configurable: true,
112
93
  });
113
94
  }
114
- function addRelation(relation, relationDto, isArray, isRequired) {
115
- const apiOptions = {
116
- type: relationDto,
117
- required: isRequired,
118
- isArray,
119
- };
120
- ApiProperty(apiOptions)(DynamicDTO.prototype, relation);
121
- Object.defineProperty(DynamicDTO.prototype, relation, {
122
- value: undefined,
123
- writable: true,
124
- enumerable: true,
125
- configurable: true,
126
- });
127
- Reflect.defineMetadata("design:type", isArray ? Array : relationDto, DynamicDTO.prototype, relation);
128
- }
129
- // Add processed relations back to the DTO
130
95
  for (const relation of relations) {
131
96
  const relationMeta = Metadata.relations(model, relation);
132
97
  if (!relationMeta) {
@@ -143,23 +108,64 @@ export function DtoFor(op, model) {
143
108
  continue;
144
109
  }
145
110
  const meta = Metadata.validationFor(model, relation);
111
+ const isArray = !!meta?.[ValidationKeys.LIST];
112
+ const isRequired = !!meta?.[ValidationKeys.REQUIRED];
146
113
  const relationDto = DtoFor(op, relationType);
147
- const isArray = !!meta[ValidationKeys.LIST];
148
- addRelation(relation, relationDto, isArray, !!meta[ValidationKeys.REQUIRED]);
114
+ if (isUpdateOp) {
115
+ addRelationUpdate(DynamicDTO, relation, relationType, relationDto, isArray, isRequired);
116
+ }
117
+ else {
118
+ addRelation(DynamicDTO, relation, relationDto, isArray, isRequired);
119
+ }
149
120
  }
150
121
  return DynamicDTO;
151
122
  }
152
- function collectInheritance(model) {
153
- const ancestors = [];
154
- let current = Object.getPrototypeOf(model);
155
- while (current && current !== Object && current !== Function) {
156
- ancestors.push(current);
157
- current = Object.getPrototypeOf(current);
123
+ function addRelation(DtoClass, relation, relationDto, isArray, isRequired) {
124
+ const apiOptions = {
125
+ type: relationDto,
126
+ required: isRequired,
127
+ isArray,
128
+ };
129
+ ApiProperty(apiOptions)(DtoClass.prototype, relation);
130
+ Reflect.defineMetadata("design:type", isArray ? Array : relationDto, DtoClass.prototype, relation);
131
+ Object.defineProperty(DtoClass.prototype, relation, {
132
+ value: undefined,
133
+ writable: true,
134
+ enumerable: true,
135
+ configurable: true,
136
+ });
137
+ }
138
+ function addRelationUpdate(DtoClass, relation, relationType, relationDto, isArray, isRequired) {
139
+ const extraModels = Reflect.getMetadata(DECORATORS.API_EXTRA_MODELS, DtoClass) || [];
140
+ if (!extraModels.includes(relationDto)) {
141
+ Reflect.defineMetadata(DECORATORS.API_EXTRA_MODELS, [...extraModels, relationDto], DtoClass);
158
142
  }
159
- return ancestors.reverse();
143
+ const dtoRef = `#/components/schemas/${relationDto.name}`;
144
+ const pkTypeName = getPkOpenApiType(relationType);
145
+ const oneOfItems = [{ $ref: dtoRef }, { type: pkTypeName }];
146
+ const apiOptions = isArray
147
+ ? { type: "array", required: isRequired, oneOf: oneOfItems }
148
+ : { type: Object, required: isRequired, oneOf: oneOfItems };
149
+ ApiProperty(apiOptions)(DtoClass.prototype, relation);
150
+ Reflect.defineMetadata("design:type", isArray ? Array : Object, DtoClass.prototype, relation);
151
+ Object.defineProperty(DtoClass.prototype, relation, {
152
+ value: undefined,
153
+ writable: true,
154
+ enumerable: true,
155
+ configurable: true,
156
+ });
160
157
  }
161
- function collectRelations(model) {
162
- return Model.relations(model) || [];
158
+ function getPkOpenApiType(relationType) {
159
+ try {
160
+ const pkPropsMetadata = Model.pkProps(relationType);
161
+ const pkType = pkPropsMetadata?.type;
162
+ if (pkType === Number || pkType === BigInt)
163
+ return "integer";
164
+ return "string";
165
+ }
166
+ catch {
167
+ return "string";
168
+ }
163
169
  }
164
170
  function isGeneratedAcrossInheritance(model, prop) {
165
171
  let current = model;
@@ -170,6 +176,26 @@ function isGeneratedAcrossInheritance(model, prop) {
170
176
  }
171
177
  return false;
172
178
  }
179
+ function getValidationAcrossInheritance(model, prop) {
180
+ let current = model;
181
+ while (current && current !== Object && current !== Function) {
182
+ const validation = Metadata.validationFor(current, prop);
183
+ if (validation)
184
+ return validation;
185
+ current = Object.getPrototypeOf(current);
186
+ }
187
+ return undefined;
188
+ }
189
+ function getTypeAcrossInheritance(model, prop) {
190
+ let current = model;
191
+ while (current && current !== Object && current !== Function) {
192
+ const type = Metadata.type(current, prop);
193
+ if (type)
194
+ return type;
195
+ current = Object.getPrototypeOf(current);
196
+ }
197
+ return undefined;
198
+ }
173
199
  function getDtoCache(op) {
174
200
  if (!dtoCache.has(op)) {
175
201
  dtoCache.set(op, new WeakMap());
@@ -1 +1 @@
1
- {"version":3,"file":"DtoBuilder.js","sourceRoot":"","sources":["../../../../src/factory/openapi/DtoBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DtoBuilder.js","sourceRoot":"","sources":["../../../../src/factory/openapi/DtoBuilder.ts"],"names":[],"mappings":"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"}
@@ -38,5 +38,5 @@ export * from "./events-module";
38
38
  * @constant
39
39
  * @type {string}
40
40
  */
41
- export declare const VERSION = "0.2.29";
41
+ export declare const VERSION = "0.2.30";
42
42
  export declare const PACKAGE_NAME = "@decaf-ts/for-nest";
package/lib/esm/index.js CHANGED
@@ -39,7 +39,7 @@ export * from "./events-module/index.js";
39
39
  * @constant
40
40
  * @type {string}
41
41
  */
42
- export const VERSION = "0.2.29";
42
+ export const VERSION = "0.2.30";
43
43
  export const PACKAGE_NAME = "@decaf-ts/for-nest";
44
44
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
45
45
  //# sourceMappingURL=index.js.map