@yuhere/js-jsonrpc2 2.1.2 → 2.1.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.
- package/dist/cli/cli.js +4 -4
- package/dist/cli/demo-methods.d.ts +1 -1
- package/dist/cli/demo-methods.js +1 -1
- package/dist/cli/express.js +2 -2
- package/dist/cli/stdio.js +1 -1
- package/dist/core/Repository.d.ts +2 -2
- package/dist/core/Repository.js +9 -9
- package/dist/core/convert.d.ts +2 -2
- package/dist/core/convert.js +2 -2
- package/dist/core/descriptor.d.ts +3 -3
- package/dist/core/descriptor.js +3 -3
- package/dist/core/index.d.ts +3 -3
- package/dist/core/index.js +2 -2
- package/dist/core/permission.d.ts +2 -2
- package/dist/core/permission.js +2 -2
- package/dist/core/spec-check.d.ts +1 -1
- package/dist/core/spec-check.js +3 -3
- package/dist/core/system-methods.d.ts +1 -1
- package/dist/core/system-methods.js +4 -4
- package/dist/errors/{RpcError.d.ts → RPCError.d.ts} +1 -1
- package/dist/errors/index.d.ts +2 -2
- package/dist/errors/index.js +2 -2
- package/dist/index.d.ts +11 -11
- package/dist/index.js +8 -8
- package/dist/schema/json/index.d.ts +16 -16
- package/dist/schema/json/index.js +4 -4
- package/dist/schema/json/marker.d.ts +1 -1
- package/dist/schema/z/protocol.d.ts +5 -5
- package/dist/schema/z/protocol.js +1 -1
- package/dist/schema/z/register.d.ts +1 -1
- package/dist/schema/z/register.js +1 -1
- package/dist/transport/express/body.js +2 -2
- package/dist/transport/express/index.d.ts +2 -2
- package/dist/transport/express/index.js +1 -1
- package/dist/transport/express/middleware.d.ts +2 -2
- package/dist/transport/express/middleware.js +5 -5
- package/dist/transport/express/respond.d.ts +1 -1
- package/dist/transport/express/respond.js +1 -1
- package/dist/transport/stdio/index.d.ts +1 -1
- package/dist/transport/stdio/index.js +1 -1
- package/dist/transport/stdio/middleware.d.ts +2 -2
- package/dist/transport/stdio/middleware.js +4 -4
- package/dist/transport/ws/index.d.ts +2 -2
- package/dist/transport/ws/index.js +2 -2
- package/dist/transport/ws/middleware.d.ts +2 -2
- package/dist/transport/ws/middleware.js +3 -3
- package/dist/transport/ws/standalone.d.ts +1 -1
- package/dist/transport/ws/standalone.js +2 -2
- package/dist/types.d.ts +4 -4
- package/htdoc/assets/{index-hcP2-9jw.css → index-BAZmvr5x.css} +13 -0
- package/htdoc/assets/{index-CQr-lnlD.js → index-sVQlhxjI.js} +223 -32
- package/htdoc/assets/index-sVQlhxjI.js.map +1 -0
- package/htdoc/index.html +2 -2
- package/package.json +5 -4
- package/webui/src/App.tsx +30 -3
- package/webui/src/api/docGen.ts +188 -0
- package/webui/src/components/SchemaForm.tsx +0 -1
- package/webui/src/components/TestPanel.tsx +53 -10
- package/webui/src/components/Toolbar.tsx +13 -1
- package/webui/src/styles/geek.css +13 -0
- package/dist/schema/index.d.ts +0 -4
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/schema/index.js +0 -4
- package/dist/schema/index.js.map +0 -1
- package/dist/schema/primitives.d.ts +0 -25
- package/dist/schema/primitives.d.ts.map +0 -1
- package/dist/schema/primitives.js +0 -153
- package/dist/schema/primitives.js.map +0 -1
- package/dist/schema/rpc.d.ts +0 -21
- package/dist/schema/rpc.d.ts.map +0 -1
- package/dist/schema/rpc.js +0 -17
- package/dist/schema/rpc.js.map +0 -1
- package/dist/stream/index.d.ts +0 -3
- package/dist/stream/index.d.ts.map +0 -1
- package/dist/stream/index.js +0 -2
- package/dist/stream/index.js.map +0 -1
- package/dist/stream/stringify.d.ts +0 -19
- package/dist/stream/stringify.d.ts.map +0 -1
- package/dist/stream/stringify.js +0 -217
- package/dist/stream/stringify.js.map +0 -1
- package/htdoc/assets/index-CQr-lnlD.js.map +0 -1
- /package/dist/errors/{RpcError.d.ts.map → RPCError.d.ts.map} +0 -0
- /package/dist/errors/{RpcError.js → RPCError.js} +0 -0
- /package/dist/errors/{RpcError.js.map → RPCError.js.map} +0 -0
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export function getMeta(schema) {
|
|
3
|
-
return schema.__meta ?? {};
|
|
4
|
-
}
|
|
5
|
-
function withMeta(schema, meta) {
|
|
6
|
-
const target = schema;
|
|
7
|
-
target.__meta = meta;
|
|
8
|
-
return schema;
|
|
9
|
-
}
|
|
10
|
-
function describe(meta) {
|
|
11
|
-
const kind = meta.kind ?? 'any';
|
|
12
|
-
switch (kind) {
|
|
13
|
-
case 'void':
|
|
14
|
-
return 'void';
|
|
15
|
-
case 'injectable':
|
|
16
|
-
return `injectable:${meta.injectable ?? 'unknown'}`;
|
|
17
|
-
case 'arrayOf':
|
|
18
|
-
return `arrayOf(${String(meta.of ?? 'any')})`;
|
|
19
|
-
case 'objectOf':
|
|
20
|
-
return `objectOf(${String(meta.of ?? 'any')})`;
|
|
21
|
-
case 'oneOf':
|
|
22
|
-
return `oneOf(${JSON.stringify(meta.of ?? [])})`;
|
|
23
|
-
case 'oneOfType':
|
|
24
|
-
return `oneOfType(${JSON.stringify(meta.of ?? [])})`;
|
|
25
|
-
case 'shape':
|
|
26
|
-
return `shape(${JSON.stringify(meta.of ?? {})})`;
|
|
27
|
-
default:
|
|
28
|
-
return kind;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
export function setJSONString(schema, description) {
|
|
32
|
-
const target = schema;
|
|
33
|
-
target.toJSONString = () => description;
|
|
34
|
-
return schema;
|
|
35
|
-
}
|
|
36
|
-
export function toJSONString(schema) {
|
|
37
|
-
const target = schema;
|
|
38
|
-
if (typeof target.toJSONString === 'function') {
|
|
39
|
-
return target.toJSONString();
|
|
40
|
-
}
|
|
41
|
-
return describe(getMeta(schema));
|
|
42
|
-
}
|
|
43
|
-
export function voidSchema() {
|
|
44
|
-
const schema = z.undefined();
|
|
45
|
-
const result = withMeta(schema, { kind: 'void', required: 'none' });
|
|
46
|
-
return setJSONString(result, 'void');
|
|
47
|
-
}
|
|
48
|
-
export function anySchema() {
|
|
49
|
-
const schema = z.any();
|
|
50
|
-
const result = withMeta(schema, { kind: 'any' });
|
|
51
|
-
return setJSONString(result, 'any');
|
|
52
|
-
}
|
|
53
|
-
export function injectableSchema(name) {
|
|
54
|
-
const schema = z.any();
|
|
55
|
-
const result = withMeta(schema, { kind: 'injectable', injectable: name });
|
|
56
|
-
return setJSONString(result, `injectable:${name}`);
|
|
57
|
-
}
|
|
58
|
-
export function named(schema, naming) {
|
|
59
|
-
const meta = getMeta(schema);
|
|
60
|
-
withMeta(schema, { ...meta, naming });
|
|
61
|
-
const base = toJSONString(schema);
|
|
62
|
-
return setJSONString(schema, `${base}.named(${naming})`);
|
|
63
|
-
}
|
|
64
|
-
export function required(schema) {
|
|
65
|
-
const meta = getMeta(schema);
|
|
66
|
-
withMeta(schema, { ...meta, required: 'isRequired' });
|
|
67
|
-
const base = toJSONString(schema);
|
|
68
|
-
return setJSONString(schema, `${base}.isRequired`);
|
|
69
|
-
}
|
|
70
|
-
export function requiredNotNull(schema) {
|
|
71
|
-
const meta = getMeta(schema);
|
|
72
|
-
withMeta(schema, { ...meta, required: 'isRequiredNotNull' });
|
|
73
|
-
const base = toJSONString(schema);
|
|
74
|
-
return setJSONString(schema, `${base}.isRequiredNotNull`);
|
|
75
|
-
}
|
|
76
|
-
export function primitiveSchema(kind) {
|
|
77
|
-
let schema;
|
|
78
|
-
switch (kind) {
|
|
79
|
-
case 'string':
|
|
80
|
-
schema = z.string();
|
|
81
|
-
break;
|
|
82
|
-
case 'number':
|
|
83
|
-
schema = z.number();
|
|
84
|
-
break;
|
|
85
|
-
case 'boolean':
|
|
86
|
-
schema = z.boolean();
|
|
87
|
-
break;
|
|
88
|
-
case 'function':
|
|
89
|
-
schema = z.function();
|
|
90
|
-
break;
|
|
91
|
-
case 'object':
|
|
92
|
-
schema = z.object({}).passthrough();
|
|
93
|
-
break;
|
|
94
|
-
case 'array':
|
|
95
|
-
schema = z.array(z.any());
|
|
96
|
-
break;
|
|
97
|
-
case 'symbol':
|
|
98
|
-
schema = z.custom((value) => typeof value === 'symbol');
|
|
99
|
-
break;
|
|
100
|
-
case 'void':
|
|
101
|
-
schema = z.void();
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
const result = withMeta(schema, { kind });
|
|
105
|
-
return setJSONString(result, kind);
|
|
106
|
-
}
|
|
107
|
-
export function arrayOf(schema) {
|
|
108
|
-
const inner = z.array(schema);
|
|
109
|
-
const description = describe({ kind: 'arrayOf', of: toJSONString(schema) });
|
|
110
|
-
const result = withMeta(inner, { kind: 'arrayOf', of: toJSONString(schema) });
|
|
111
|
-
return setJSONString(result, description);
|
|
112
|
-
}
|
|
113
|
-
export function objectOf(schema) {
|
|
114
|
-
const inner = z.record(schema);
|
|
115
|
-
const description = describe({ kind: 'objectOf', of: toJSONString(schema) });
|
|
116
|
-
const result = withMeta(inner, { kind: 'objectOf', of: toJSONString(schema) });
|
|
117
|
-
return setJSONString(result, description);
|
|
118
|
-
}
|
|
119
|
-
export function oneOf(values) {
|
|
120
|
-
const schema = z.enum(values);
|
|
121
|
-
const description = `oneOf(${JSON.stringify(values)})`;
|
|
122
|
-
const result = withMeta(schema, { kind: 'oneOf', of: values });
|
|
123
|
-
return setJSONString(result, description);
|
|
124
|
-
}
|
|
125
|
-
export function oneOfType(schemas) {
|
|
126
|
-
if (schemas.length === 0) {
|
|
127
|
-
throw new Error('oneOfType requires at least one schema.');
|
|
128
|
-
}
|
|
129
|
-
const [first, ...rest] = schemas;
|
|
130
|
-
if (!first)
|
|
131
|
-
throw new Error('oneOfType requires at least one schema.');
|
|
132
|
-
const union = rest.length === 0
|
|
133
|
-
? first
|
|
134
|
-
: z.union([first, ...rest]);
|
|
135
|
-
const description = `oneOfType(${JSON.stringify(schemas.map((s) => toJSONString(s)))})`;
|
|
136
|
-
const result = withMeta(union, { kind: 'oneOfType', of: schemas.map((s) => toJSONString(s)) });
|
|
137
|
-
return setJSONString(result, description);
|
|
138
|
-
}
|
|
139
|
-
export function shape(shapeMap) {
|
|
140
|
-
const objectShape = z.object(shapeMap);
|
|
141
|
-
const description = `shape(${JSON.stringify(Object.fromEntries(Object.entries(shapeMap).map(([k, v]) => [k, toJSONString(v)])))})`;
|
|
142
|
-
const result = withMeta(objectShape, { kind: 'shape', of: shapeMap });
|
|
143
|
-
return setJSONString(result, description);
|
|
144
|
-
}
|
|
145
|
-
export function instanceOf(cls) {
|
|
146
|
-
// zod's instanceof typing is strict about concrete constructors;
|
|
147
|
-
// runtime behaviour is identical, so we bridge via unknown.
|
|
148
|
-
const schema = z.instanceof(cls);
|
|
149
|
-
const name = cls.name || '<<anonymous>>';
|
|
150
|
-
const result = withMeta(schema, { kind: 'instanceOf', of: name });
|
|
151
|
-
return setJSONString(result, `instanceOf(${name})`);
|
|
152
|
-
}
|
|
153
|
-
//# sourceMappingURL=primitives.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/schema/primitives.ts"],"names":[],"mappings":"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"}
|
package/dist/schema/rpc.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
/** Strict JSON-RPC 2.0 request: id is required (string | number). */
|
|
3
|
-
export declare const RequestSchema: z.ZodObject<{
|
|
4
|
-
jsonrpc: z.ZodLiteral<"2.0">;
|
|
5
|
-
method: z.ZodString;
|
|
6
|
-
params: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodUnknown, "many">, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>;
|
|
7
|
-
id: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
|
|
8
|
-
}, "strip", z.ZodTypeAny, {
|
|
9
|
-
jsonrpc: "2.0";
|
|
10
|
-
method: string;
|
|
11
|
-
id: string | number;
|
|
12
|
-
params?: Record<string, unknown> | unknown[] | undefined;
|
|
13
|
-
}, {
|
|
14
|
-
jsonrpc: "2.0";
|
|
15
|
-
method: string;
|
|
16
|
-
id: string | number;
|
|
17
|
-
params?: Record<string, unknown> | unknown[] | undefined;
|
|
18
|
-
}>;
|
|
19
|
-
export type ParsedRequest = z.infer<typeof RequestSchema>;
|
|
20
|
-
export declare function formatIssues(error: z.ZodError): string;
|
|
21
|
-
//# sourceMappingURL=rpc.d.ts.map
|
package/dist/schema/rpc.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/schema/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,qEAAqE;AACrE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;EAKxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,wBAAgB,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,MAAM,CAOtD"}
|
package/dist/schema/rpc.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
/** Strict JSON-RPC 2.0 request: id is required (string | number). */
|
|
3
|
-
export const RequestSchema = z.object({
|
|
4
|
-
jsonrpc: z.literal('2.0'),
|
|
5
|
-
method: z.string().min(1),
|
|
6
|
-
params: z.union([z.array(z.unknown()), z.record(z.unknown())]).optional(),
|
|
7
|
-
id: z.union([z.string(), z.number()]),
|
|
8
|
-
});
|
|
9
|
-
export function formatIssues(error) {
|
|
10
|
-
return error.issues
|
|
11
|
-
.map((issue) => {
|
|
12
|
-
const path = issue.path.length > 0 ? issue.path.join('.') : '(root)';
|
|
13
|
-
return `${path}: ${issue.message}`;
|
|
14
|
-
})
|
|
15
|
-
.join('; ');
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=rpc.js.map
|
package/dist/schema/rpc.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../src/schema/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,qEAAqE;AACrE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACzB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;CACtC,CAAC,CAAC;AAIH,MAAM,UAAU,YAAY,CAAC,KAAiB;IAC5C,OAAO,KAAK,CAAC,MAAM;SAChB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACrE,OAAO,GAAG,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
|
package/dist/stream/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stream/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/stream/index.js
DELETED
package/dist/stream/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stream/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { Writable } from 'node:stream';
|
|
2
|
-
/** Synchronous serializer that mirrors JSON.stringify but tolerates undefined values. */
|
|
3
|
-
export declare function stringifySync(input: unknown): string;
|
|
4
|
-
export interface PipeOptions {
|
|
5
|
-
/** HTTP status for streaming success (default 200). */
|
|
6
|
-
status?: number;
|
|
7
|
-
/** Additional headers to merge. */
|
|
8
|
-
headers?: Record<string, string>;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Streams `value` to a writable (typically `express.Response`).
|
|
12
|
-
* Sets headers on first chunk and always ends the response.
|
|
13
|
-
*/
|
|
14
|
-
export declare function pipeStringify(value: unknown, res: Writable & {
|
|
15
|
-
setHeader(name: string, value: string): unknown;
|
|
16
|
-
status?(code: number): unknown;
|
|
17
|
-
end(): unknown;
|
|
18
|
-
}, options?: PipeOptions): Promise<void>;
|
|
19
|
-
//# sourceMappingURL=stringify.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stringify.d.ts","sourceRoot":"","sources":["../../src/stream/stringify.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C,yFAAyF;AACzF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAgDpD;AA0GD,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG;IAClE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAChD,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,GAAG,IAAI,OAAO,CAAC;CAChB,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC3C"}
|
package/dist/stream/stringify.js
DELETED
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
import { Readable } from 'node:stream';
|
|
2
|
-
const FLUSH_THRESHOLD = 1024 * 128;
|
|
3
|
-
/** Synchronous serializer that mirrors JSON.stringify but tolerates undefined values. */
|
|
4
|
-
export function stringifySync(input) {
|
|
5
|
-
let buffer = '';
|
|
6
|
-
const walk = (value) => {
|
|
7
|
-
const type = typeof value;
|
|
8
|
-
if (type === 'undefined') {
|
|
9
|
-
buffer += 'undefined';
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
if (type === 'string') {
|
|
13
|
-
buffer += JSON.stringify(value);
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
if (type === 'number' || type === 'boolean') {
|
|
17
|
-
buffer += JSON.stringify(value);
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
if (type === 'object') {
|
|
21
|
-
if (value === null) {
|
|
22
|
-
buffer += 'null';
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
if (Array.isArray(value)) {
|
|
26
|
-
buffer += '[';
|
|
27
|
-
for (let i = 0; i < value.length; i++) {
|
|
28
|
-
if (i !== 0)
|
|
29
|
-
buffer += ',';
|
|
30
|
-
walk(value[i]);
|
|
31
|
-
}
|
|
32
|
-
buffer += ']';
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
buffer += '{';
|
|
36
|
-
let written = 0;
|
|
37
|
-
for (const key of Object.keys(value)) {
|
|
38
|
-
const child = value[key];
|
|
39
|
-
if (child === undefined)
|
|
40
|
-
continue;
|
|
41
|
-
if (written !== 0)
|
|
42
|
-
buffer += ',';
|
|
43
|
-
buffer += JSON.stringify(key) + ':';
|
|
44
|
-
walk(child);
|
|
45
|
-
written++;
|
|
46
|
-
}
|
|
47
|
-
buffer += '}';
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
walk(input);
|
|
52
|
-
return buffer;
|
|
53
|
-
}
|
|
54
|
-
async function* walkStream(input, level = 0) {
|
|
55
|
-
let buffer = '';
|
|
56
|
-
const write = (chunk, force = false) => {
|
|
57
|
-
buffer += chunk;
|
|
58
|
-
if (buffer.length >= FLUSH_THRESHOLD || force) {
|
|
59
|
-
const out = buffer;
|
|
60
|
-
buffer = '';
|
|
61
|
-
return out;
|
|
62
|
-
}
|
|
63
|
-
return undefined;
|
|
64
|
-
};
|
|
65
|
-
const type = typeof input;
|
|
66
|
-
if (type === 'undefined') {
|
|
67
|
-
const out = write('undefined');
|
|
68
|
-
if (out)
|
|
69
|
-
yield out;
|
|
70
|
-
}
|
|
71
|
-
else if (type === 'string' || type === 'number' || type === 'boolean') {
|
|
72
|
-
const out = write(JSON.stringify(input));
|
|
73
|
-
if (out)
|
|
74
|
-
yield out;
|
|
75
|
-
}
|
|
76
|
-
else if (type === 'object') {
|
|
77
|
-
if (input === null) {
|
|
78
|
-
const out = write('null');
|
|
79
|
-
if (out)
|
|
80
|
-
yield out;
|
|
81
|
-
}
|
|
82
|
-
else if (Array.isArray(input)) {
|
|
83
|
-
{
|
|
84
|
-
const out = write('[');
|
|
85
|
-
if (out)
|
|
86
|
-
yield out;
|
|
87
|
-
}
|
|
88
|
-
for (let i = 0; i < input.length; i++) {
|
|
89
|
-
if (i !== 0) {
|
|
90
|
-
const out = write(',');
|
|
91
|
-
if (out)
|
|
92
|
-
yield out;
|
|
93
|
-
}
|
|
94
|
-
for await (const chunk of walkStream(input[i], level + 1)) {
|
|
95
|
-
const out = write(chunk);
|
|
96
|
-
if (out)
|
|
97
|
-
yield out;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
{
|
|
101
|
-
const out = write(']');
|
|
102
|
-
if (out)
|
|
103
|
-
yield out;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
else if (typeof input.next === 'function') {
|
|
107
|
-
// Generator support (legacy behaviour).
|
|
108
|
-
const iterator = input;
|
|
109
|
-
{
|
|
110
|
-
const out = write('[');
|
|
111
|
-
if (out)
|
|
112
|
-
yield out;
|
|
113
|
-
}
|
|
114
|
-
let index = 0;
|
|
115
|
-
for (;;) {
|
|
116
|
-
const next = await Promise.resolve(iterator.next());
|
|
117
|
-
if (next.done)
|
|
118
|
-
break;
|
|
119
|
-
if (index !== 0) {
|
|
120
|
-
const out = write(',');
|
|
121
|
-
if (out)
|
|
122
|
-
yield out;
|
|
123
|
-
}
|
|
124
|
-
for await (const chunk of walkStream(next.value, level + 1)) {
|
|
125
|
-
const out = write(chunk);
|
|
126
|
-
if (out)
|
|
127
|
-
yield out;
|
|
128
|
-
}
|
|
129
|
-
index++;
|
|
130
|
-
}
|
|
131
|
-
{
|
|
132
|
-
const out = write(']');
|
|
133
|
-
if (out)
|
|
134
|
-
yield out;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
{
|
|
139
|
-
const out = write('{');
|
|
140
|
-
if (out)
|
|
141
|
-
yield out;
|
|
142
|
-
}
|
|
143
|
-
const record = input;
|
|
144
|
-
let written = 0;
|
|
145
|
-
for (const key of Object.keys(record)) {
|
|
146
|
-
const child = record[key];
|
|
147
|
-
if (child === undefined)
|
|
148
|
-
continue;
|
|
149
|
-
if (written !== 0) {
|
|
150
|
-
const out = write(',');
|
|
151
|
-
if (out)
|
|
152
|
-
yield out;
|
|
153
|
-
}
|
|
154
|
-
{
|
|
155
|
-
const out = write(JSON.stringify(key) + ':');
|
|
156
|
-
if (out)
|
|
157
|
-
yield out;
|
|
158
|
-
}
|
|
159
|
-
for await (const chunk of walkStream(child, level + 1)) {
|
|
160
|
-
const out = write(chunk);
|
|
161
|
-
if (out)
|
|
162
|
-
yield out;
|
|
163
|
-
}
|
|
164
|
-
written++;
|
|
165
|
-
}
|
|
166
|
-
{
|
|
167
|
-
const out = write('}');
|
|
168
|
-
if (out)
|
|
169
|
-
yield out;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
if (level === 0) {
|
|
174
|
-
const out = write('', true);
|
|
175
|
-
if (out)
|
|
176
|
-
yield out;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Streams `value` to a writable (typically `express.Response`).
|
|
181
|
-
* Sets headers on first chunk and always ends the response.
|
|
182
|
-
*/
|
|
183
|
-
export async function pipeStringify(value, res, options = {}) {
|
|
184
|
-
const readable = Readable.from(walkStream(value));
|
|
185
|
-
let bytesSent = 0;
|
|
186
|
-
await new Promise((resolve) => {
|
|
187
|
-
readable.on('data', (chunk) => {
|
|
188
|
-
if (bytesSent === 0) {
|
|
189
|
-
res.setHeader('Cache-Control', 'no-cache');
|
|
190
|
-
res.setHeader('Content-Type', 'application/json');
|
|
191
|
-
if (options.headers) {
|
|
192
|
-
for (const [name, headerValue] of Object.entries(options.headers)) {
|
|
193
|
-
res.setHeader(name, headerValue);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
if (options.status && typeof res.status === 'function') {
|
|
197
|
-
res.status(options.status);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
bytesSent += typeof chunk === 'string' ? Buffer.byteLength(chunk) : chunk.length;
|
|
201
|
-
});
|
|
202
|
-
readable.on('end', () => {
|
|
203
|
-
res.end();
|
|
204
|
-
resolve();
|
|
205
|
-
});
|
|
206
|
-
readable.on('error', (error) => {
|
|
207
|
-
console.error(error);
|
|
208
|
-
if (typeof res.status === 'function') {
|
|
209
|
-
res.status(500);
|
|
210
|
-
}
|
|
211
|
-
res.end();
|
|
212
|
-
resolve();
|
|
213
|
-
});
|
|
214
|
-
readable.pipe(res, { end: false });
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
//# sourceMappingURL=stringify.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stringify.js","sourceRoot":"","sources":["../../src/stream/stringify.ts"],"names":[],"mappings":"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"}
|