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 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 StreamResponse_1 = require("./StreamResponse");
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 StreamResponse_1._StreamResponse({
140
+ const streamResponse = new StreamJSONResponse_1._StreamJSONResponse({
141
141
  headers: {
142
- ...StreamResponse_1._StreamResponse.defaultHeaders,
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 _StreamResponse<T> extends Response {
3
+ export declare class _StreamJSONResponse<T> extends Response {
4
4
  static defaultHeaders: {
5
- 'Content-Type': string;
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._StreamResponse = void 0;
3
+ exports._StreamJSONResponse = void 0;
4
4
  require("./utils/shim");
5
- class _StreamResponse extends Response {
5
+ class _StreamJSONResponse extends Response {
6
6
  static defaultHeaders = {
7
- 'Content-Type': 'text/plain; charset=utf-8',
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 ?? _StreamResponse.defaultHeaders,
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._StreamResponse = _StreamResponse;
54
+ exports._StreamJSONResponse = _StreamJSONResponse;
@@ -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('content-type')?.includes('text/plain; charset=utf-8')) {
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 { _StreamResponse as StreamResponse } from '../StreamResponse';
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 | StreamResponse<STREAM> | Promise<StreamResponse<STREAM>>, OPTS extends Record<string, KnownAny>, STREAM extends KnownAny = unknown> = <R>(options: (_StaticMethodInput<T> extends {
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<StreamResponse<infer U>> | StreamResponse<infer U> | Iterator<infer U> | AsyncIterator<infer U> ? Promise<_StreamAsyncIterator<U>> : R extends object ? Promise<R> : StaticMethodReturnPromise<T>;
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 _VovkControllerReturnType as VovkControllerReturnType, type _VovkControllerYieldType as VovkControllerYieldType, type _VovkSchema as VovkSchema, _HttpStatus as HttpStatus, _HttpMethod as HttpMethod } from './types';
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 { _StreamResponse as StreamResponse } from './StreamResponse';
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 VovkBody, type VovkQuery, type VovkParams, type VovkReturnType, type VovkYieldType, type VovkControllerBody, type VovkControllerQuery, type VovkControllerParams, type VovkControllerReturnType, type VovkControllerYieldType, type VovkClientOptions, StreamResponse, HttpException, HttpStatus, HttpMethod, createSegment, createDecorator, worker, generateStaticAPI, };
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.StreamResponse = void 0;
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 StreamResponse_1 = require("./StreamResponse");
15
- Object.defineProperty(exports, "StreamResponse", { enumerable: true, get: function () { return StreamResponse_1._StreamResponse; } });
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vovk",
3
- "version": "3.0.0-draft.19",
3
+ "version": "3.0.0-draft.20",
4
4
  "description": "RESTful RPC for Next.js - Transforms Next.js into a powerful REST API platform with RPC capabilities.",
5
5
  "repository": {
6
6
  "type": "git",
package/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { NextRequest } from 'next/server';
2
- import type { _StreamResponse as StreamResponse } from './StreamResponse';
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 _ControllerStaticMethod<_KnownAny, _KnownAny>> = Awaited<ReturnType<Parameters<T>[0]['vovk']['body']>>;
80
- export type _VovkControllerQuery<T extends _ControllerStaticMethod<_KnownAny, _KnownAny>> = ReturnType<Parameters<T>[0]['vovk']['query']>;
81
- export type _VovkControllerParams<T extends _ControllerStaticMethod<_KnownAny, _KnownAny>> = Parameters<T>[1];
82
- export type _VovkControllerReturnType<T extends _ControllerStaticMethod<_KnownAny, _KnownAny>> = Awaited<ReturnType<T>>;
83
- 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<StreamResponse<infer Y>> | StreamResponse<infer Y> ? Y : never;
84
- export type _VovkClientBody<T extends (options: OPTIONS) => _KnownAny, OPTIONS extends {
85
- body: B;
86
- [key: string]: _KnownAny;
87
- } = Parameters<T>[0], B = _KnownAny> = Parameters<T>[0]['body'];
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;