@powerlines/plugin-prisma 0.2.207 → 0.2.208

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.
Files changed (82) hide show
  1. package/dist/_virtual/rolldown_runtime.cjs +29 -0
  2. package/dist/api/client/client.gen.cjs +175 -8
  3. package/dist/api/client/client.gen.mjs +174 -7
  4. package/dist/api/client/index.cjs +13 -18
  5. package/dist/api/client/index.mjs +5 -10
  6. package/dist/api/client/utils.gen.cjs +186 -13
  7. package/dist/api/client/utils.gen.mjs +178 -5
  8. package/dist/api/client.gen.cjs +8 -12
  9. package/dist/api/client.gen.mjs +7 -11
  10. package/dist/api/core/auth.gen.cjs +11 -2
  11. package/dist/api/core/auth.gen.mjs +9 -1
  12. package/dist/api/core/bodySerializer.gen.cjs +34 -4
  13. package/dist/api/core/bodySerializer.gen.mjs +30 -1
  14. package/dist/api/core/params.gen.cjs +64 -2
  15. package/dist/api/core/params.gen.mjs +62 -1
  16. package/dist/api/core/pathSerializer.gen.cjs +86 -7
  17. package/dist/api/core/pathSerializer.gen.mjs +79 -1
  18. package/dist/api/core/queryKeySerializer.gen.cjs +65 -4
  19. package/dist/api/core/queryKeySerializer.gen.mjs +61 -1
  20. package/dist/api/core/serverSentEvents.gen.cjs +94 -2
  21. package/dist/api/core/serverSentEvents.gen.mjs +92 -1
  22. package/dist/api/core/utils.gen.cjs +80 -6
  23. package/dist/api/core/utils.gen.mjs +76 -2
  24. package/dist/api/sdk.gen.cjs +255 -13
  25. package/dist/api/sdk.gen.mjs +254 -12
  26. package/dist/api/types.gen.cjs +0 -1
  27. package/dist/api/types.gen.mjs +0 -2
  28. package/dist/helpers/get-schema.cjs +80 -2
  29. package/dist/helpers/get-schema.mjs +76 -1
  30. package/dist/helpers/index.cjs +6 -6
  31. package/dist/helpers/index.mjs +3 -3
  32. package/dist/helpers/prisma-postgres.cjs +15 -2
  33. package/dist/helpers/prisma-postgres.mjs +13 -1
  34. package/dist/helpers/schema-creator.cjs +60 -2
  35. package/dist/helpers/schema-creator.mjs +58 -1
  36. package/dist/index.cjs +14 -25
  37. package/dist/index.mjs +6 -18
  38. package/dist/types/index.cjs +0 -3
  39. package/dist/types/index.mjs +0 -4
  40. package/dist/types/plugin.cjs +0 -1
  41. package/dist/types/plugin.mjs +0 -2
  42. package/dist/types/prisma.cjs +0 -1
  43. package/dist/types/prisma.mjs +0 -2
  44. package/package.json +5 -5
  45. package/dist/auth.gen-BFteuMTV.cjs +0 -17
  46. package/dist/auth.gen-C4FxE4_3.mjs +0 -11
  47. package/dist/bodySerializer.gen-BLtxkFoA.cjs +0 -50
  48. package/dist/bodySerializer.gen-DBXNewIA.mjs +0 -32
  49. package/dist/client-BlRUW8mL.mjs +0 -1
  50. package/dist/client-DBAc9HV1.cjs +0 -0
  51. package/dist/client.gen-COMS1glH.mjs +0 -8
  52. package/dist/client.gen-CPQm4WCv.mjs +0 -176
  53. package/dist/client.gen-DPSMNZNm.cjs +0 -181
  54. package/dist/client.gen-JhYC1fDf.cjs +0 -13
  55. package/dist/get-schema-CKw6MiKb.mjs +0 -78
  56. package/dist/get-schema-CqMBOHOd.cjs +0 -118
  57. package/dist/params.gen-BM1l95BD.mjs +0 -64
  58. package/dist/params.gen-BtCSnwiV.cjs +0 -70
  59. package/dist/pathSerializer.gen-BEbuI0Vn.cjs +0 -117
  60. package/dist/pathSerializer.gen-m7BRzH23.mjs +0 -81
  61. package/dist/plugin-DE9fKOLA.cjs +0 -0
  62. package/dist/plugin-EFmNQLKA.mjs +0 -1
  63. package/dist/prisma-BzQJneyW.cjs +0 -0
  64. package/dist/prisma-CB-m5c-j.mjs +0 -1
  65. package/dist/prisma-postgres-CAOpTtWq.mjs +0 -15
  66. package/dist/prisma-postgres-dGaLzxF3.cjs +0 -21
  67. package/dist/queryKeySerializer.gen-4TWHHXn3.cjs +0 -81
  68. package/dist/queryKeySerializer.gen-BMMZAjVN.mjs +0 -63
  69. package/dist/schema-creator-Cfian3ih.mjs +0 -60
  70. package/dist/schema-creator-zmlwh4-l.cjs +0 -66
  71. package/dist/sdk.gen-B2his2jD.mjs +0 -256
  72. package/dist/sdk.gen-CAWIQ8BM.cjs +0 -261
  73. package/dist/serverSentEvents.gen-C4apQvDl.mjs +0 -94
  74. package/dist/serverSentEvents.gen-CiMMmhyQ.cjs +0 -100
  75. package/dist/types-CmY9-4ff.cjs +0 -0
  76. package/dist/types-Dbwx-Khg.mjs +0 -1
  77. package/dist/types.gen-BN-p9nVT.cjs +0 -0
  78. package/dist/types.gen-CS2KiRfG.mjs +0 -1
  79. package/dist/utils.gen-Bk2pTkV1.cjs +0 -101
  80. package/dist/utils.gen-C-7sZa7Z.mjs +0 -180
  81. package/dist/utils.gen-DATakax-.cjs +0 -227
  82. package/dist/utils.gen-RO8GxC4i.mjs +0 -78
@@ -1,5 +1,66 @@
1
- const require_queryKeySerializer_gen = require('../../queryKeySerializer.gen-4TWHHXn3.cjs');
2
1
 
3
- exports.queryKeyJsonReplacer = require_queryKeySerializer_gen.queryKeyJsonReplacer;
4
- exports.serializeQueryKeyValue = require_queryKeySerializer_gen.serializeQueryKeyValue;
5
- exports.stringifyToJsonValue = require_queryKeySerializer_gen.stringifyToJsonValue;
2
+ //#region src/api/core/queryKeySerializer.gen.ts
3
+ /**
4
+ * Replacer that converts non-JSON values (bigint, Date, etc.) to safe substitutes.
5
+ */
6
+ const queryKeyJsonReplacer = (_key, value) => {
7
+ if (value === void 0 || typeof value === "function" || typeof value === "symbol") return;
8
+ if (typeof value === "bigint") return value.toString();
9
+ if (value instanceof Date) return value.toISOString();
10
+ return value;
11
+ };
12
+ /**
13
+ * Safely stringifies a value and parses it back into a JsonValue.
14
+ */
15
+ const stringifyToJsonValue = (input) => {
16
+ try {
17
+ const json = JSON.stringify(input, queryKeyJsonReplacer);
18
+ if (json === void 0) return;
19
+ return JSON.parse(json);
20
+ } catch {
21
+ return;
22
+ }
23
+ };
24
+ /**
25
+ * Detects plain objects (including objects with a null prototype).
26
+ */
27
+ const isPlainObject = (value) => {
28
+ if (value === null || typeof value !== "object") return false;
29
+ const prototype = Object.getPrototypeOf(value);
30
+ return prototype === Object.prototype || prototype === null;
31
+ };
32
+ /**
33
+ * Turns URLSearchParams into a sorted JSON object for deterministic keys.
34
+ */
35
+ const serializeSearchParams = (params) => {
36
+ const entries = Array.from(params.entries()).sort(([a], [b]) => a.localeCompare(b));
37
+ const result = {};
38
+ for (const [key, value] of entries) {
39
+ const existing = result[key];
40
+ if (existing === void 0) {
41
+ result[key] = value;
42
+ continue;
43
+ }
44
+ if (Array.isArray(existing)) existing.push(value);
45
+ else result[key] = [existing, value];
46
+ }
47
+ return result;
48
+ };
49
+ /**
50
+ * Normalizes any accepted value into a JSON-friendly shape for query keys.
51
+ */
52
+ const serializeQueryKeyValue = (value) => {
53
+ if (value === null) return null;
54
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") return value;
55
+ if (value === void 0 || typeof value === "function" || typeof value === "symbol") return;
56
+ if (typeof value === "bigint") return value.toString();
57
+ if (value instanceof Date) return value.toISOString();
58
+ if (Array.isArray(value)) return stringifyToJsonValue(value);
59
+ if (typeof URLSearchParams !== "undefined" && value instanceof URLSearchParams) return serializeSearchParams(value);
60
+ if (isPlainObject(value)) return stringifyToJsonValue(value);
61
+ };
62
+
63
+ //#endregion
64
+ exports.queryKeyJsonReplacer = queryKeyJsonReplacer;
65
+ exports.serializeQueryKeyValue = serializeQueryKeyValue;
66
+ exports.stringifyToJsonValue = stringifyToJsonValue;
@@ -1,3 +1,63 @@
1
- import { n as serializeQueryKeyValue, r as stringifyToJsonValue, t as queryKeyJsonReplacer } from "../../queryKeySerializer.gen-BMMZAjVN.mjs";
1
+ //#region src/api/core/queryKeySerializer.gen.ts
2
+ /**
3
+ * Replacer that converts non-JSON values (bigint, Date, etc.) to safe substitutes.
4
+ */
5
+ const queryKeyJsonReplacer = (_key, value) => {
6
+ if (value === void 0 || typeof value === "function" || typeof value === "symbol") return;
7
+ if (typeof value === "bigint") return value.toString();
8
+ if (value instanceof Date) return value.toISOString();
9
+ return value;
10
+ };
11
+ /**
12
+ * Safely stringifies a value and parses it back into a JsonValue.
13
+ */
14
+ const stringifyToJsonValue = (input) => {
15
+ try {
16
+ const json = JSON.stringify(input, queryKeyJsonReplacer);
17
+ if (json === void 0) return;
18
+ return JSON.parse(json);
19
+ } catch {
20
+ return;
21
+ }
22
+ };
23
+ /**
24
+ * Detects plain objects (including objects with a null prototype).
25
+ */
26
+ const isPlainObject = (value) => {
27
+ if (value === null || typeof value !== "object") return false;
28
+ const prototype = Object.getPrototypeOf(value);
29
+ return prototype === Object.prototype || prototype === null;
30
+ };
31
+ /**
32
+ * Turns URLSearchParams into a sorted JSON object for deterministic keys.
33
+ */
34
+ const serializeSearchParams = (params) => {
35
+ const entries = Array.from(params.entries()).sort(([a], [b]) => a.localeCompare(b));
36
+ const result = {};
37
+ for (const [key, value] of entries) {
38
+ const existing = result[key];
39
+ if (existing === void 0) {
40
+ result[key] = value;
41
+ continue;
42
+ }
43
+ if (Array.isArray(existing)) existing.push(value);
44
+ else result[key] = [existing, value];
45
+ }
46
+ return result;
47
+ };
48
+ /**
49
+ * Normalizes any accepted value into a JSON-friendly shape for query keys.
50
+ */
51
+ const serializeQueryKeyValue = (value) => {
52
+ if (value === null) return null;
53
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") return value;
54
+ if (value === void 0 || typeof value === "function" || typeof value === "symbol") return;
55
+ if (typeof value === "bigint") return value.toString();
56
+ if (value instanceof Date) return value.toISOString();
57
+ if (Array.isArray(value)) return stringifyToJsonValue(value);
58
+ if (typeof URLSearchParams !== "undefined" && value instanceof URLSearchParams) return serializeSearchParams(value);
59
+ if (isPlainObject(value)) return stringifyToJsonValue(value);
60
+ };
2
61
 
62
+ //#endregion
3
63
  export { queryKeyJsonReplacer, serializeQueryKeyValue, stringifyToJsonValue };
@@ -1,3 +1,95 @@
1
- const require_serverSentEvents_gen = require('../../serverSentEvents.gen-CiMMmhyQ.cjs');
2
1
 
3
- exports.createSseClient = require_serverSentEvents_gen.createSseClient;
2
+ //#region src/api/core/serverSentEvents.gen.ts
3
+ const createSseClient = ({ onRequest, onSseError, onSseEvent, responseTransformer, responseValidator, sseDefaultRetryDelay, sseMaxRetryAttempts, sseMaxRetryDelay, sseSleepFn, url, ...options }) => {
4
+ let lastEventId;
5
+ const sleep = sseSleepFn ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
6
+ const createStream = async function* () {
7
+ let retryDelay = sseDefaultRetryDelay ?? 3e3;
8
+ let attempt = 0;
9
+ const signal = options.signal ?? new AbortController().signal;
10
+ while (true) {
11
+ if (signal.aborted) break;
12
+ attempt++;
13
+ const headers = options.headers instanceof Headers ? options.headers : new Headers(options.headers);
14
+ if (lastEventId !== void 0) headers.set("Last-Event-ID", lastEventId);
15
+ try {
16
+ const requestInit = {
17
+ redirect: "follow",
18
+ ...options,
19
+ body: options.serializedBody,
20
+ headers,
21
+ signal
22
+ };
23
+ let request = new Request(url, requestInit);
24
+ if (onRequest) request = await onRequest(url, requestInit);
25
+ const response = await (options.fetch ?? globalThis.fetch)(request);
26
+ if (!response.ok) throw new Error(`SSE failed: ${response.status} ${response.statusText}`);
27
+ if (!response.body) throw new Error("No body in SSE response");
28
+ const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();
29
+ let buffer = "";
30
+ const abortHandler = () => {
31
+ try {
32
+ reader.cancel();
33
+ } catch {}
34
+ };
35
+ signal.addEventListener("abort", abortHandler);
36
+ try {
37
+ while (true) {
38
+ const { done, value } = await reader.read();
39
+ if (done) break;
40
+ buffer += value;
41
+ buffer = buffer.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
42
+ const chunks = buffer.split("\n\n");
43
+ buffer = chunks.pop() ?? "";
44
+ for (const chunk of chunks) {
45
+ const lines = chunk.split("\n");
46
+ const dataLines = [];
47
+ let eventName;
48
+ for (const line of lines) if (line.startsWith("data:")) dataLines.push(line.replace(/^data:\s*/, ""));
49
+ else if (line.startsWith("event:")) eventName = line.replace(/^event:\s*/, "");
50
+ else if (line.startsWith("id:")) lastEventId = line.replace(/^id:\s*/, "");
51
+ else if (line.startsWith("retry:")) {
52
+ const parsed = Number.parseInt(line.replace(/^retry:\s*/, ""), 10);
53
+ if (!Number.isNaN(parsed)) retryDelay = parsed;
54
+ }
55
+ let data;
56
+ let parsedJson = false;
57
+ if (dataLines.length) {
58
+ const rawData = dataLines.join("\n");
59
+ try {
60
+ data = JSON.parse(rawData);
61
+ parsedJson = true;
62
+ } catch {
63
+ data = rawData;
64
+ }
65
+ }
66
+ if (parsedJson) {
67
+ if (responseValidator) await responseValidator(data);
68
+ if (responseTransformer) data = await responseTransformer(data);
69
+ }
70
+ onSseEvent?.({
71
+ data,
72
+ event: eventName,
73
+ id: lastEventId,
74
+ retry: retryDelay
75
+ });
76
+ if (dataLines.length) yield data;
77
+ }
78
+ }
79
+ } finally {
80
+ signal.removeEventListener("abort", abortHandler);
81
+ reader.releaseLock();
82
+ }
83
+ break;
84
+ } catch (error) {
85
+ onSseError?.(error);
86
+ if (sseMaxRetryAttempts !== void 0 && attempt >= sseMaxRetryAttempts) break;
87
+ await sleep(Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 3e4));
88
+ }
89
+ }
90
+ };
91
+ return { stream: createStream() };
92
+ };
93
+
94
+ //#endregion
95
+ exports.createSseClient = createSseClient;
@@ -1,3 +1,94 @@
1
- import { t as createSseClient } from "../../serverSentEvents.gen-C4apQvDl.mjs";
1
+ //#region src/api/core/serverSentEvents.gen.ts
2
+ const createSseClient = ({ onRequest, onSseError, onSseEvent, responseTransformer, responseValidator, sseDefaultRetryDelay, sseMaxRetryAttempts, sseMaxRetryDelay, sseSleepFn, url, ...options }) => {
3
+ let lastEventId;
4
+ const sleep = sseSleepFn ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
5
+ const createStream = async function* () {
6
+ let retryDelay = sseDefaultRetryDelay ?? 3e3;
7
+ let attempt = 0;
8
+ const signal = options.signal ?? new AbortController().signal;
9
+ while (true) {
10
+ if (signal.aborted) break;
11
+ attempt++;
12
+ const headers = options.headers instanceof Headers ? options.headers : new Headers(options.headers);
13
+ if (lastEventId !== void 0) headers.set("Last-Event-ID", lastEventId);
14
+ try {
15
+ const requestInit = {
16
+ redirect: "follow",
17
+ ...options,
18
+ body: options.serializedBody,
19
+ headers,
20
+ signal
21
+ };
22
+ let request = new Request(url, requestInit);
23
+ if (onRequest) request = await onRequest(url, requestInit);
24
+ const response = await (options.fetch ?? globalThis.fetch)(request);
25
+ if (!response.ok) throw new Error(`SSE failed: ${response.status} ${response.statusText}`);
26
+ if (!response.body) throw new Error("No body in SSE response");
27
+ const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();
28
+ let buffer = "";
29
+ const abortHandler = () => {
30
+ try {
31
+ reader.cancel();
32
+ } catch {}
33
+ };
34
+ signal.addEventListener("abort", abortHandler);
35
+ try {
36
+ while (true) {
37
+ const { done, value } = await reader.read();
38
+ if (done) break;
39
+ buffer += value;
40
+ buffer = buffer.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
41
+ const chunks = buffer.split("\n\n");
42
+ buffer = chunks.pop() ?? "";
43
+ for (const chunk of chunks) {
44
+ const lines = chunk.split("\n");
45
+ const dataLines = [];
46
+ let eventName;
47
+ for (const line of lines) if (line.startsWith("data:")) dataLines.push(line.replace(/^data:\s*/, ""));
48
+ else if (line.startsWith("event:")) eventName = line.replace(/^event:\s*/, "");
49
+ else if (line.startsWith("id:")) lastEventId = line.replace(/^id:\s*/, "");
50
+ else if (line.startsWith("retry:")) {
51
+ const parsed = Number.parseInt(line.replace(/^retry:\s*/, ""), 10);
52
+ if (!Number.isNaN(parsed)) retryDelay = parsed;
53
+ }
54
+ let data;
55
+ let parsedJson = false;
56
+ if (dataLines.length) {
57
+ const rawData = dataLines.join("\n");
58
+ try {
59
+ data = JSON.parse(rawData);
60
+ parsedJson = true;
61
+ } catch {
62
+ data = rawData;
63
+ }
64
+ }
65
+ if (parsedJson) {
66
+ if (responseValidator) await responseValidator(data);
67
+ if (responseTransformer) data = await responseTransformer(data);
68
+ }
69
+ onSseEvent?.({
70
+ data,
71
+ event: eventName,
72
+ id: lastEventId,
73
+ retry: retryDelay
74
+ });
75
+ if (dataLines.length) yield data;
76
+ }
77
+ }
78
+ } finally {
79
+ signal.removeEventListener("abort", abortHandler);
80
+ reader.releaseLock();
81
+ }
82
+ break;
83
+ } catch (error) {
84
+ onSseError?.(error);
85
+ if (sseMaxRetryAttempts !== void 0 && attempt >= sseMaxRetryAttempts) break;
86
+ await sleep(Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 3e4));
87
+ }
88
+ }
89
+ };
90
+ return { stream: createStream() };
91
+ };
2
92
 
93
+ //#endregion
3
94
  export { createSseClient };
@@ -1,7 +1,81 @@
1
- require('../../pathSerializer.gen-BEbuI0Vn.cjs');
2
- const require_utils_gen = require('../../utils.gen-Bk2pTkV1.cjs');
1
+ const require_api_core_pathSerializer_gen = require('./pathSerializer.gen.cjs');
3
2
 
4
- exports.PATH_PARAM_RE = require_utils_gen.PATH_PARAM_RE;
5
- exports.defaultPathSerializer = require_utils_gen.defaultPathSerializer;
6
- exports.getUrl = require_utils_gen.getUrl;
7
- exports.getValidRequestBody = require_utils_gen.getValidRequestBody;
3
+ //#region src/api/core/utils.gen.ts
4
+ const PATH_PARAM_RE = /\{[^{}]+\}/g;
5
+ const defaultPathSerializer = ({ path, url: _url }) => {
6
+ let url = _url;
7
+ const matches = _url.match(PATH_PARAM_RE);
8
+ if (matches) for (const match of matches) {
9
+ let explode = false;
10
+ let name = match.substring(1, match.length - 1);
11
+ let style = "simple";
12
+ if (name.endsWith("*")) {
13
+ explode = true;
14
+ name = name.substring(0, name.length - 1);
15
+ }
16
+ if (name.startsWith(".")) {
17
+ name = name.substring(1);
18
+ style = "label";
19
+ } else if (name.startsWith(";")) {
20
+ name = name.substring(1);
21
+ style = "matrix";
22
+ }
23
+ const value = path[name];
24
+ if (value === void 0 || value === null) continue;
25
+ if (Array.isArray(value)) {
26
+ url = url.replace(match, require_api_core_pathSerializer_gen.serializeArrayParam({
27
+ explode,
28
+ name,
29
+ style,
30
+ value
31
+ }));
32
+ continue;
33
+ }
34
+ if (typeof value === "object") {
35
+ url = url.replace(match, require_api_core_pathSerializer_gen.serializeObjectParam({
36
+ explode,
37
+ name,
38
+ style,
39
+ value,
40
+ valueOnly: true
41
+ }));
42
+ continue;
43
+ }
44
+ if (style === "matrix") {
45
+ url = url.replace(match, `;${require_api_core_pathSerializer_gen.serializePrimitiveParam({
46
+ name,
47
+ value
48
+ })}`);
49
+ continue;
50
+ }
51
+ const replaceValue = encodeURIComponent(style === "label" ? `.${value}` : value);
52
+ url = url.replace(match, replaceValue);
53
+ }
54
+ return url;
55
+ };
56
+ const getUrl = ({ baseUrl, path, query, querySerializer, url: _url }) => {
57
+ const pathUrl = _url.startsWith("/") ? _url : `/${_url}`;
58
+ let url = (baseUrl ?? "") + pathUrl;
59
+ if (path) url = defaultPathSerializer({
60
+ path,
61
+ url
62
+ });
63
+ let search = query ? querySerializer(query) : "";
64
+ if (search.startsWith("?")) search = search.substring(1);
65
+ if (search) url += `?${search}`;
66
+ return url;
67
+ };
68
+ function getValidRequestBody(options) {
69
+ const hasBody = options.body !== void 0;
70
+ if (hasBody && options.bodySerializer) {
71
+ if ("serializedBody" in options) return options.serializedBody !== void 0 && options.serializedBody !== "" ? options.serializedBody : null;
72
+ return options.body !== "" ? options.body : null;
73
+ }
74
+ if (hasBody) return options.body;
75
+ }
76
+
77
+ //#endregion
78
+ exports.PATH_PARAM_RE = PATH_PARAM_RE;
79
+ exports.defaultPathSerializer = defaultPathSerializer;
80
+ exports.getUrl = getUrl;
81
+ exports.getValidRequestBody = getValidRequestBody;
@@ -1,4 +1,78 @@
1
- import "../../pathSerializer.gen-m7BRzH23.mjs";
2
- import { i as getValidRequestBody, n as defaultPathSerializer, r as getUrl, t as PATH_PARAM_RE } from "../../utils.gen-RO8GxC4i.mjs";
1
+ import { serializeArrayParam, serializeObjectParam, serializePrimitiveParam } from "./pathSerializer.gen.mjs";
3
2
 
3
+ //#region src/api/core/utils.gen.ts
4
+ const PATH_PARAM_RE = /\{[^{}]+\}/g;
5
+ const defaultPathSerializer = ({ path, url: _url }) => {
6
+ let url = _url;
7
+ const matches = _url.match(PATH_PARAM_RE);
8
+ if (matches) for (const match of matches) {
9
+ let explode = false;
10
+ let name = match.substring(1, match.length - 1);
11
+ let style = "simple";
12
+ if (name.endsWith("*")) {
13
+ explode = true;
14
+ name = name.substring(0, name.length - 1);
15
+ }
16
+ if (name.startsWith(".")) {
17
+ name = name.substring(1);
18
+ style = "label";
19
+ } else if (name.startsWith(";")) {
20
+ name = name.substring(1);
21
+ style = "matrix";
22
+ }
23
+ const value = path[name];
24
+ if (value === void 0 || value === null) continue;
25
+ if (Array.isArray(value)) {
26
+ url = url.replace(match, serializeArrayParam({
27
+ explode,
28
+ name,
29
+ style,
30
+ value
31
+ }));
32
+ continue;
33
+ }
34
+ if (typeof value === "object") {
35
+ url = url.replace(match, serializeObjectParam({
36
+ explode,
37
+ name,
38
+ style,
39
+ value,
40
+ valueOnly: true
41
+ }));
42
+ continue;
43
+ }
44
+ if (style === "matrix") {
45
+ url = url.replace(match, `;${serializePrimitiveParam({
46
+ name,
47
+ value
48
+ })}`);
49
+ continue;
50
+ }
51
+ const replaceValue = encodeURIComponent(style === "label" ? `.${value}` : value);
52
+ url = url.replace(match, replaceValue);
53
+ }
54
+ return url;
55
+ };
56
+ const getUrl = ({ baseUrl, path, query, querySerializer, url: _url }) => {
57
+ const pathUrl = _url.startsWith("/") ? _url : `/${_url}`;
58
+ let url = (baseUrl ?? "") + pathUrl;
59
+ if (path) url = defaultPathSerializer({
60
+ path,
61
+ url
62
+ });
63
+ let search = query ? querySerializer(query) : "";
64
+ if (search.startsWith("?")) search = search.substring(1);
65
+ if (search) url += `?${search}`;
66
+ return url;
67
+ };
68
+ function getValidRequestBody(options) {
69
+ const hasBody = options.body !== void 0;
70
+ if (hasBody && options.bodySerializer) {
71
+ if ("serializedBody" in options) return options.serializedBody !== void 0 && options.serializedBody !== "" ? options.serializedBody : null;
72
+ return options.body !== "" ? options.body : null;
73
+ }
74
+ if (hasBody) return options.body;
75
+ }
76
+
77
+ //#endregion
4
78
  export { PATH_PARAM_RE, defaultPathSerializer, getUrl, getValidRequestBody };