@autobe/utils 0.29.2 → 0.30.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.
Files changed (48) hide show
  1. package/lib/AutoBeEscaper.d.ts +4 -0
  2. package/lib/AutoBeEscaper.js +85 -0
  3. package/lib/AutoBeEscaper.js.map +1 -0
  4. package/lib/StringUtil.d.ts +1 -0
  5. package/lib/StringUtil.js +15 -36
  6. package/lib/StringUtil.js.map +1 -1
  7. package/lib/aggregate/AutoBeProcessAggregateFactory.js +9 -0
  8. package/lib/aggregate/AutoBeProcessAggregateFactory.js.map +1 -1
  9. package/lib/index.d.ts +1 -0
  10. package/lib/index.js +1 -0
  11. package/lib/index.js.map +1 -1
  12. package/lib/interface/AutoBeOpenApiEndpointComparator.d.ts +1 -0
  13. package/lib/interface/AutoBeOpenApiEndpointComparator.js +4 -0
  14. package/lib/interface/AutoBeOpenApiEndpointComparator.js.map +1 -1
  15. package/lib/interface/AutoBeOpenApiTypeChecker.d.ts +14 -0
  16. package/lib/interface/AutoBeOpenApiTypeChecker.js +67 -0
  17. package/lib/interface/AutoBeOpenApiTypeChecker.js.map +1 -1
  18. package/lib/interface/invertOpenApiDocument.d.ts +1 -1
  19. package/lib/interface/invertOpenApiDocument.js +22 -7
  20. package/lib/interface/invertOpenApiDocument.js.map +1 -1
  21. package/lib/interface/missedOpenApiSchemas.js +3 -3
  22. package/lib/interface/missedOpenApiSchemas.js.map +1 -1
  23. package/lib/interface/revertOpenApiAccessor.js +2 -2
  24. package/lib/interface/revertOpenApiAccessor.js.map +1 -1
  25. package/lib/interface/transformOpenApiDocument.d.ts +2 -2
  26. package/lib/interface/transformOpenApiDocument.js +14 -11
  27. package/lib/interface/transformOpenApiDocument.js.map +1 -1
  28. package/lib/prisma/writePrismaApplication.d.ts +2 -2
  29. package/lib/prisma/writePrismaApplication.js +38 -29
  30. package/lib/prisma/writePrismaApplication.js.map +1 -1
  31. package/lib/test/validateTestExpression.js +3 -1
  32. package/lib/test/validateTestExpression.js.map +1 -1
  33. package/lib/test/validateTestStatement.js +3 -1
  34. package/lib/test/validateTestStatement.js.map +1 -1
  35. package/package.json +5 -5
  36. package/src/AutoBeEscaper.ts +83 -0
  37. package/src/StringUtil.ts +16 -41
  38. package/src/aggregate/AutoBeProcessAggregateFactory.ts +9 -0
  39. package/src/index.ts +1 -0
  40. package/src/interface/AutoBeOpenApiEndpointComparator.ts +7 -0
  41. package/src/interface/AutoBeOpenApiTypeChecker.ts +84 -0
  42. package/src/interface/invertOpenApiDocument.ts +21 -9
  43. package/src/interface/missedOpenApiSchemas.ts +1 -1
  44. package/src/interface/revertOpenApiAccessor.ts +2 -2
  45. package/src/interface/transformOpenApiDocument.ts +18 -15
  46. package/src/prisma/writePrismaApplication.ts +80 -63
  47. package/src/test/validateTestExpression.ts +7 -1
  48. package/src/test/validateTestStatement.ts +7 -1
@@ -1,18 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.transformOpenApiDocument = transformOpenApiDocument;
4
- const openapi_1 = require("@samchon/openapi");
4
+ const utils_1 = require("@typia/utils");
5
5
  const tstl_1 = require("tstl");
6
+ const StringUtil_1 = require("../StringUtil");
6
7
  const AutoBeOpenApiEndpointComparator_1 = require("./AutoBeOpenApiEndpointComparator");
7
- function transformOpenApiDocument(document) {
8
+ function transformOpenApiDocument(input) {
8
9
  var _a, _b;
9
10
  var _c;
10
11
  const dict = new tstl_1.HashMap(AutoBeOpenApiEndpointComparator_1.AutoBeOpenApiEndpointComparator.hashCode, AutoBeOpenApiEndpointComparator_1.AutoBeOpenApiEndpointComparator.equals);
11
12
  const paths = {};
12
- for (const op of document.operations) {
13
+ for (const op of input.operations) {
13
14
  dict.set(op, op.name);
14
15
  (_a = paths[_c = op.path]) !== null && _a !== void 0 ? _a : (paths[_c] = {});
15
- paths[op.path][op.method] = Object.assign({ summary: op.summary, description: op.description +
16
+ paths[op.path][op.method] = Object.assign({ summary: StringUtil_1.StringUtil.summary(op.description), description: op.description +
16
17
  (op.authorizationType !== null &&
17
18
  ((_b = op.responseBody) === null || _b === void 0 ? void 0 : _b.typeName.endsWith(".IAuthorized")) === true
18
19
  ? "\n\n@setHeader token.access Authorization"
@@ -20,8 +21,8 @@ function transformOpenApiDocument(document) {
20
21
  name: p.name,
21
22
  in: "path",
22
23
  schema: p.schema,
23
- description: p.description,
24
24
  required: true,
25
+ description: p.description,
25
26
  })), requestBody: op.requestBody
26
27
  ? {
27
28
  content: {
@@ -48,17 +49,19 @@ function transformOpenApiDocument(document) {
48
49
  },
49
50
  }
50
51
  : undefined }, {
52
+ "x-autobe-authorization-type": op.authorizationType,
53
+ "x-autobe-authorization-actor": op.authorizationActor,
51
54
  "x-autobe-prerequisites": op.prerequisites,
52
- "x-autobe-specification": op.specification,
53
55
  "x-samchon-accessor": op.accessor,
56
+ "x-autobe-specification": op.specification,
54
57
  });
55
58
  }
56
- const result = openapi_1.OpenApi.convert({
57
- openapi: "3.1.0",
59
+ const document = utils_1.OpenApiConverter.upgradeDocument({
60
+ openapi: "3.2.0",
58
61
  paths,
59
- components: document.components,
62
+ components: input.components,
60
63
  });
61
- const migrate = openapi_1.HttpMigration.application(result);
64
+ const migrate = utils_1.HttpMigration.application(document);
62
65
  migrate.routes.forEach((r) => {
63
66
  if (r.method === "head")
64
67
  return;
@@ -71,6 +74,6 @@ function transformOpenApiDocument(document) {
71
74
  r.accessor[r.accessor.length - 1] = name;
72
75
  r.operation()["x-samchon-accessor"] = r.accessor;
73
76
  });
74
- return result;
77
+ return document;
75
78
  }
76
79
  //# sourceMappingURL=transformOpenApiDocument.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transformOpenApiDocument.js","sourceRoot":"","sources":["../../src/interface/transformOpenApiDocument.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transformOpenApiDocument.js","sourceRoot":"","sources":["../../src/interface/transformOpenApiDocument.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { AutoBePrisma } from "@autobe/interface";
1
+ import { AutoBeDatabase } from "@autobe/interface";
2
2
  export declare function writePrismaApplication(props: {
3
3
  dbms: "postgres" | "sqlite";
4
- application: AutoBePrisma.IApplication;
4
+ application: AutoBeDatabase.IApplication;
5
5
  }): Record<string, string>;
@@ -117,6 +117,7 @@ function writeRelations(props) {
117
117
  .map((otherForeign) => ({
118
118
  modelName: otherModel.name,
119
119
  unique: otherForeign.unique,
120
+ oppositeName: otherForeign.relation.oppositeName,
120
121
  mappingName: otherForeign.relation.mappingName,
121
122
  }))))
122
123
  .flat(2);
@@ -126,25 +127,43 @@ function writeRelations(props) {
126
127
  return (props.model.uniqueIndexes.every((u) => u.fieldNames[0] !== f.name) &&
127
128
  props.model.plainIndexes.every((p) => p.fieldNames[0] !== f.name));
128
129
  });
129
- const contents = [
130
- props.model.foreignFields.map((foreign) => writeConstraint({
130
+ const print = (title, content) => {
131
+ if (content.length === 0)
132
+ return [];
133
+ return [
134
+ // title
135
+ "//----",
136
+ ...title.split("\n").map((l) => `// ${l}`),
137
+ "//----",
138
+ // main content
139
+ ...content,
140
+ ];
141
+ };
142
+ return ArrayUtil_1.ArrayUtil.paddle([
143
+ print(StringUtil_1.StringUtil.trim `
144
+ BELONGED RELATIONS,
145
+ - format: (propertyKey targetModel constraint)
146
+ `, props.model.foreignFields.map((foreign) => writeConstraint({
131
147
  dbms: props.dbms,
132
148
  model: props.model,
133
149
  foreign,
134
- })),
135
- hasRelationships.map((r) => {
136
- var _a;
150
+ }))),
151
+ print(StringUtil_1.StringUtil.trim `
152
+ HAS RELATIONS
153
+ - format: (propertyKey targetModel)
154
+ `, hasRelationships.map((r) => {
155
+ var _a, _b;
137
156
  return [
138
- (_a = r.mappingName) !== null && _a !== void 0 ? _a : r.modelName,
157
+ (_b = (_a = r.oppositeName) !== null && _a !== void 0 ? _a : r.mappingName) !== null && _b !== void 0 ? _b : r.modelName, // for legacy histories
139
158
  `${r.modelName}${r.unique ? "?" : "[]"}`,
140
159
  ...(r.mappingName ? [`@relation("${r.mappingName}")`] : []),
141
160
  ].join(" ");
142
- }),
143
- foreignIndexes.map((field) => writeForeignIndex({
144
- model: props.model,
145
- field,
146
161
  })),
147
- [
162
+ print("INDEXES", [
163
+ ...foreignIndexes.map((field) => writeForeignIndex({
164
+ model: props.model,
165
+ field,
166
+ })),
148
167
  ...props.model.uniqueIndexes.map((unique) => writeUniqueIndex({
149
168
  model: props.model,
150
169
  unique,
@@ -159,17 +178,8 @@ function writeRelations(props) {
159
178
  gin,
160
179
  }))
161
180
  : []),
162
- ],
163
- ];
164
- if (contents.every((c) => c.length === 0))
165
- return [];
166
- return [
167
- "//----",
168
- "// RELATIONS",
169
- "//----",
170
- // paddled content
171
- ...ArrayUtil_1.ArrayUtil.paddle(contents),
172
- ];
181
+ ]),
182
+ ]);
173
183
  }
174
184
  function writeConstraint(props) {
175
185
  // spellchecker:ignore-next-line
@@ -245,7 +255,6 @@ function writeComment(content, length) {
245
255
  .split("\n")
246
256
  .map((line) => line.trim())
247
257
  .map((line) => {
248
- // 77자에서 "/// " 4자를 뺀 73자가 실제 컨텐츠 최대 길이
249
258
  if (line.length <= length - 4)
250
259
  return [line];
251
260
  const words = line.split(" ");
@@ -309,13 +318,13 @@ const POSTGRES_PHYSICAL_TYPES = {
309
318
  };
310
319
  const POSTGRES_MAIN_FILE = StringUtil_1.StringUtil.trim `
311
320
  generator client {
312
- provider = "prisma-client-js"
313
- engineType = "client"
321
+ provider = "prisma-client"
314
322
  previewFeatures = ["postgresqlExtensions", "views"]
323
+ output = "../../src/prisma"
324
+ moduleFormat = "cjs"
315
325
  }
316
326
  datasource db {
317
327
  provider = "postgresql"
318
- url = env("DATABASE_URL")
319
328
  extensions = [pg_trgm]
320
329
  }
321
330
  generator markdown {
@@ -325,12 +334,12 @@ const POSTGRES_MAIN_FILE = StringUtil_1.StringUtil.trim `
325
334
  `;
326
335
  const SQLITE_MAIN_FILE = StringUtil_1.StringUtil.trim `
327
336
  generator client {
328
- provider = "prisma-client-js"
329
- engineType = "client"
337
+ provider = "prisma-client"
338
+ output = "../../src/prisma"
339
+ moduleFormat = "cjs"
330
340
  }
331
341
  datasource db {
332
342
  provider = "sqlite"
333
- url = "file:../db.sqlite"
334
343
  }
335
344
  generator markdown {
336
345
  provider = "prisma-markdown"
@@ -1 +1 @@
1
- {"version":3,"file":"writePrismaApplication.js","sourceRoot":"","sources":["../../src/prisma/writePrismaApplication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writePrismaApplication.js","sourceRoot":"","sources":["../../src/prisma/writePrismaApplication.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateTestExpression = void 0;
4
4
  const AutoBeTestExpressionValidator_1 = require("./AutoBeTestExpressionValidator");
5
- const validateTestExpression = (ctx, item, path) => AutoBeTestExpressionValidator_1.AutoBeTestExpressionValidator[item.type](ctx, item, path);
5
+ const validateTestExpression = (ctx, item, path) => AutoBeTestExpressionValidator_1.AutoBeTestExpressionValidator[item.type](ctx,
6
+ // biome-ignore lint: intended
7
+ item, path);
6
8
  exports.validateTestExpression = validateTestExpression;
7
9
  //# sourceMappingURL=validateTestExpression.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateTestExpression.js","sourceRoot":"","sources":["../../src/test/validateTestExpression.ts"],"names":[],"mappings":";;;AAEA,mFAAgF;AAGzE,MAAM,sBAAsB,GAAG,CACpC,GAA+B,EAC/B,IAA4B,EAC5B,IAAY,EACN,EAAE,CAAC,6DAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAW,EAAE,IAAI,CAAC,CAAC;AAJ/D,QAAA,sBAAsB,0BAIyC"}
1
+ {"version":3,"file":"validateTestExpression.js","sourceRoot":"","sources":["../../src/test/validateTestExpression.ts"],"names":[],"mappings":";;;AAEA,mFAAgF;AAGzE,MAAM,sBAAsB,GAAG,CACpC,GAA+B,EAC/B,IAA4B,EAC5B,IAAY,EACN,EAAE,CACR,6DAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CACtC,GAAG;AACH,8BAA8B;AAC9B,IAAW,EACX,IAAI,CACL,CAAC;AAVS,QAAA,sBAAsB,0BAU/B"}
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateTestStatement = void 0;
4
4
  const AutoBeTestStatementValidator_1 = require("./AutoBeTestStatementValidator");
5
- const validateTestStatement = (ctx, item, path) => AutoBeTestStatementValidator_1.AutoBeTestStatementValidator[item.type](ctx, item, path);
5
+ const validateTestStatement = (ctx, item, path) => AutoBeTestStatementValidator_1.AutoBeTestStatementValidator[item.type](ctx,
6
+ // biome-ignore lint: intended
7
+ item, path);
6
8
  exports.validateTestStatement = validateTestStatement;
7
9
  //# sourceMappingURL=validateTestStatement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateTestStatement.js","sourceRoot":"","sources":["../../src/test/validateTestStatement.ts"],"names":[],"mappings":";;;AAEA,iFAA8E;AAGvE,MAAM,qBAAqB,GAAG,CACnC,GAA+B,EAC/B,IAA2B,EAC3B,IAAY,EACN,EAAE,CAAC,2DAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAW,EAAE,IAAI,CAAC,CAAC;AAJ9D,QAAA,qBAAqB,yBAIyC"}
1
+ {"version":3,"file":"validateTestStatement.js","sourceRoot":"","sources":["../../src/test/validateTestStatement.ts"],"names":[],"mappings":";;;AAEA,iFAA8E;AAGvE,MAAM,qBAAqB,GAAG,CACnC,GAA+B,EAC/B,IAA2B,EAC3B,IAAY,EACN,EAAE,CACR,2DAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CACrC,GAAG;AACH,8BAA8B;AAC9B,IAAW,EACX,IAAI,CACL,CAAC;AAVS,QAAA,qBAAqB,yBAU9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autobe/utils",
3
- "version": "0.29.2",
3
+ "version": "0.30.0",
4
4
  "description": "AI backend server code generator",
5
5
  "main": "lib/index.js",
6
6
  "keywords": [],
@@ -24,15 +24,15 @@
24
24
  "access": "public"
25
25
  },
26
26
  "dependencies": {
27
- "@samchon/openapi": "^5.0.1",
27
+ "@typia/interface": "^12.0.1",
28
+ "@typia/utils": "^12.0.1",
28
29
  "tstl": "^3.0.0",
29
- "typia": "^10.0.2",
30
- "@autobe/interface": "^0.29.2"
30
+ "typia": "^12.0.1",
31
+ "@autobe/interface": "^0.30.0"
31
32
  },
32
33
  "devDependencies": {
33
34
  "@types/node": "^24.10.1",
34
35
  "rimraf": "^6.0.1",
35
- "ts-patch": "^3.3.0",
36
36
  "typescript": "~5.9.3"
37
37
  },
38
38
  "scripts": {
@@ -0,0 +1,83 @@
1
+ export namespace AutoBeEscaper {
2
+ export const variable = (str: string): boolean =>
3
+ reserved(str) === false && /^[a-zA-Z_$][a-zA-Z_$0-9]*$/g.test(str);
4
+
5
+ export const reserved = (str: string): boolean => KEYWORDS.includes(str);
6
+ }
7
+
8
+ const KEYWORDS = [
9
+ // data types
10
+ "boolean",
11
+ "byte",
12
+ "char",
13
+ "double",
14
+ "float",
15
+ "int",
16
+ "long",
17
+ "short",
18
+ "void",
19
+ // literals
20
+ "false",
21
+ "null",
22
+ "true",
23
+ // variable declarations
24
+ "let",
25
+ "const",
26
+ "var",
27
+ // control flow
28
+ "break",
29
+ "case",
30
+ "continue",
31
+ "default",
32
+ "do",
33
+ "else",
34
+ "for",
35
+ "if",
36
+ "return",
37
+ "switch",
38
+ "while",
39
+ "with",
40
+ // class related
41
+ "class",
42
+ "extends",
43
+ "implements",
44
+ "instanceof",
45
+ "interface",
46
+ "new",
47
+ "package",
48
+ "super",
49
+ "this",
50
+ // function related
51
+ "function",
52
+ // modifiers
53
+ "abstract",
54
+ "final",
55
+ "native",
56
+ "private",
57
+ "protected",
58
+ "public",
59
+ "static",
60
+ "strictfp",
61
+ "synchronized",
62
+ "transient",
63
+ "volatile",
64
+ // exception handling
65
+ "assert",
66
+ "catch",
67
+ "finally",
68
+ "throw",
69
+ "throws",
70
+ "try",
71
+ // module system
72
+ "export",
73
+ "import",
74
+ "module",
75
+ // operators
76
+ "delete",
77
+ "in",
78
+ "typeof",
79
+ // debugging
80
+ "debugger",
81
+ // other
82
+ "enum",
83
+ ];
package/src/StringUtil.ts CHANGED
@@ -1,53 +1,17 @@
1
+ import { dedent } from "@typia/utils";
2
+
1
3
  export namespace StringUtil {
2
4
  export function trim(
3
5
  strings: TemplateStringsArray,
6
+ // biome-ignore lint: intended
4
7
  ...values: any[]
5
8
  ): string {
6
- // 먼저 모든 template string 부분들을 합쳐서 전체 구조를 파악
7
- let combined = strings[0];
8
- for (let i = 0; i < values.length; i++) {
9
- combined += `__PLACEHOLDER_${i}__` + strings[i + 1];
10
- }
11
-
12
- // 줄별로 나누기
13
- const lines = combined.split("\n");
14
-
15
- // 앞뒤 빈 줄 제거
16
- while (lines.length > 0 && lines[0].trim() === "") {
17
- lines.shift();
18
- }
19
- while (lines.length > 0 && lines[lines.length - 1].trim() === "") {
20
- lines.pop();
21
- }
22
-
23
- if (lines.length === 0) return "";
24
-
25
- // 비어있지 않은 줄들에서 최소 indentation 찾기
26
- const nonEmptyLines = lines.filter((line) => line.trim() !== "");
27
- const minIndent = Math.min(
28
- ...nonEmptyLines.map((line) => {
29
- const match = line.match(/^[ \t]*/);
30
- return match ? match[0].length : 0;
31
- }),
32
- );
33
-
34
- // 모든 줄에서 최소 indentation 제거
35
- const dedentedLines = lines.map((line) => {
36
- if (line.trim() === "") return "";
37
- return line.slice(minIndent);
38
- });
39
-
40
- // placeholder를 실제 값으로 교체
41
- let result = dedentedLines.join("\n");
42
- for (let i = 0; i < values.length; i++) {
43
- result = result.replace(`__PLACEHOLDER_${i}__`, String(values[i]));
44
- }
45
-
46
- return result;
9
+ return dedent(strings, ...values);
47
10
  }
48
11
 
49
12
  export function singleLine(
50
13
  strings: TemplateStringsArray,
14
+ // biome-ignore lint: intended
51
15
  ...values: any[]
52
16
  ): string {
53
17
  let result: string = strings[0];
@@ -56,4 +20,15 @@ export namespace StringUtil {
56
20
  }
57
21
  return result.replace(/\n/g, " ").replace(/\s+/g, " ").trim();
58
22
  }
23
+
24
+ export function summary(description: string): string {
25
+ const newLine: number = description.indexOf("\n");
26
+ const dot: number = description.indexOf(".");
27
+ const minimum: number = Math.min(
28
+ newLine === -1 ? Number.MAX_SAFE_INTEGER : newLine,
29
+ dot === -1 ? Number.MAX_SAFE_INTEGER : dot,
30
+ description.length,
31
+ );
32
+ return description.substring(0, minimum);
33
+ }
59
34
  }
@@ -53,9 +53,11 @@ export namespace AutoBeProcessAggregateFactory {
53
53
  collection: AutoBeProcessAggregateCollection,
54
54
  event: Event,
55
55
  ): void => {
56
+ // biome-ignore lint: intended
56
57
  (collection as any)[event.type] ??= createAggregate();
57
58
  collection.total ??= computeTotal(collection);
58
59
 
60
+ // biome-ignore lint: intended
59
61
  const local: AutoBeProcessAggregate = (collection as any)[
60
62
  event.type
61
63
  ] as AutoBeProcessAggregate;
@@ -76,6 +78,7 @@ export namespace AutoBeProcessAggregateFactory {
76
78
  if (key === "total") continue;
77
79
  else if (key.startsWith(phase) === false) continue;
78
80
 
81
+ // biome-ignore lint: intended
79
82
  (result as any)[key] = value;
80
83
  AutoBeFunctionCallingMetricFactory.increment(
81
84
  result.total.metric,
@@ -93,7 +96,9 @@ export namespace AutoBeProcessAggregateFactory {
93
96
  for (const collection of collections) {
94
97
  for (const [key, value] of Object.entries(collection)) {
95
98
  if (key === "total") continue;
99
+ // biome-ignore lint: intended
96
100
  (result as any)[key] ??= createAggregate();
101
+ // biome-ignore lint: intended
97
102
  const local: AutoBeProcessAggregate = (result as any)[
98
103
  key
99
104
  ] as AutoBeProcessAggregate;
@@ -120,7 +125,9 @@ export namespace AutoBeProcessAggregateFactory {
120
125
  ): void => {
121
126
  for (const [key, value] of Object.entries(y)) {
122
127
  if (key === "total") continue;
128
+ // biome-ignore lint: intended
123
129
  (x as any)[key] ??= createAggregate();
130
+ // biome-ignore lint: intended
124
131
  const local: AutoBeProcessAggregate = (x as any)[
125
132
  key
126
133
  ] as AutoBeProcessAggregate;
@@ -139,7 +146,9 @@ export namespace AutoBeProcessAggregateFactory {
139
146
  ) as AutoBeProcessAggregateCollection;
140
147
  for (const [key, value] of Object.entries(y)) {
141
148
  if (key === "total") continue;
149
+ // biome-ignore lint: intended
142
150
  (result as any)[key] ??= createAggregate();
151
+ // biome-ignore lint: intended
143
152
  const local: AutoBeProcessAggregate = (result as any)[
144
153
  key
145
154
  ] as AutoBeProcessAggregate;
package/src/index.ts CHANGED
@@ -5,5 +5,6 @@ export * from "./interface";
5
5
  export * from "./test";
6
6
 
7
7
  export * from "./ArrayUtil";
8
+ export * from "./AutoBeEscaper";
8
9
  export * from "./MapUtil";
9
10
  export * from "./StringUtil";
@@ -17,4 +17,11 @@ export namespace AutoBeOpenApiEndpointComparator {
17
17
 
18
18
  export const hashCode = (endpoint: AutoBeOpenApi.IEndpoint): number =>
19
19
  hash(endpoint.path, endpoint.method);
20
+
21
+ export const clone = (
22
+ endpoint: AutoBeOpenApi.IEndpoint,
23
+ ): AutoBeOpenApi.IEndpoint => ({
24
+ path: endpoint.path,
25
+ method: endpoint.method,
26
+ });
20
27
  }
@@ -1,6 +1,23 @@
1
1
  import { AutoBeOpenApi } from "@autobe/interface";
2
+ import { OpenApiTypeChecker } from "@typia/utils";
2
3
 
3
4
  export namespace AutoBeOpenApiTypeChecker {
5
+ export const getKind = (schema: AutoBeOpenApi.IJsonSchema): string => {
6
+ if (isReference(schema)) return "$ref";
7
+ else if (isConstant(schema)) return JSON.stringify(schema.const);
8
+ else if (isOneOf(schema))
9
+ return schema.oneOf.map((s) => getKind(s)).join(" | ");
10
+ else if (isArray(schema)) return `Array<${getKind(schema.items)}>`;
11
+ else if (isObject(schema)) return "object";
12
+ else if (isString(schema)) return "string";
13
+ else if (isInteger(schema)) return "integer";
14
+ else if (isNumber(schema)) return "number";
15
+ else if (isBoolean(schema)) return "boolean";
16
+ else if (isNull(schema)) return "null";
17
+ schema satisfies never;
18
+ return "unknown";
19
+ };
20
+
4
21
  export const isArray = (
5
22
  schema: AutoBeOpenApi.IJsonSchema,
6
23
  ): schema is AutoBeOpenApi.IJsonSchema.IArray =>
@@ -26,6 +43,11 @@ export namespace AutoBeOpenApiTypeChecker {
26
43
  ): schema is AutoBeOpenApi.IJsonSchema.IConstant =>
27
44
  (schema as AutoBeOpenApi.IJsonSchema.IConstant).const !== undefined;
28
45
 
46
+ export const isBoolean = (
47
+ schema: AutoBeOpenApi.IJsonSchema,
48
+ ): schema is AutoBeOpenApi.IJsonSchema.IBoolean =>
49
+ (schema as AutoBeOpenApi.IJsonSchema.IBoolean).type === "boolean";
50
+
29
51
  export const isInteger = (
30
52
  schema: AutoBeOpenApi.IJsonSchema,
31
53
  ): schema is AutoBeOpenApi.IJsonSchema.IInteger =>
@@ -40,4 +62,66 @@ export namespace AutoBeOpenApiTypeChecker {
40
62
  schema: AutoBeOpenApi.IJsonSchema,
41
63
  ): schema is AutoBeOpenApi.IJsonSchema.IString =>
42
64
  (schema as AutoBeOpenApi.IJsonSchema.IString).type === "string";
65
+
66
+ export const isNull = (
67
+ schema: AutoBeOpenApi.IJsonSchema,
68
+ ): schema is AutoBeOpenApi.IJsonSchema.INull =>
69
+ (schema as AutoBeOpenApi.IJsonSchema.INull).type === "null";
70
+
71
+ export const isNullable = (schema: AutoBeOpenApi.IJsonSchema): boolean =>
72
+ isNull(schema) ||
73
+ (isOneOf(schema) && schema.oneOf.some((sub) => isNull(sub)));
74
+
75
+ export const visit = (props: {
76
+ components: AutoBeOpenApi.IComponents;
77
+ schema: AutoBeOpenApi.IJsonSchema;
78
+ closure: (schema: AutoBeOpenApi.IJsonSchema, accessor: string) => void;
79
+ }): void =>
80
+ OpenApiTypeChecker.visit({
81
+ components: props.components,
82
+ schema: props.schema,
83
+ closure: (schema, accessor) => {
84
+ props.closure(schema as AutoBeOpenApi.IJsonSchema, accessor);
85
+ },
86
+ });
87
+
88
+ export const skim = (props: {
89
+ closure: (schema: AutoBeOpenApi.IJsonSchema, accessor: string) => void;
90
+ schema: AutoBeOpenApi.IJsonSchema;
91
+ accessor: string;
92
+ }): void => {
93
+ props.closure(props.schema, props.accessor);
94
+ if (isOneOf(props.schema))
95
+ props.schema.oneOf.forEach((sub, index) =>
96
+ skim({
97
+ closure: props.closure,
98
+ schema: sub,
99
+ accessor: `${props.accessor}.oneOf[${index}]`,
100
+ }),
101
+ );
102
+ else if (isArray(props.schema))
103
+ skim({
104
+ closure: props.closure,
105
+ schema: props.schema.items,
106
+ accessor: `${props.accessor}.items`,
107
+ });
108
+ else if (isObject(props.schema)) {
109
+ if (
110
+ typeof props.schema.additionalProperties === "object" &&
111
+ props.schema.additionalProperties !== null
112
+ )
113
+ skim({
114
+ closure: props.closure,
115
+ schema: props.schema.additionalProperties,
116
+ accessor: `${props.accessor}.additionalProperties`,
117
+ });
118
+ for (const [key, value] of Object.entries(props.schema.properties))
119
+ if (value)
120
+ skim({
121
+ closure: props.closure,
122
+ schema: value,
123
+ accessor: `${props.accessor}.properties[${JSON.stringify(key)}]`,
124
+ });
125
+ }
126
+ };
43
127
  }