@openaddresses/batch-schema 9.4.0 → 10.0.1
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/.eslintrc.json +5 -47
- package/.github/workflows/release.yml +5 -2
- package/CHANGELOG.md +8 -0
- package/LICENSE +1 -1
- package/README.md +21 -17
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api.js +46 -0
- package/dist/lib/api.js.map +1 -0
- package/{lib → dist/lib}/openapi.js +35 -29
- package/dist/lib/openapi.js.map +1 -0
- package/dist/lib/schema.js +237 -0
- package/dist/lib/schema.js.map +1 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/test/schema.srv.test.js +98 -0
- package/dist/test/schema.srv.test.js.map +1 -0
- package/docs/assets/style.css +1354 -87
- package/docs/index.html +74 -792
- package/{routes/schema.js → lib/api.ts} +11 -4
- package/lib/openapi.ts +122 -0
- package/lib/schema.ts +293 -0
- package/lib/types.ts +32 -0
- package/package.json +16 -11
- package/test/{schema.srv.test.js → schema.srv.test.ts} +9 -20
- package/tsconfig.json +27 -0
- package/docs/assets/anchor.js +0 -350
- package/docs/assets/bass-addons.css +0 -12
- package/docs/assets/bass.css +0 -544
- package/docs/assets/fonts/EOT/SourceCodePro-Bold.eot +0 -0
- package/docs/assets/fonts/EOT/SourceCodePro-Regular.eot +0 -0
- package/docs/assets/fonts/LICENSE.txt +0 -93
- package/docs/assets/fonts/OTF/SourceCodePro-Bold.otf +0 -0
- package/docs/assets/fonts/OTF/SourceCodePro-Regular.otf +0 -0
- package/docs/assets/fonts/TTF/SourceCodePro-Bold.ttf +0 -0
- package/docs/assets/fonts/TTF/SourceCodePro-Regular.ttf +0 -0
- package/docs/assets/fonts/WOFF/OTF/SourceCodePro-Bold.otf.woff +0 -0
- package/docs/assets/fonts/WOFF/OTF/SourceCodePro-Regular.otf.woff +0 -0
- package/docs/assets/fonts/WOFF/TTF/SourceCodePro-Bold.ttf.woff +0 -0
- package/docs/assets/fonts/WOFF/TTF/SourceCodePro-Regular.ttf.woff +0 -0
- package/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Bold.otf.woff2 +0 -0
- package/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Regular.otf.woff2 +0 -0
- package/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2 +0 -0
- package/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2 +0 -0
- package/docs/assets/fonts/source-code-pro.css +0 -23
- package/docs/assets/github.css +0 -123
- package/docs/assets/site.js +0 -168
- package/docs/assets/split.css +0 -15
- package/docs/assets/split.js +0 -782
- package/lib/middleware.js +0 -159
- package/lib/param.js +0 -29
- package/lib/schema.js +0 -254
- package/schema/req.query.ListSchema.json +0 -25
- package/schema/res.ListSchema.json +0 -47
- package/test/schema.test.js +0 -33
- /package/{index.js → index.ts} +0 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import test from 'tape';
|
|
2
|
+
import express from 'express';
|
|
3
|
+
import Schema from '../index.js';
|
|
4
|
+
const app = express();
|
|
5
|
+
const schema = new Schema(express.Router());
|
|
6
|
+
app.use('/api', schema.router);
|
|
7
|
+
let server;
|
|
8
|
+
test('start', (t) => {
|
|
9
|
+
server = app.listen(2000, async () => {
|
|
10
|
+
await schema.api();
|
|
11
|
+
t.end();
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
test('GET: api/schema', async (t) => {
|
|
15
|
+
try {
|
|
16
|
+
const res = await fetch('http://localhost:2000/api/schema');
|
|
17
|
+
const body = await res.json();
|
|
18
|
+
t.deepEquals(body, {
|
|
19
|
+
'GET /schema': {
|
|
20
|
+
body: false,
|
|
21
|
+
query: true,
|
|
22
|
+
res: true
|
|
23
|
+
},
|
|
24
|
+
'GET /openapi': {
|
|
25
|
+
body: false,
|
|
26
|
+
query: false,
|
|
27
|
+
res: true
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
t.error(err, 'no error');
|
|
33
|
+
}
|
|
34
|
+
t.end();
|
|
35
|
+
});
|
|
36
|
+
test('GET: api/schema?method=FAKE', async (t) => {
|
|
37
|
+
try {
|
|
38
|
+
const res = await fetch('http://localhost:2000/api/schema?method=fake');
|
|
39
|
+
t.notOk(res.ok);
|
|
40
|
+
t.deepEquals(await res.json(), {
|
|
41
|
+
status: 400,
|
|
42
|
+
message: 'Validation Error',
|
|
43
|
+
messages: [
|
|
44
|
+
{ "type": "Query", "errors": [{ "type": 62, "schema": { "anyOf": [{ "const": "GET", "type": "string" }, { "const": "PUT", "type": "string" }, { "const": "POST", "type": "string" }, { "const": "DELETE", "type": "string" }, { "const": "OPTIONS", "type": "string" }, { "const": "HEAD", "type": "string" }, { "const": "PATCH", "type": "string" }, { "const": "TRACE", "type": "string" }] }, "path": "/method", "value": "fake", "message": "Expected union value" }] }
|
|
45
|
+
]
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
t.error(err);
|
|
50
|
+
}
|
|
51
|
+
t.end();
|
|
52
|
+
});
|
|
53
|
+
test('GET: api/schema?method=GET', async (t) => {
|
|
54
|
+
try {
|
|
55
|
+
const res = await fetch('http://localhost:2000/api/schema?method=GET');
|
|
56
|
+
t.notOk(res.ok);
|
|
57
|
+
t.deepEquals(await res.json(), {
|
|
58
|
+
status: 400,
|
|
59
|
+
message: 'url & method params must be used together',
|
|
60
|
+
messages: []
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
t.error(err);
|
|
65
|
+
}
|
|
66
|
+
t.end();
|
|
67
|
+
});
|
|
68
|
+
test('GET: api/schema?url=123', async (t) => {
|
|
69
|
+
try {
|
|
70
|
+
const res = await fetch('http://localhost:2000/api/schema?url=123');
|
|
71
|
+
t.notOk(res.ok);
|
|
72
|
+
t.deepEquals(await res.json(), {
|
|
73
|
+
status: 400,
|
|
74
|
+
message: 'url & method params must be used together',
|
|
75
|
+
messages: []
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
t.error(err);
|
|
80
|
+
}
|
|
81
|
+
t.end();
|
|
82
|
+
});
|
|
83
|
+
test('GET: api/schema?method=GET&url=/schema', async (t) => {
|
|
84
|
+
try {
|
|
85
|
+
const res = await fetch('http://localhost:2000/api/schema?method=GET&url=/schema');
|
|
86
|
+
t.equals(res.status, 200, 'http: 200');
|
|
87
|
+
t.deepEquals(Object.keys(await res.json()).sort(), ['query', 'res'].sort());
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
t.error(err, 'no error');
|
|
91
|
+
}
|
|
92
|
+
t.end();
|
|
93
|
+
});
|
|
94
|
+
test('End', async (t) => {
|
|
95
|
+
await server.close();
|
|
96
|
+
t.end();
|
|
97
|
+
});
|
|
98
|
+
//# sourceMappingURL=schema.srv.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.srv.test.js","sourceRoot":"","sources":["../../test/schema.srv.test.ts"],"names":[],"mappings":"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"}
|