vovk 3.0.0-draft.19 → 3.0.0-draft.20
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/Segment.js +3 -3
- package/{StreamResponse.d.ts → StreamJSONResponse.d.ts} +3 -2
- package/{StreamResponse.js → StreamJSONResponse.js} +6 -5
- package/client/defaultFetcher.js +1 -1
- package/client/types.d.ts +3 -3
- package/index.d.ts +3 -3
- package/index.js +3 -3
- package/package.json +1 -1
- package/types.d.ts +10 -34
package/Segment.js
CHANGED
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports._Segment = void 0;
|
|
8
8
|
const types_1 = require("./types");
|
|
9
9
|
const HttpException_1 = require("./HttpException");
|
|
10
|
-
const
|
|
10
|
+
const StreamJSONResponse_1 = require("./StreamJSONResponse");
|
|
11
11
|
const reqQuery_1 = __importDefault(require("./utils/reqQuery"));
|
|
12
12
|
const reqMeta_1 = __importDefault(require("./utils/reqMeta"));
|
|
13
13
|
class _Segment {
|
|
@@ -137,9 +137,9 @@ class _Segment {
|
|
|
137
137
|
(Reflect.has(result, Symbol.asyncIterator) &&
|
|
138
138
|
typeof result[Symbol.asyncIterator] === 'function'));
|
|
139
139
|
if (isIterator && !(result instanceof Array)) {
|
|
140
|
-
const streamResponse = new
|
|
140
|
+
const streamResponse = new StreamJSONResponse_1._StreamJSONResponse({
|
|
141
141
|
headers: {
|
|
142
|
-
...
|
|
142
|
+
...StreamJSONResponse_1._StreamJSONResponse.defaultHeaders,
|
|
143
143
|
..._a.getHeadersFromOptions(staticMethod._options),
|
|
144
144
|
},
|
|
145
145
|
});
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { _KnownAny as KnownAny, _StreamAbortMessage as StreamAbortMessage } from './types';
|
|
2
2
|
import './utils/shim';
|
|
3
|
-
export declare class
|
|
3
|
+
export declare class _StreamJSONResponse<T> extends Response {
|
|
4
4
|
static defaultHeaders: {
|
|
5
|
-
'
|
|
5
|
+
'content-type': string;
|
|
6
|
+
'x-vovk-stream': string;
|
|
6
7
|
};
|
|
7
8
|
isClosed: boolean;
|
|
8
9
|
controller?: ReadableStreamDefaultController;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports._StreamJSONResponse = void 0;
|
|
4
4
|
require("./utils/shim");
|
|
5
|
-
class
|
|
5
|
+
class _StreamJSONResponse extends Response {
|
|
6
6
|
static defaultHeaders = {
|
|
7
|
-
'
|
|
7
|
+
'content-type': 'text/plain; charset=utf-8',
|
|
8
|
+
'x-vovk-stream': 'true',
|
|
8
9
|
};
|
|
9
10
|
isClosed = false;
|
|
10
11
|
controller;
|
|
@@ -23,7 +24,7 @@ class _StreamResponse extends Response {
|
|
|
23
24
|
});
|
|
24
25
|
super(readableStream, {
|
|
25
26
|
...init,
|
|
26
|
-
headers: init?.headers ??
|
|
27
|
+
headers: init?.headers ?? _StreamJSONResponse.defaultHeaders,
|
|
27
28
|
});
|
|
28
29
|
this.readableStream = readableStream;
|
|
29
30
|
this.encoder = encoder;
|
|
@@ -50,4 +51,4 @@ class _StreamResponse extends Response {
|
|
|
50
51
|
this.close();
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
|
-
exports.
|
|
54
|
+
exports._StreamJSONResponse = _StreamJSONResponse;
|
package/client/defaultFetcher.js
CHANGED
|
@@ -41,7 +41,7 @@ const defaultFetcher = async ({ httpMethod, getEndpoint, validate, defaultHandle
|
|
|
41
41
|
if (response.headers.get('content-type')?.includes('application/json')) {
|
|
42
42
|
return defaultHandler(response);
|
|
43
43
|
}
|
|
44
|
-
if (response.headers.get('
|
|
44
|
+
if (response.headers.get('x-vovk-stream') === 'true') {
|
|
45
45
|
return defaultStreamHandler(response);
|
|
46
46
|
}
|
|
47
47
|
return response;
|
package/client/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { _KnownAny as KnownAny, _HttpMethod as HttpMethod, _ControllerStaticMethod, _VovkControllerBody, _VovkControllerQuery, _VovkControllerParams } from '../types';
|
|
2
|
-
import {
|
|
2
|
+
import { _StreamJSONResponse as StreamJSONResponse } from '../StreamJSONResponse';
|
|
3
3
|
import type { NextResponse } from 'next/server';
|
|
4
4
|
export type _StaticMethodInput<T extends _ControllerStaticMethod> = (_VovkControllerBody<T> extends undefined | void ? {
|
|
5
5
|
body?: undefined;
|
|
@@ -26,7 +26,7 @@ export type _StreamAsyncIterator<T> = {
|
|
|
26
26
|
};
|
|
27
27
|
type StaticMethodReturn<T extends _ControllerStaticMethod> = ReturnType<T> extends NextResponse<infer U> | Promise<NextResponse<infer U>> ? U : ReturnType<T> extends Response | Promise<Response> ? unknown : ReturnType<T>;
|
|
28
28
|
type StaticMethodReturnPromise<T extends _ControllerStaticMethod> = ToPromise<StaticMethodReturn<T>>;
|
|
29
|
-
type ClientMethod<T extends (...args: KnownAny[]) => void | object |
|
|
29
|
+
type ClientMethod<T extends (...args: KnownAny[]) => void | object | StreamJSONResponse<STREAM> | Promise<StreamJSONResponse<STREAM>>, OPTS extends Record<string, KnownAny>, STREAM extends KnownAny = unknown> = <R>(options: (_StaticMethodInput<T> extends {
|
|
30
30
|
body?: undefined | null;
|
|
31
31
|
query?: undefined;
|
|
32
32
|
params?: undefined;
|
|
@@ -34,7 +34,7 @@ type ClientMethod<T extends (...args: KnownAny[]) => void | object | StreamRespo
|
|
|
34
34
|
params: _StaticMethodInput<T>['params'];
|
|
35
35
|
} : unknown : _StaticMethodInput<T>) & (Partial<OPTS & {
|
|
36
36
|
transform: (staticMethodReturn: Awaited<StaticMethodReturn<T>>) => R;
|
|
37
|
-
}> | void)) => ReturnType<T> extends Promise<
|
|
37
|
+
}> | void)) => ReturnType<T> extends Promise<StreamJSONResponse<infer U>> | StreamJSONResponse<infer U> | Iterator<infer U> | AsyncIterator<infer U> ? Promise<_StreamAsyncIterator<U>> : R extends object ? Promise<R> : StaticMethodReturnPromise<T>;
|
|
38
38
|
type OmitNever<T> = {
|
|
39
39
|
[K in keyof T as T[K] extends never ? never : K]: T[K];
|
|
40
40
|
};
|
package/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { _createSegment as createSegment } from './createSegment';
|
|
2
|
-
import { type _VovkErrorResponse as VovkErrorResponse, type _VovkRequest as VovkRequest, type _VovkBody as VovkBody, type _VovkQuery as VovkQuery, type _VovkParams as VovkParams, type _VovkReturnType as VovkReturnType, type _VovkYieldType as VovkYieldType, type _VovkControllerBody as VovkControllerBody, type _VovkControllerQuery as VovkControllerQuery, type _VovkControllerParams as VovkControllerParams, type
|
|
2
|
+
import { type _VovkErrorResponse as VovkErrorResponse, type _VovkRequest as VovkRequest, type _VovkBody as VovkBody, type _VovkQuery as VovkQuery, type _VovkParams as VovkParams, type _VovkReturnType as VovkReturnType, type _VovkYieldType as VovkYieldType, type _VovkControllerBody as VovkControllerBody, type _VovkControllerQuery as VovkControllerQuery, type _VovkControllerParams as VovkControllerParams, type _VovkControllerYieldType as VovkControllerYieldType, type _VovkSchema as VovkSchema, _HttpStatus as HttpStatus, _HttpMethod as HttpMethod } from './types';
|
|
3
3
|
import type { _VovkClientOptions as VovkClientOptions, _VovkClientFetcher as VovkClientFetcher, _VovkDefaultFetcherOptions as VovkDefaultFetcherOptions, _VovkValidateOnClient as VovkValidateOnClient } from './client/types';
|
|
4
4
|
import { _HttpException as HttpException } from './HttpException';
|
|
5
5
|
import { _createDecorator as createDecorator } from './createDecorator';
|
|
6
|
-
import {
|
|
6
|
+
import { _StreamJSONResponse as StreamJSONResponse } from './StreamJSONResponse';
|
|
7
7
|
import { worker } from './worker';
|
|
8
8
|
import { _generateStaticAPI as generateStaticAPI } from './generateStaticAPI';
|
|
9
|
-
export { type VovkClientFetcher, type VovkDefaultFetcherOptions, type VovkValidateOnClient, type VovkSchema, type VovkErrorResponse, type VovkRequest, type
|
|
9
|
+
export { type VovkClientFetcher, type VovkDefaultFetcherOptions, type VovkValidateOnClient, type VovkSchema, type VovkErrorResponse, type VovkRequest, type VovkControllerBody, type VovkControllerQuery, type VovkControllerParams, type VovkControllerYieldType, type VovkBody, type VovkQuery, type VovkParams, type VovkYieldType, type VovkReturnType, type VovkClientOptions, StreamJSONResponse, HttpException, HttpStatus, HttpMethod, createSegment, createDecorator, worker, generateStaticAPI, };
|
|
10
10
|
export declare const get: {
|
|
11
11
|
(givenPath?: string | undefined, options?: import("./types")._DecoratorOptions | undefined): ReturnType<(givenPath?: string, options?: import("./types")._DecoratorOptions) => (givenTarget: import("./types")._KnownAny, propertyKey: string) => void>;
|
|
12
12
|
auto: (options?: import("./types")._DecoratorOptions) => (givenTarget: import("./types")._KnownAny, propertyKey: string) => void;
|
package/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.initVovk = exports.prefix = exports.options = exports.head = exports.del = exports.patch = exports.put = exports.post = exports.get = exports.generateStaticAPI = exports.worker = exports.createDecorator = exports.createSegment = exports.HttpMethod = exports.HttpStatus = exports.HttpException = exports.
|
|
4
|
+
exports.initVovk = exports.prefix = exports.options = exports.head = exports.del = exports.patch = exports.put = exports.post = exports.get = exports.generateStaticAPI = exports.worker = exports.createDecorator = exports.createSegment = exports.HttpMethod = exports.HttpStatus = exports.HttpException = exports.StreamJSONResponse = void 0;
|
|
5
5
|
const createSegment_1 = require("./createSegment");
|
|
6
6
|
Object.defineProperty(exports, "createSegment", { enumerable: true, get: function () { return createSegment_1._createSegment; } });
|
|
7
7
|
const types_1 = require("./types");
|
|
@@ -11,8 +11,8 @@ const HttpException_1 = require("./HttpException");
|
|
|
11
11
|
Object.defineProperty(exports, "HttpException", { enumerable: true, get: function () { return HttpException_1._HttpException; } });
|
|
12
12
|
const createDecorator_1 = require("./createDecorator");
|
|
13
13
|
Object.defineProperty(exports, "createDecorator", { enumerable: true, get: function () { return createDecorator_1._createDecorator; } });
|
|
14
|
-
const
|
|
15
|
-
Object.defineProperty(exports, "
|
|
14
|
+
const StreamJSONResponse_1 = require("./StreamJSONResponse");
|
|
15
|
+
Object.defineProperty(exports, "StreamJSONResponse", { enumerable: true, get: function () { return StreamJSONResponse_1._StreamJSONResponse; } });
|
|
16
16
|
const worker_1 = require("./worker");
|
|
17
17
|
Object.defineProperty(exports, "worker", { enumerable: true, get: function () { return worker_1.worker; } });
|
|
18
18
|
const generateStaticAPI_1 = require("./generateStaticAPI");
|
package/package.json
CHANGED
package/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { NextRequest } from 'next/server';
|
|
2
|
-
import type {
|
|
2
|
+
import type { _StreamJSONResponse as StreamJSONResponse } from './StreamJSONResponse';
|
|
3
3
|
import { _StreamAsyncIterator as StreamAsyncIterator } from './client/types';
|
|
4
4
|
export type _KnownAny = any;
|
|
5
5
|
export type _StaticClass = Function;
|
|
@@ -76,39 +76,15 @@ export type _ControllerStaticMethod<REQ extends _VovkRequest<_KnownAny, _KnownAn
|
|
|
76
76
|
} = _KnownAny> = ((req: REQ, params: PARAMS) => unknown) & {
|
|
77
77
|
_controller?: _VovkController;
|
|
78
78
|
};
|
|
79
|
-
export type _VovkControllerBody<T extends
|
|
80
|
-
export type _VovkControllerQuery<T extends
|
|
81
|
-
export type _VovkControllerParams<T extends
|
|
82
|
-
export type
|
|
83
|
-
export type
|
|
84
|
-
export type
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
export type _VovkClientQuery<T extends (options: OPTIONS) => _KnownAny, OPTIONS extends {
|
|
89
|
-
query: Q;
|
|
90
|
-
[key: string]: _KnownAny;
|
|
91
|
-
} = Parameters<T>[0], Q = _KnownAny> = Parameters<T>[0]['query'];
|
|
92
|
-
export type _VovkClientParams<T extends (options: OPTIONS) => _KnownAny, OPTIONS extends {
|
|
93
|
-
params: P;
|
|
94
|
-
[key: string]: _KnownAny;
|
|
95
|
-
} = Parameters<T>[0], P = _KnownAny> = Parameters<T>[0]['params'];
|
|
96
|
-
export type _VovkClientYieldType<T extends (...args: _KnownAny[]) => unknown> = T extends (...args: _KnownAny[]) => Promise<StreamAsyncIterator<infer Y>> ? Y : never;
|
|
97
|
-
export type _VovkClientReturnType<T extends (...args: _KnownAny) => unknown> = Awaited<ReturnType<T>>;
|
|
98
|
-
export type _VovkBody<T extends (options: OPTIONS) => _KnownAny, OPTIONS extends {
|
|
99
|
-
body: B;
|
|
100
|
-
[key: string]: _KnownAny;
|
|
101
|
-
} = Parameters<T>[0], B = _KnownAny> = _VovkClientBody<T, OPTIONS, B>;
|
|
102
|
-
export type _VovkQuery<T extends (options: OPTIONS) => _KnownAny, OPTIONS extends {
|
|
103
|
-
query: Q;
|
|
104
|
-
[key: string]: _KnownAny;
|
|
105
|
-
} = Parameters<T>[0], Q = _KnownAny> = _VovkClientQuery<T, OPTIONS, Q>;
|
|
106
|
-
export type _VovkParams<T extends (options: OPTIONS) => _KnownAny, OPTIONS extends {
|
|
107
|
-
params: P;
|
|
108
|
-
[key: string]: _KnownAny;
|
|
109
|
-
} = Parameters<T>[0], P = _KnownAny> = _VovkClientParams<T, OPTIONS, P>;
|
|
110
|
-
export type _VovkReturnType<T extends (...args: _KnownAny) => unknown> = _VovkClientReturnType<T>;
|
|
111
|
-
export type _VovkYieldType<T extends (...args: _KnownAny) => unknown> = _VovkClientYieldType<T>;
|
|
79
|
+
export type _VovkControllerBody<T extends (...args: _KnownAny) => _KnownAny> = Awaited<ReturnType<Parameters<T>[0]['vovk']['body']>>;
|
|
80
|
+
export type _VovkControllerQuery<T extends (...args: _KnownAny) => _KnownAny> = ReturnType<Parameters<T>[0]['vovk']['query']>;
|
|
81
|
+
export type _VovkControllerParams<T extends (...args: _KnownAny) => _KnownAny> = Parameters<T>[1];
|
|
82
|
+
export type _VovkControllerYieldType<T extends (req: _VovkRequest<_KnownAny, _KnownAny>) => _KnownAny> = T extends (...args: _KnownAny[]) => AsyncGenerator<infer Y, _KnownAny, _KnownAny> ? Y : T extends (...args: _KnownAny[]) => Generator<infer Y, _KnownAny, _KnownAny> ? Y : T extends (...args: _KnownAny[]) => Promise<StreamJSONResponse<infer Y>> | StreamJSONResponse<infer Y> ? Y : never;
|
|
83
|
+
export type _VovkBody<T extends (...args: _KnownAny[]) => unknown> = Parameters<T>[0]['body'];
|
|
84
|
+
export type _VovkQuery<T extends (...args: _KnownAny[]) => unknown> = Parameters<T>[0]['query'];
|
|
85
|
+
export type _VovkParams<T extends (...args: _KnownAny[]) => unknown> = Parameters<T>[0]['params'];
|
|
86
|
+
export type _VovkYieldType<T extends (...args: _KnownAny[]) => unknown> = T extends (...args: _KnownAny[]) => Promise<StreamAsyncIterator<infer Y>> ? Y : never;
|
|
87
|
+
export type _VovkReturnType<T extends (...args: _KnownAny) => unknown> = Awaited<ReturnType<T>>;
|
|
112
88
|
export type _StreamAbortMessage = {
|
|
113
89
|
isError: true;
|
|
114
90
|
reason: _KnownAny;
|