@jafps/plugin-schema 1.2.5 → 1.2.7
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.
- package/dist/fastify/schema-controller.d.ts +2 -4
- package/dist/fastify/schema-controller.js +9 -0
- package/dist/fastify/schema-controller.js.map +1 -1
- package/package.json +18 -18
- package/dist/__tests__/index.spec.d.ts +0 -13
- package/dist/__tests__/index.spec.js +0 -39
- package/dist/__tests__/index.spec.js.map +0 -1
- package/dist/error/__tests__/validation-error.spec.d.ts +0 -1
- package/dist/error/__tests__/validation-error.spec.js +0 -25
- package/dist/error/__tests__/validation-error.spec.js.map +0 -1
- package/dist/fastify/__tests__/schema-controller.spec.d.ts +0 -1
- package/dist/fastify/__tests__/schema-controller.spec.js +0 -177
- package/dist/fastify/__tests__/schema-controller.spec.js.map +0 -1
- package/dist/fastify/__tests__/schema-error-formatter.spec.d.ts +0 -1
- package/dist/fastify/__tests__/schema-error-formatter.spec.js +0 -10
- package/dist/fastify/__tests__/schema-error-formatter.spec.js.map +0 -1
- package/dist/formatter/__tests__/validation-error-formatter.spec.d.ts +0 -1
- package/dist/formatter/__tests__/validation-error-formatter.spec.js +0 -22
- package/dist/formatter/__tests__/validation-error-formatter.spec.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { FastifyInstance, FastifySchemas } from "fastify";
|
|
2
2
|
import type { FastifyRouteSchemaDef, FastifyValidationResult } from "fastify/types/schema.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { TSchema } from "typebox";
|
|
4
4
|
export type SchemaControllerOptions = {
|
|
5
5
|
useReferences?: boolean;
|
|
6
6
|
};
|
|
@@ -11,9 +11,7 @@ export declare class SchemaController {
|
|
|
11
11
|
constructor(app: FastifyInstance, opts?: SchemaControllerOptions);
|
|
12
12
|
deserialize(routeSchema: FastifyRouteSchemaDef<TSchema>): FastifyValidationResult;
|
|
13
13
|
serialize(routeSchema: FastifyRouteSchemaDef<TSchema>): (data: unknown) => string;
|
|
14
|
-
addSchema<T extends keyof FastifySchemas>(schema:
|
|
15
|
-
$id: string;
|
|
16
|
-
}>): void;
|
|
14
|
+
addSchema<T extends keyof FastifySchemas>(schema: FastifySchemas[T]): void;
|
|
17
15
|
getSchema<T extends keyof FastifySchemas>(id: T): FastifySchemas[T];
|
|
18
16
|
getSchemas(): FastifySchemas;
|
|
19
17
|
}
|
|
@@ -48,6 +48,15 @@ export class SchemaController {
|
|
|
48
48
|
};
|
|
49
49
|
}
|
|
50
50
|
addSchema(schema) {
|
|
51
|
+
if (!("$id" in schema)) {
|
|
52
|
+
throw new Error("$id is not defined in schema.");
|
|
53
|
+
}
|
|
54
|
+
if (typeof schema.$id !== "string") {
|
|
55
|
+
throw new Error(`$id is not string. (${typeof schema.$id})`);
|
|
56
|
+
}
|
|
57
|
+
if (!schema.$id) {
|
|
58
|
+
throw new Error("$id is not empty");
|
|
59
|
+
}
|
|
51
60
|
const id = schema.$id;
|
|
52
61
|
if (this.schemas[id]) {
|
|
53
62
|
throw new Error(`Same schema $id has already added. (${id})`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-controller.js","sourceRoot":"","sources":["../../src/fastify/schema-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAU9C,MAAM,OAAO,gBAAgB;IACV,GAAG,CAAkB;IACrB,aAAa,CAAU;IACvB,OAAO,CAAiB;IAEzC,YAAmB,GAAoB,EAAE,OAAgC,EAAE;QACzE,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,EAAoB,CAAC;IACtC,CAAC;IAEM,WAAW,CAAC,WAA2C;QAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;QAC/B,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAgB,CAAC;QACzE,OAAO,KAAK,CAAC,EAAE;YACb,IAAI,KAAc,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC;YAC1D,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBACnC,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,oDAAoD,CAAC,CAAC;gBACjF,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;oBAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1D,CAAC;gBACD,OAAO,EAAE,KAAK,EAAE,IAAI,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5C,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAEM,SAAS,CAAC,WAA2C;QAC1D,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;QAC/B,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAgB,CAAC;QACzE,OAAO,KAAK,CAAC,EAAE;YACb,IAAI,KAAc,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBACnC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,oDAAoD,CAAC,CAAC;gBACjF,MAAM,KAAK,GAAG,GAAG,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;gBAC3G,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAEM,SAAS,CAAiC,
|
|
1
|
+
{"version":3,"file":"schema-controller.js","sourceRoot":"","sources":["../../src/fastify/schema-controller.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jafps/plugin-schema",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.7",
|
|
4
4
|
"description": "Fastify plugin for using typebox to handle JSON schemas.",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"prebuild": "rimraf dist",
|
|
8
|
+
"build": "tsc",
|
|
9
|
+
"test": "node --inspect --enable-source-maps --experimental-test-coverage --test-coverage-exclude \"src/**/__tests__/*.ts\" --test \"./dist/**/__tests__/*.{spec,test}.js\"",
|
|
10
|
+
"lint": "eslint"
|
|
11
|
+
},
|
|
6
12
|
"author": "Joshua Avalon",
|
|
7
13
|
"license": "Apache-2.0",
|
|
8
14
|
"repository": {
|
|
@@ -41,25 +47,19 @@
|
|
|
41
47
|
"!dist/**/__tests__/**/*"
|
|
42
48
|
],
|
|
43
49
|
"devDependencies": {
|
|
44
|
-
"@jafps/plugin-error": "^1.0.
|
|
45
|
-
"@joshuaavalon/eslint-config-javascript": "^
|
|
46
|
-
"@joshuaavalon/eslint-config-typescript": "^
|
|
47
|
-
"@types/node": "^
|
|
48
|
-
"eslint": "^
|
|
49
|
-
"fastify": "^5.
|
|
50
|
-
"globals": "^
|
|
51
|
-
"rimraf": "^6.
|
|
50
|
+
"@jafps/plugin-error": "^1.0.2",
|
|
51
|
+
"@joshuaavalon/eslint-config-javascript": "^11.0.3",
|
|
52
|
+
"@joshuaavalon/eslint-config-typescript": "^11.0.0",
|
|
53
|
+
"@types/node": "^25.3.3",
|
|
54
|
+
"eslint": "^10.0.2",
|
|
55
|
+
"fastify": "^5.7.4",
|
|
56
|
+
"globals": "^17.4.0",
|
|
57
|
+
"rimraf": "^6.1.3",
|
|
52
58
|
"typescript": "^5.9.3",
|
|
53
|
-
"typescript-eslint": "^8.
|
|
59
|
+
"typescript-eslint": "^8.56.1"
|
|
54
60
|
},
|
|
55
61
|
"dependencies": {
|
|
56
62
|
"fastify-plugin": "^5.1.0",
|
|
57
|
-
"typebox": "^1.
|
|
58
|
-
},
|
|
59
|
-
"scripts": {
|
|
60
|
-
"prebuild": "rimraf dist",
|
|
61
|
-
"build": "tsc",
|
|
62
|
-
"test": "node --inspect --enable-source-maps --experimental-test-coverage --test-coverage-exclude \"src/**/__tests__/*.ts\" --test \"./dist/**/__tests__/*.{spec,test}.js\"",
|
|
63
|
-
"lint": "eslint"
|
|
63
|
+
"typebox": "^1.1.5"
|
|
64
64
|
}
|
|
65
|
-
}
|
|
65
|
+
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Type } from "typebox";
|
|
2
|
-
declare const bodySchema: Type.TOptions<Type.TObject<{
|
|
3
|
-
a: Type.TString;
|
|
4
|
-
b: Type.TString;
|
|
5
|
-
}>, {
|
|
6
|
-
$id: string;
|
|
7
|
-
}>;
|
|
8
|
-
declare module "fastify" {
|
|
9
|
-
interface FastifySchemas {
|
|
10
|
-
b: typeof bodySchema;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
export {};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import assert from "node:assert/strict";
|
|
2
|
-
import { before, describe, it } from "node:test";
|
|
3
|
-
import errorPlugin from "@jafps/plugin-error";
|
|
4
|
-
import fastify from "fastify";
|
|
5
|
-
import { Type } from "typebox";
|
|
6
|
-
import schemaPlugin from "../index.js";
|
|
7
|
-
const bodySchema = Type.Options(Type.Object({
|
|
8
|
-
a: Type.String(),
|
|
9
|
-
b: Type.String()
|
|
10
|
-
}), { $id: "b" });
|
|
11
|
-
describe("@jafps/plugin-schema", () => {
|
|
12
|
-
let app;
|
|
13
|
-
before(async () => {
|
|
14
|
-
app = await fastify();
|
|
15
|
-
await app.register(errorPlugin);
|
|
16
|
-
await app.register(schemaPlugin);
|
|
17
|
-
app.schemas.addSchema(bodySchema);
|
|
18
|
-
app.post("/validate", { schema: { body: Type.Ref("b") } }, async (_req, res) => {
|
|
19
|
-
res.send({ success: true });
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
it("should format ValidationError", async () => {
|
|
23
|
-
const res = await app.inject({
|
|
24
|
-
body: {
|
|
25
|
-
a: "a",
|
|
26
|
-
b: 1
|
|
27
|
-
},
|
|
28
|
-
headers: { "content-type": "application/json" },
|
|
29
|
-
method: "POST",
|
|
30
|
-
path: "/validate"
|
|
31
|
-
});
|
|
32
|
-
const json = await res.json();
|
|
33
|
-
assert.equal(res.statusCode, 422);
|
|
34
|
-
assert.equal(json.success, false);
|
|
35
|
-
assert.equal(json.code, "InvalidValue");
|
|
36
|
-
assert.ok(json.data.message);
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
//# sourceMappingURL=index.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../src/__tests__/index.spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,YAAY,MAAM,aAAa,CAAC;AAGvC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1C,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE;IAChB,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE;CACjB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAQlB,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAI,GAAoB,CAAC;IAEzB,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,GAAG,GAAG,MAAM,OAAO,EAAE,CAAC;QACtB,MAAM,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAChC,MAAM,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACjC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAElC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YAC7E,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAGH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC;YAC3B,IAAI,EAAE;gBACJ,CAAC,EAAE,GAAG;gBACN,CAAC,EAAE,CAAC;aACL;YACD,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACxC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import assert from "node:assert/strict";
|
|
2
|
-
import { describe, it } from "node:test";
|
|
3
|
-
import { Type } from "typebox";
|
|
4
|
-
import { Errors } from "typebox/value";
|
|
5
|
-
import { ValidationError } from "../validation-error.js";
|
|
6
|
-
describe("ValidationError", () => {
|
|
7
|
-
it("should clean extra properties for fieldErrors", async () => {
|
|
8
|
-
const schema = Type.Object({ success: Type.Literal(false) });
|
|
9
|
-
const errors = Errors(schema, { 1: true });
|
|
10
|
-
const error = new ValidationError(errors);
|
|
11
|
-
assert.ok(error.fieldErrors[0]);
|
|
12
|
-
assert.equal(Object.keys(error.fieldErrors[0]).length, 2);
|
|
13
|
-
});
|
|
14
|
-
it("should create error for non exists ID", async () => {
|
|
15
|
-
const error = ValidationError.nonExistID();
|
|
16
|
-
assert.ok(error.fieldErrors[0]);
|
|
17
|
-
assert.equal(Object.keys(error.fieldErrors[0]).length, 2);
|
|
18
|
-
});
|
|
19
|
-
it("should create error for non match version", async () => {
|
|
20
|
-
const error = ValidationError.nonMatchVersion();
|
|
21
|
-
assert.ok(error.fieldErrors[0]);
|
|
22
|
-
assert.equal(Object.keys(error.fieldErrors[0]).length, 2);
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
//# sourceMappingURL=validation-error.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validation-error.spec.js","sourceRoot":"","sources":["../../../src/error/__tests__/validation-error.spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,EAAE,CAAC;QAC3C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,KAAK,GAAG,eAAe,CAAC,eAAe,EAAE,CAAC;QAChD,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
import assert from "node:assert/strict";
|
|
2
|
-
import { describe, it } from "node:test";
|
|
3
|
-
import fastify from "fastify";
|
|
4
|
-
import { Type } from "typebox";
|
|
5
|
-
import { ValidationError } from "#error";
|
|
6
|
-
import { SchemaController } from "../schema-controller.js";
|
|
7
|
-
describe("SchemaSerializer", () => {
|
|
8
|
-
it("should serialize", async () => {
|
|
9
|
-
const app = await fastify();
|
|
10
|
-
const serializer = new SchemaController(app);
|
|
11
|
-
const schema = Type.Object({ success: Type.Literal(true) });
|
|
12
|
-
const serializeFn = serializer.serialize({ method: "GET", schema, url: "/" });
|
|
13
|
-
const json = serializeFn({ success: true });
|
|
14
|
-
const res = JSON.parse(json);
|
|
15
|
-
assert.equal(res.success, true);
|
|
16
|
-
});
|
|
17
|
-
it("should serialize without additional values", async () => {
|
|
18
|
-
const app = await fastify();
|
|
19
|
-
const serializer = new SchemaController(app);
|
|
20
|
-
const schema = Type.Object({ success: Type.Literal(true) });
|
|
21
|
-
const serializeFn = serializer.serialize({ method: "GET", schema, url: "/" });
|
|
22
|
-
const json = serializeFn({ other: true, success: true });
|
|
23
|
-
const res = JSON.parse(json);
|
|
24
|
-
assert.ok(!res.other);
|
|
25
|
-
});
|
|
26
|
-
it("should serialize with default value", async () => {
|
|
27
|
-
const app = await fastify();
|
|
28
|
-
const serializer = new SchemaController(app);
|
|
29
|
-
const schema = Type.Object({ success: Type.Boolean({ default: true }) });
|
|
30
|
-
const serializeFn = serializer.serialize({ method: "GET", schema, url: "/" });
|
|
31
|
-
const json = serializeFn({});
|
|
32
|
-
const res = JSON.parse(json);
|
|
33
|
-
assert.equal(res.success, true);
|
|
34
|
-
});
|
|
35
|
-
it("should serialize with references", async () => {
|
|
36
|
-
const app = await fastify();
|
|
37
|
-
const refSchema = Type.Object({ success: Type.Literal(true) }, { $id: "result" });
|
|
38
|
-
const serializer = new SchemaController(app);
|
|
39
|
-
serializer.addSchema(refSchema);
|
|
40
|
-
const schema = Type.Ref("result");
|
|
41
|
-
const serializeFn = serializer.serialize({ method: "GET", schema, url: "/" });
|
|
42
|
-
const json = serializeFn({ success: true });
|
|
43
|
-
const res = JSON.parse(json);
|
|
44
|
-
assert.equal(res.success, true);
|
|
45
|
-
});
|
|
46
|
-
it("should not serialize without references", async () => {
|
|
47
|
-
const app = await fastify();
|
|
48
|
-
const refSchema = Type.Object({ success: Type.Literal(true) }, { $id: "result" });
|
|
49
|
-
const serializer = new SchemaController(app, { useReferences: false });
|
|
50
|
-
serializer.addSchema(refSchema);
|
|
51
|
-
const schema = Type.Ref("result");
|
|
52
|
-
const serializeFn = serializer.serialize({ method: "GET", schema, url: "/" });
|
|
53
|
-
assert.throws(() => serializeFn({ success: true }));
|
|
54
|
-
});
|
|
55
|
-
it("should serialize with typebox module", async () => {
|
|
56
|
-
const app = await fastify();
|
|
57
|
-
const serializer = new SchemaController(app);
|
|
58
|
-
const module = Type.Module({
|
|
59
|
-
a: Type.Object({ success: Type.Literal(true) }),
|
|
60
|
-
b: Type.Ref("a")
|
|
61
|
-
});
|
|
62
|
-
const serializeFn = serializer.serialize({ method: "GET", schema: module.b, url: "/" });
|
|
63
|
-
const json = serializeFn({ success: true });
|
|
64
|
-
const res = JSON.parse(json);
|
|
65
|
-
assert.equal(res.success, true);
|
|
66
|
-
});
|
|
67
|
-
it("should serialize with typebox codec", async () => {
|
|
68
|
-
const app = await fastify();
|
|
69
|
-
const serializer = new SchemaController(app);
|
|
70
|
-
const schema = Type.Object({
|
|
71
|
-
success: Type.Codec(Type.String())
|
|
72
|
-
.Decode(v => v === "true")
|
|
73
|
-
.Encode(v => `${v}`)
|
|
74
|
-
});
|
|
75
|
-
const serializeFn = serializer.serialize({ method: "GET", schema, url: "/" });
|
|
76
|
-
const json = serializeFn({ success: true });
|
|
77
|
-
const res = JSON.parse(json);
|
|
78
|
-
assert.equal(res.success, "true");
|
|
79
|
-
});
|
|
80
|
-
it("should deserialize", async () => {
|
|
81
|
-
const app = await fastify();
|
|
82
|
-
const serializer = new SchemaController(app);
|
|
83
|
-
const schema = Type.Object({ success: Type.Literal(true) });
|
|
84
|
-
const serializeFn = serializer.deserialize({ method: "GET", schema, url: "/" });
|
|
85
|
-
const json = await serializeFn({ success: true });
|
|
86
|
-
const res = json.value;
|
|
87
|
-
assert.equal(res.success, true);
|
|
88
|
-
});
|
|
89
|
-
it("should deserialize without additional values", async () => {
|
|
90
|
-
const app = await fastify();
|
|
91
|
-
const serializer = new SchemaController(app);
|
|
92
|
-
const schema = Type.Object({ success: Type.Literal(true) });
|
|
93
|
-
const serializeFn = serializer.deserialize({ method: "GET", schema, url: "/" });
|
|
94
|
-
const json = await serializeFn({ other: true, success: true });
|
|
95
|
-
const res = json.value;
|
|
96
|
-
assert.ok(!res.other);
|
|
97
|
-
});
|
|
98
|
-
it("should deserialize with default value", async () => {
|
|
99
|
-
const app = await fastify();
|
|
100
|
-
const serializer = new SchemaController(app);
|
|
101
|
-
const schema = Type.Object({ success: Type.Boolean({ default: true }) });
|
|
102
|
-
const serializeFn = serializer.deserialize({ method: "GET", schema, url: "/" });
|
|
103
|
-
const json = await serializeFn({});
|
|
104
|
-
const res = json.value;
|
|
105
|
-
assert.equal(res.success, true);
|
|
106
|
-
});
|
|
107
|
-
it("should deserialize with references", async () => {
|
|
108
|
-
const app = await fastify();
|
|
109
|
-
const refSchema = Type.Object({ success: Type.Literal(true) }, { $id: "result" });
|
|
110
|
-
const serializer = new SchemaController(app);
|
|
111
|
-
serializer.addSchema(refSchema);
|
|
112
|
-
const schema = Type.Ref("result");
|
|
113
|
-
const serializeFn = serializer.deserialize({ method: "GET", schema, url: "/" });
|
|
114
|
-
const json = await serializeFn({ success: true });
|
|
115
|
-
const res = json.value;
|
|
116
|
-
assert.equal(res.success, true);
|
|
117
|
-
});
|
|
118
|
-
it("should not deserialize with references", async () => {
|
|
119
|
-
const app = await fastify();
|
|
120
|
-
const refSchema = Type.Object({ success: Type.Literal(true) }, { $id: "result" });
|
|
121
|
-
const serializer = new SchemaController(app, { useReferences: false });
|
|
122
|
-
serializer.addSchema(refSchema);
|
|
123
|
-
const schema = Type.Ref("result");
|
|
124
|
-
const serializeFn = serializer.deserialize({ method: "GET", schema, url: "/" });
|
|
125
|
-
const json = await serializeFn({ success: true });
|
|
126
|
-
const res = json.error;
|
|
127
|
-
assert.ok(res instanceof ValidationError);
|
|
128
|
-
});
|
|
129
|
-
it("should deserialize with typebox module", async () => {
|
|
130
|
-
const app = await fastify();
|
|
131
|
-
const serializer = new SchemaController(app);
|
|
132
|
-
const module = Type.Module({
|
|
133
|
-
a: Type.Object({ success: Type.Literal(true) }),
|
|
134
|
-
b: Type.Ref("a")
|
|
135
|
-
});
|
|
136
|
-
const serializeFn = serializer.deserialize({ method: "GET", schema: module.b, url: "/" });
|
|
137
|
-
const json = await serializeFn({ success: true });
|
|
138
|
-
const res = json.value;
|
|
139
|
-
assert.equal(res.success, true);
|
|
140
|
-
});
|
|
141
|
-
it("should deserialize with typebox codec", async () => {
|
|
142
|
-
const app = await fastify();
|
|
143
|
-
const serializer = new SchemaController(app);
|
|
144
|
-
const schema = Type.Object({
|
|
145
|
-
success: Type.Codec(Type.String())
|
|
146
|
-
.Decode(v => v === "true")
|
|
147
|
-
.Encode(v => `${v}`)
|
|
148
|
-
});
|
|
149
|
-
const serializeFn = serializer.deserialize({ method: "GET", schema, url: "/" });
|
|
150
|
-
const json = await serializeFn({ success: "true" });
|
|
151
|
-
const res = json.value;
|
|
152
|
-
assert.equal(res.success, true);
|
|
153
|
-
});
|
|
154
|
-
it("should throw on same $id added", async () => {
|
|
155
|
-
const app = await fastify();
|
|
156
|
-
const bodySchema = Type.Options(Type.Object({
|
|
157
|
-
a: Type.String(),
|
|
158
|
-
b: Type.String()
|
|
159
|
-
}), { $id: "b" });
|
|
160
|
-
const serializer = new SchemaController(app);
|
|
161
|
-
serializer.addSchema(bodySchema);
|
|
162
|
-
assert.throws(() => {
|
|
163
|
-
serializer.addSchema(bodySchema);
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
it("should return schema on $id", async () => {
|
|
167
|
-
const app = await fastify();
|
|
168
|
-
const bodySchema = Type.Options(Type.Object({
|
|
169
|
-
a: Type.String(),
|
|
170
|
-
b: Type.String()
|
|
171
|
-
}), { $id: "b" });
|
|
172
|
-
const serializer = new SchemaController(app);
|
|
173
|
-
serializer.addSchema(bodySchema);
|
|
174
|
-
assert.equal(serializer.getSchema("b"), bodySchema);
|
|
175
|
-
});
|
|
176
|
-
});
|
|
177
|
-
//# sourceMappingURL=schema-controller.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-controller.spec.js","sourceRoot":"","sources":["../../../src/fastify/__tests__/schema-controller.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import assert from "node:assert/strict";
|
|
2
|
-
import { describe, it } from "node:test";
|
|
3
|
-
import { schemaErrorFormatter } from "../schema-error-formatter.js";
|
|
4
|
-
describe("schemaErrorFormatter", () => {
|
|
5
|
-
it("should serialize", async () => {
|
|
6
|
-
const error = schemaErrorFormatter([{ instancePath: "/", keyword: " const", params: {}, schemaPath: "#" }]);
|
|
7
|
-
assert.ok(error instanceof Error);
|
|
8
|
-
});
|
|
9
|
-
});
|
|
10
|
-
//# sourceMappingURL=schema-error-formatter.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-error-formatter.spec.js","sourceRoot":"","sources":["../../../src/fastify/__tests__/schema-error-formatter.spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,KAAK,GAAG,oBAAoB,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5G,MAAM,CAAC,EAAE,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import assert from "node:assert/strict";
|
|
2
|
-
import { describe, it } from "node:test";
|
|
3
|
-
import fastify from "fastify";
|
|
4
|
-
import { ValidationError } from "#error";
|
|
5
|
-
import { validationErrorFormatter } from "../validation-error-formatter.js";
|
|
6
|
-
describe("validationErrorFormatter", () => {
|
|
7
|
-
it("should format ValidationError", async () => {
|
|
8
|
-
const app = await fastify();
|
|
9
|
-
const error = new ValidationError([]);
|
|
10
|
-
const result = await validationErrorFormatter.bind(app)(error);
|
|
11
|
-
assert.ok(result);
|
|
12
|
-
assert.equal(result.success, false);
|
|
13
|
-
assert.equal(result.status, 422);
|
|
14
|
-
assert.equal(result.code, "InvalidValue");
|
|
15
|
-
});
|
|
16
|
-
it("should not format non-ValidationError", async () => {
|
|
17
|
-
const app = await fastify();
|
|
18
|
-
const result = await validationErrorFormatter.bind(app)(new Error());
|
|
19
|
-
assert.equal(result, null);
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
//# sourceMappingURL=validation-error-formatter.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validation-error-formatter.spec.js","sourceRoot":"","sources":["../../../src/formatter/__tests__/validation-error-formatter.spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,GAAG,GAAG,MAAM,OAAO,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/D,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,GAAG,GAAG,MAAM,OAAO,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;QACrE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|