vovk 3.0.0-draft.22 → 3.0.0-draft.23

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
@@ -10,6 +10,7 @@ const HttpException_1 = require("./HttpException");
10
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
+ const reqForm_1 = __importDefault(require("./utils/reqForm"));
13
14
  class _Segment {
14
15
  static getHeadersFromOptions(options) {
15
16
  if (!options)
@@ -128,6 +129,7 @@ class _Segment {
128
129
  body: () => req.json(),
129
130
  query: () => (0, reqQuery_1.default)(req),
130
131
  meta: (meta) => (0, reqMeta_1.default)(req, meta),
132
+ form: () => (0, reqForm_1.default)(req),
131
133
  };
132
134
  try {
133
135
  const result = await staticMethod.call(controller, req, methodParams);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vovk",
3
- "version": "3.0.0-draft.22",
3
+ "version": "3.0.0-draft.23",
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
@@ -74,6 +74,7 @@ export interface _VovkRequest<BODY = undefined, QUERY extends object | undefined
74
74
  body: () => Promise<BODY>;
75
75
  query: () => QUERY;
76
76
  meta: <T = Record<_KnownAny, _KnownAny>>(meta?: T | null) => T;
77
+ form: <T = _KnownAny>() => Promise<T>;
77
78
  };
78
79
  }
79
80
  export type _ControllerStaticMethod<REQ extends _VovkRequest<_KnownAny, _KnownAny> = _VovkRequest<undefined, Record<string, string | string[]>>, PARAMS extends {
@@ -0,0 +1,3 @@
1
+ import { VovkRequest } from 'vovk';
2
+ import { _KnownAny as KnownAny } from '../types';
3
+ export default function reqForm<T = KnownAny>(req: VovkRequest<KnownAny, KnownAny>): Promise<T>;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = reqForm;
4
+ const formMap = new WeakMap();
5
+ async function reqForm(req) {
6
+ if (formMap.has(req)) {
7
+ return formMap.get(req);
8
+ }
9
+ const body = await req.formData();
10
+ const formData = Object.fromEntries(body.entries());
11
+ formMap.set(req, formData);
12
+ return formData;
13
+ }