@nestia/sdk 4.0.3 → 4.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,144 +1,2 @@
1
1
  "use strict";
2
- // import path from "path";
3
- // import ts from "typescript";
4
- // import { MetadataCollection } from "typia/lib/factories/MetadataCollection";
5
- // import { MetadataFactory } from "typia/lib/factories/MetadataFactory";
6
- // import { Metadata } from "typia/lib/schemas/metadata/Metadata";
7
- // import { INestiaProject } from "../structures/INestiaProject";
8
- // import { IReflectController } from "../structures/IReflectController";
9
- // import { IReflectHttpOperation } from "../structures/IReflectHttpOperation";
10
- // import { ITypeTuple } from "../structures/ITypeTuple";
11
- // import { ITypedHttpRoute } from "../structures/ITypedHttpRoute";
12
- // import { GenericAnalyzer } from "./GenericAnalyzer";
13
- // import { ImportAnalyzer } from "./ImportAnalyzer";
14
- // export namespace ExceptionAnalyzer {
15
- // export const analyze =
16
- // (project: INestiaProject) =>
17
- // (props: {
18
- // generics: GenericAnalyzer.Dictionary;
19
- // imports: ImportAnalyzer.Dictionary;
20
- // controller: IReflectController;
21
- // operation: IReflectHttpOperation;
22
- // declaration: ts.MethodDeclaration;
23
- // }): Record<
24
- // number | "2XX" | "3XX" | "4XX" | "5XX",
25
- // ITypedHttpRoute.IOutput
26
- // > => {
27
- // const output: Record<
28
- // number | "2XX" | "3XX" | "4XX" | "5XX",
29
- // ITypedHttpRoute.IOutput
30
- // > = {} as any;
31
- // for (const decorator of props.declaration.modifiers ?? [])
32
- // if (ts.isDecorator(decorator))
33
- // analyzeTyped(project)({
34
- // ...props,
35
- // output,
36
- // decorator,
37
- // });
38
- // return output;
39
- // };
40
- // const analyzeTyped =
41
- // (project: INestiaProject) =>
42
- // (props: {
43
- // generics: GenericAnalyzer.Dictionary;
44
- // imports: ImportAnalyzer.Dictionary;
45
- // controller: IReflectController;
46
- // operation: IReflectHttpOperation;
47
- // output: Record<
48
- // number | "2XX" | "3XX" | "4XX" | "5XX",
49
- // ITypedHttpRoute.IOutput
50
- // >;
51
- // decorator: ts.Decorator;
52
- // }): boolean => {
53
- // // CHECK DECORATOR
54
- // if (!ts.isCallExpression(props.decorator.expression)) return false;
55
- // else if ((props.decorator.expression.typeArguments ?? []).length !== 1)
56
- // return false;
57
- // // CHECK SIGNATURE
58
- // const signature: ts.Signature | undefined =
59
- // project.checker.getResolvedSignature(props.decorator.expression);
60
- // if (!signature || !signature.declaration) return false;
61
- // else if (
62
- // path
63
- // .resolve(signature.declaration.getSourceFile().fileName)
64
- // .indexOf(TYPED_EXCEPTION_PATH) === -1
65
- // )
66
- // return false;
67
- // // GET TYPE INFO
68
- // const status: string | null = getStatus(project.checker)(
69
- // props.decorator.expression.arguments[0] ?? null,
70
- // );
71
- // if (status === null) return false;
72
- // const node: ts.TypeNode = props.decorator.expression.typeArguments![0];
73
- // const type: ts.Type = project.checker.getTypeFromTypeNode(node);
74
- // if (type.isTypeParameter()) {
75
- // project.errors.push({
76
- // file: props.controller.file,
77
- // controller: props.controller.name,
78
- // function: props.operation.name,
79
- // message: "TypedException() without generic argument specification.",
80
- // });
81
- // return false;
82
- // }
83
- // const tuple: ITypeTuple | null = ImportAnalyzer.analyze(project.checker)({
84
- // generics: props.generics,
85
- // imports: props.imports,
86
- // type,
87
- // });
88
- // if (tuple === null) {
89
- // project.errors.push({
90
- // file: props.controller.file,
91
- // controller: props.controller.name,
92
- // function: props.operation.name,
93
- // message: `TypeException() with unknown type on ${status} status.`,
94
- // });
95
- // return false;
96
- // }
97
- // // DO ASSIGN
98
- // const matched: IReflectHttpOperation.IException[] = Object.entries(
99
- // props.operation.exceptions,
100
- // )
101
- // .filter(([key]) => status === key)
102
- // .map(([_key, value]) => value);
103
- // for (const m of matched)
104
- // props.output[m.status] = {
105
- // type: tuple.type,
106
- // typeName: tuple.typeName,
107
- // contentType: "application/json",
108
- // description: m.description,
109
- // };
110
- // return true;
111
- // };
112
- // const getStatus =
113
- // (checker: ts.TypeChecker) =>
114
- // (expression: ts.Expression | null): string | null => {
115
- // if (expression === null) return null;
116
- // const type: ts.Type = checker.getTypeAtLocation(expression);
117
- // const result = MetadataFactory.analyze(checker)({
118
- // escape: true,
119
- // constant: true,
120
- // absorb: true,
121
- // })(new MetadataCollection())(type);
122
- // if (false === result.success) return null;
123
- // const meta: Metadata = result.data;
124
- // if (meta.constants.length === 1)
125
- // return meta.constants[0].values[0].value.toString();
126
- // else if (meta.escaped && meta.escaped.returns.constants.length === 1)
127
- // return meta.escaped.returns.constants[0].values[0].value.toString();
128
- // else if (ts.isStringLiteral(expression)) return expression.text;
129
- // else if (ts.isNumericLiteral(expression)) {
130
- // const value: number = Number(expression.text.split("_").join(""));
131
- // if (false === isNaN(value)) return value.toString();
132
- // }
133
- // return null;
134
- // };
135
- // }
136
- // const TYPED_EXCEPTION_PATH = path.join(
137
- // "node_modules",
138
- // "@nestia",
139
- // "core",
140
- // "lib",
141
- // "decorators",
142
- // "TypedException.d.ts",
143
- // );
144
2
  //# sourceMappingURL=ExceptionAnalyzer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExceptionAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ExceptionAnalyzer.ts"],"names":[],"mappings":";AAAA,2BAA2B;AAC3B,+BAA+B;AAC/B,+EAA+E;AAC/E,yEAAyE;AACzE,kEAAkE;AAElE,iEAAiE;AACjE,yEAAyE;AACzE,+EAA+E;AAC/E,yDAAyD;AACzD,mEAAmE;AACnE,uDAAuD;AACvD,qDAAqD;AAErD,uCAAuC;AACvC,2BAA2B;AAC3B,mCAAmC;AACnC,gBAAgB;AAChB,8CAA8C;AAC9C,4CAA4C;AAC5C,wCAAwC;AACxC,0CAA0C;AAC1C,2CAA2C;AAC3C,kBAAkB;AAClB,gDAAgD;AAChD,gCAAgC;AAChC,aAAa;AACb,8BAA8B;AAC9B,kDAAkD;AAClD,kCAAkC;AAClC,uBAAuB;AACvB,mEAAmE;AACnE,yCAAyC;AACzC,oCAAoC;AACpC,wBAAwB;AACxB,sBAAsB;AACtB,yBAAyB;AACzB,gBAAgB;AAChB,uBAAuB;AACvB,SAAS;AAET,yBAAyB;AACzB,mCAAmC;AACnC,gBAAgB;AAChB,8CAA8C;AAC9C,4CAA4C;AAC5C,wCAAwC;AACxC,0CAA0C;AAC1C,wBAAwB;AACxB,kDAAkD;AAClD,kCAAkC;AAClC,WAAW;AACX,iCAAiC;AACjC,uBAAuB;AACvB,2BAA2B;AAC3B,4EAA4E;AAC5E,gFAAgF;AAChF,wBAAwB;AAExB,2BAA2B;AAC3B,oDAAoD;AACpD,4EAA4E;AAC5E,gEAAgE;AAChE,kBAAkB;AAClB,eAAe;AACf,qEAAqE;AACrE,kDAAkD;AAClD,UAAU;AACV,wBAAwB;AAExB,yBAAyB;AACzB,kEAAkE;AAClE,2DAA2D;AAC3D,WAAW;AACX,2CAA2C;AAE3C,gFAAgF;AAChF,yEAAyE;AACzE,sCAAsC;AACtC,gCAAgC;AAChC,yCAAyC;AACzC,+CAA+C;AAC/C,4CAA4C;AAC5C,iFAAiF;AACjF,cAAc;AACd,wBAAwB;AACxB,UAAU;AAEV,mFAAmF;AACnF,oCAAoC;AACpC,kCAAkC;AAClC,gBAAgB;AAChB,YAAY;AACZ,8BAA8B;AAC9B,gCAAgC;AAChC,yCAAyC;AACzC,+CAA+C;AAC/C,4CAA4C;AAC5C,+EAA+E;AAC/E,cAAc;AACd,wBAAwB;AACxB,UAAU;AAEV,qBAAqB;AACrB,4EAA4E;AAC5E,sCAAsC;AACtC,UAAU;AACV,6CAA6C;AAC7C,0CAA0C;AAC1C,iCAAiC;AACjC,qCAAqC;AACrC,8BAA8B;AAC9B,sCAAsC;AACtC,6CAA6C;AAC7C,wCAAwC;AACxC,aAAa;AACb,qBAAqB;AACrB,SAAS;AAET,sBAAsB;AACtB,mCAAmC;AACnC,6DAA6D;AAC7D,8CAA8C;AAE9C,qEAAqE;AACrE,0DAA0D;AAC1D,wBAAwB;AACxB,0BAA0B;AAC1B,wBAAwB;AACxB,4CAA4C;AAC5C,mDAAmD;AAEnD,4CAA4C;AAC5C,yCAAyC;AACzC,+DAA+D;AAC/D,8EAA8E;AAC9E,+EAA+E;AAC/E,yEAAyE;AACzE,oDAAoD;AACpD,6EAA6E;AAC7E,+DAA+D;AAC/D,UAAU;AACV,qBAAqB;AACrB,SAAS;AACT,IAAI;AAEJ,0CAA0C;AAC1C,oBAAoB;AACpB,eAAe;AACf,YAAY;AACZ,WAAW;AACX,kBAAkB;AAClB,2BAA2B;AAC3B,KAAK"}
1
+ {"version":3,"file":"ExceptionAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ExceptionAnalyzer.ts"],"names":[],"mappings":""}
@@ -45,14 +45,14 @@ var ReflectHttpOperationResponseAnalyzer;
45
45
  errors.push(...schema.errors);
46
46
  if (ctx.httpMethod === "HEAD" && contentType !== null)
47
47
  errors.push(`HEAD method must not have a content type.`);
48
- if (typia_1.default.is(contentType) ===
48
+ if ((() => { return input => null === input || "application/json" === input || "application/x-www-form-urlencoded" === input || "text/plain" === input; })()(contentType) ===
49
49
  false)
50
50
  errors.push(`@nestia/sdk does not support ${JSON.stringify(contentType)} content type.`);
51
51
  if (errors.length)
52
52
  return report();
53
53
  else if (ctx.metadata.success.type === null ||
54
54
  schema.success === false ||
55
- !typia_1.default.is(contentType))
55
+ !(() => { return input => null === input || "application/json" === input || "application/x-www-form-urlencoded" === input || "text/plain" === input; })()(contentType))
56
56
  return null;
57
57
  const example = Reflect.getMetadata("nestia/SwaggerExample/Response", ctx.function);
58
58
  return Object.assign(Object.assign({ contentType: contentType, encrypted, status: (_f = getStatus(ctx.function)) !== null && _f !== void 0 ? _f : (ctx.httpMethod === "POST" ? 201 : 200), type: ctx.metadata.success.type }, schema.data), { validate: contentType === "application/json" || encrypted === true
@@ -1 +1 @@
1
- {"version":3,"file":"ReflectHttpOperationResponseAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ReflectHttpOperationResponseAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReflectHttpOperationResponseAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ReflectHttpOperationResponseAnalyzer.ts"],"names":[],"mappings":"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"}