@tsed/schema 7.83.4 → 7.84.0

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.
@@ -8,27 +8,13 @@ const getSpecType_js_1 = require("./getSpecType.js");
8
8
  const mapOpenSpec_js_1 = require("./mapOpenSpec.js");
9
9
  const mergeSpec_js_1 = require("./mergeSpec.js");
10
10
  const transformToOS2_js_1 = require("./transformToOS2.js");
11
- /* node_env:start */
12
- async function readSpec(path) {
13
- const { default: fs } = await import("fs-extra");
14
- if (fs.existsSync(path)) {
15
- try {
16
- return await fs.readJSON(path, { encoding: "utf8" });
17
- }
18
- catch (e) { }
19
- }
20
- /* istanbul ignore next */
21
- return {};
22
- }
23
- /* node_env:end */
24
11
  /**
25
12
  * Generate OpenAPI spec from multiple sources (models, files, conf)
26
13
  * @param tokens
27
14
  * @param options
28
15
  */
29
- async function generateSpec({ tokens, ...options }) {
30
- const { version = "1.0.0", acceptMimes, specPath, specVersion } = options;
31
- const fileSpec = /* node_env:start */ specPath ? await readSpec(specPath) : /* node_env:end */ {};
16
+ function generateSpec({ tokens, ...options }) {
17
+ const { version = "1.0.0", acceptMimes, fileSpec = {}, specVersion } = options;
32
18
  const defaultSpec = (0, mapOpenSpec_js_1.mapOpenSpec)((0, core_1.getValue)(options, "spec", {}), {
33
19
  fileSpec,
34
20
  version,
@@ -38,6 +24,11 @@ async function generateSpec({ tokens, ...options }) {
38
24
  const specType = (0, getSpecType_js_1.getSpecTypeFromSpec)(defaultSpec);
39
25
  let controllersSpec = (0, getSpec_js_1.getSpec)(tokens, options);
40
26
  const spec = (0, mergeSpec_js_1.mergeSpec)(defaultSpec, controllersSpec);
27
+ if (options.sortPaths) {
28
+ spec.paths = Object.fromEntries(Object.entries(spec.paths).sort(([k1], [k2]) => {
29
+ return k1.localeCompare(k2);
30
+ }));
31
+ }
41
32
  if (specType === SpecTypes_js_1.SpecTypes.SWAGGER) {
42
33
  return (0, transformToOS2_js_1.transformToOS2)(spec);
43
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generateSpec.js","sourceRoot":"","sources":["../../../src/utils/generateSpec.ts"],"names":[],"mappings":";;;AAAA,qCAAoC;AAEpC,yDAAiD;AACjD,6CAA8E;AAC9E,qDAAqD;AACrD,qDAA6C;AAC7C,iDAAyC;AACzC,2DAAmD;AAUnD,oBAAoB;AACpB,KAAK,UAAU,QAAQ,CAAC,IAAY;IAClC,MAAM,EAAC,OAAO,EAAE,EAAE,EAAC,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACvB,IAAI;YACF,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;SACpD;QAAC,OAAO,CAAC,EAAE,GAAE;KACf;IAED,0BAA0B;IAC1B,OAAO,EAAE,CAAC;AACZ,CAAC;AACD,kBAAkB;AAClB;;;;GAIG;AACI,KAAK,UAAU,YAAY,CAAC,EAAC,MAAM,EAAE,GAAG,OAAO,EAAsB;IAC1E,MAAM,EAAC,OAAO,GAAG,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAC,GAAG,OAAO,CAAC;IACxE,MAAM,QAAQ,GAAmC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAElI,MAAM,WAAW,GAAG,IAAA,4BAAW,EAAC,IAAA,eAAQ,EAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE;QAC7D,QAAQ;QACR,OAAO;QACP,WAAW;QACX,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAA,oCAAmB,EAAC,WAAW,CAAC,CAAC;IAElD,IAAI,eAAe,GAAQ,IAAA,oBAAO,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,IAAI,GAAQ,IAAA,wBAAS,EAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAE1D,IAAI,QAAQ,KAAK,wBAAS,CAAC,OAAO,EAAE;QAClC,OAAO,IAAA,kCAAc,EAAC,IAAI,CAAQ,CAAC;KACpC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AArBD,oCAqBC"}
1
+ {"version":3,"file":"generateSpec.js","sourceRoot":"","sources":["../../../src/utils/generateSpec.ts"],"names":[],"mappings":";;;AAAA,qCAAoC;AAEpC,yDAAiD;AACjD,6CAA8E;AAC9E,qDAAqD;AACrD,qDAA6C;AAC7C,iDAAyC;AACzC,2DAAmD;AAYnD;;;;GAIG;AACH,SAAgB,YAAY,CAAC,EAAC,MAAM,EAAE,GAAG,OAAO,EAAsB;IACpE,MAAM,EAAC,OAAO,GAAG,OAAO,EAAE,WAAW,EAAE,QAAQ,GAAG,EAAE,EAAE,WAAW,EAAC,GAAG,OAAO,CAAC;IAE7E,MAAM,WAAW,GAAG,IAAA,4BAAW,EAAC,IAAA,eAAQ,EAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE;QAC7D,QAAQ;QACR,OAAO;QACP,WAAW;QACX,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAA,oCAAmB,EAAC,WAAW,CAAC,CAAC;IAElD,IAAI,eAAe,GAAQ,IAAA,oBAAO,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,IAAA,wBAAS,EAAC,WAAW,EAAE,eAAe,CAA0B,CAAC;IAE9E,IAAI,OAAO,CAAC,SAAS,EAAE;QACrB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;YAC9E,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC,CAAC;KACL;IAED,IAAI,QAAQ,KAAK,wBAAS,CAAC,OAAO,EAAE;QAClC,OAAO,IAAA,kCAAc,EAAC,IAAI,CAAQ,CAAC;KACpC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AA1BD,oCA0BC"}
@@ -5,27 +5,13 @@ import { getSpecTypeFromSpec } from "./getSpecType.js";
5
5
  import { mapOpenSpec } from "./mapOpenSpec.js";
6
6
  import { mergeSpec } from "./mergeSpec.js";
7
7
  import { transformToOS2 } from "./transformToOS2.js";
8
- /* node_env:start */
9
- async function readSpec(path) {
10
- const { default: fs } = await import("fs-extra");
11
- if (fs.existsSync(path)) {
12
- try {
13
- return await fs.readJSON(path, { encoding: "utf8" });
14
- }
15
- catch (e) { }
16
- }
17
- /* istanbul ignore next */
18
- return {};
19
- }
20
- /* node_env:end */
21
8
  /**
22
9
  * Generate OpenAPI spec from multiple sources (models, files, conf)
23
10
  * @param tokens
24
11
  * @param options
25
12
  */
26
- export async function generateSpec({ tokens, ...options }) {
27
- const { version = "1.0.0", acceptMimes, specPath, specVersion } = options;
28
- const fileSpec = /* node_env:start */ specPath ? await readSpec(specPath) : /* node_env:end */ {};
13
+ export function generateSpec({ tokens, ...options }) {
14
+ const { version = "1.0.0", acceptMimes, fileSpec = {}, specVersion } = options;
29
15
  const defaultSpec = mapOpenSpec(getValue(options, "spec", {}), {
30
16
  fileSpec,
31
17
  version,
@@ -35,6 +21,11 @@ export async function generateSpec({ tokens, ...options }) {
35
21
  const specType = getSpecTypeFromSpec(defaultSpec);
36
22
  let controllersSpec = getSpec(tokens, options);
37
23
  const spec = mergeSpec(defaultSpec, controllersSpec);
24
+ if (options.sortPaths) {
25
+ spec.paths = Object.fromEntries(Object.entries(spec.paths).sort(([k1], [k2]) => {
26
+ return k1.localeCompare(k2);
27
+ }));
28
+ }
38
29
  if (specType === SpecTypes.SWAGGER) {
39
30
  return transformToOS2(spec);
40
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generateSpec.js","sourceRoot":"","sources":["../../../src/utils/generateSpec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAC,OAAO,EAA0C,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAC,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAUnD,oBAAoB;AACpB,KAAK,UAAU,QAAQ,CAAC,IAAY;IAClC,MAAM,EAAC,OAAO,EAAE,EAAE,EAAC,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACvB,IAAI;YACF,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;SACpD;QAAC,OAAO,CAAC,EAAE,GAAE;KACf;IAED,0BAA0B;IAC1B,OAAO,EAAE,CAAC;AACZ,CAAC;AACD,kBAAkB;AAClB;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAC,MAAM,EAAE,GAAG,OAAO,EAAsB;IAC1E,MAAM,EAAC,OAAO,GAAG,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAC,GAAG,OAAO,CAAC;IACxE,MAAM,QAAQ,GAAmC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAElI,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE;QAC7D,QAAQ;QACR,OAAO;QACP,WAAW;QACX,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAElD,IAAI,eAAe,GAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,IAAI,GAAQ,SAAS,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAE1D,IAAI,QAAQ,KAAK,SAAS,CAAC,OAAO,EAAE;QAClC,OAAO,cAAc,CAAC,IAAI,CAAQ,CAAC;KACpC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"generateSpec.js","sourceRoot":"","sources":["../../../src/utils/generateSpec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAC,OAAO,EAA0C,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAC,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAYnD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,EAAC,MAAM,EAAE,GAAG,OAAO,EAAsB;IACpE,MAAM,EAAC,OAAO,GAAG,OAAO,EAAE,WAAW,EAAE,QAAQ,GAAG,EAAE,EAAE,WAAW,EAAC,GAAG,OAAO,CAAC;IAE7E,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE;QAC7D,QAAQ;QACR,OAAO;QACP,WAAW;QACX,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAElD,IAAI,eAAe,GAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,EAAE,eAAe,CAA0B,CAAC;IAE9E,IAAI,OAAO,CAAC,SAAS,EAAE;QACrB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;YAC9E,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC,CAAC;KACL;IAED,IAAI,QAAQ,KAAK,SAAS,CAAC,OAAO,EAAE;QAClC,OAAO,cAAc,CAAC,IAAI,CAAQ,CAAC;KACpC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -4,13 +4,14 @@ export interface GenerateSpecOptions extends Omit<SpecSerializerOptions, "specTy
4
4
  tokens: JsonTokenOptions;
5
5
  version?: string;
6
6
  acceptMimes?: string;
7
- specPath?: string;
8
7
  specVersion?: string;
9
8
  spec?: any;
9
+ fileSpec?: any;
10
+ sortPaths?: boolean;
10
11
  }
11
12
  /**
12
13
  * Generate OpenAPI spec from multiple sources (models, files, conf)
13
14
  * @param tokens
14
15
  * @param options
15
16
  */
16
- export declare function generateSpec({ tokens, ...options }: GenerateSpecOptions): Promise<OpenSpec2 | OpenSpec3>;
17
+ export declare function generateSpec({ tokens, ...options }: GenerateSpecOptions): OpenSpec2 | OpenSpec3;
@@ -4,13 +4,14 @@ export interface GenerateSpecOptions extends Omit<SpecSerializerOptions, "specTy
4
4
  tokens: JsonTokenOptions;
5
5
  version?: string;
6
6
  acceptMimes?: string;
7
- specPath?: string;
8
7
  specVersion?: string;
9
8
  spec?: any;
9
+ fileSpec?: any;
10
+ sortPaths?: boolean;
10
11
  }
11
12
  /**
12
13
  * Generate OpenAPI spec from multiple sources (models, files, conf)
13
14
  * @param tokens
14
15
  * @param options
15
16
  */
16
- export declare function generateSpec({ tokens, ...options }: GenerateSpecOptions): Promise<OpenSpec2 | OpenSpec3>;
17
+ export declare function generateSpec({ tokens, ...options }: GenerateSpecOptions): OpenSpec2 | OpenSpec3;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@tsed/schema",
3
3
  "description": "JsonSchema module for Ts.ED Framework",
4
4
  "type": "commonjs",
5
- "version": "7.83.4",
5
+ "version": "7.84.0",
6
6
  "source": "./src/index.ts",
7
7
  "main": "./lib/cjs/index.js",
8
8
  "module": "./lib/esm/index.js",
@@ -37,7 +37,7 @@
37
37
  "tsed"
38
38
  ],
39
39
  "dependencies": {
40
- "@tsed/openspec": "7.83.4",
40
+ "@tsed/openspec": "7.84.0",
41
41
  "change-case": "^4.1.2",
42
42
  "fs-extra": "^11.2.0",
43
43
  "json-schema": "0.4.0",
@@ -47,10 +47,10 @@
47
47
  },
48
48
  "devDependencies": {
49
49
  "@apidevtools/swagger-parser": "10.1.0",
50
- "@tsed/barrels": "7.83.4",
51
- "@tsed/core": "7.83.4",
52
- "@tsed/openspec": "7.83.4",
53
- "@tsed/typescript": "7.83.4",
50
+ "@tsed/barrels": "7.84.0",
51
+ "@tsed/core": "7.84.0",
52
+ "@tsed/openspec": "7.84.0",
53
+ "@tsed/typescript": "7.84.0",
54
54
  "@types/fs-extra": "11.0.4",
55
55
  "@types/json-schema": "7.0.15",
56
56
  "@types/picomatch": "2.3.3",
@@ -61,8 +61,8 @@
61
61
  "vitest": "2.0.4"
62
62
  },
63
63
  "peerDependencies": {
64
- "@tsed/core": "7.83.4",
65
- "@tsed/openspec": "7.83.4"
64
+ "@tsed/core": "7.84.0",
65
+ "@tsed/openspec": "7.84.0"
66
66
  },
67
67
  "peerDependenciesMeta": {
68
68
  "@tsed/core": {