@niledatabase/server 5.0.0-alpha.0 → 5.0.0-alpha.10

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@niledatabase/server",
3
- "version": "5.0.0-alpha.0",
3
+ "version": "5.0.0-alpha.10",
4
4
  "license": "MIT",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -9,16 +9,6 @@
9
9
  "types": "./dist/index.d.ts",
10
10
  "require": "./dist/index.js",
11
11
  "import": "./dist/index.mjs"
12
- },
13
- "./express": {
14
- "types": "./dist/express.d.ts",
15
- "require": "./dist/express.js",
16
- "import": "./dist/express.mjs"
17
- },
18
- "./nitro": {
19
- "types": "./dist/nitro.d.ts",
20
- "require": "./dist/nitro.js",
21
- "import": "./dist/nitro.mjs"
22
12
  }
23
13
  },
24
14
  "files": [
@@ -55,8 +45,6 @@
55
45
  "@babel/core": "^7.23.3",
56
46
  "@openapitools/openapi-generator-cli": "^2.18.4",
57
47
  "@types/jest": "^29.5.9",
58
- "@types/lodash": "^4",
59
- "@types/lodash-es": "^4",
60
48
  "@types/mime": "^4.0.0",
61
49
  "@types/pg": "^8.11.4",
62
50
  "@typescript-eslint/parser": "^5.62.0",
@@ -76,9 +64,7 @@
76
64
  },
77
65
  "dependencies": {
78
66
  "dotenv": "^16.4.5",
79
- "h3": "^1.15.1",
80
- "jose": "^4.15.4",
81
67
  "pg": "^8.11.3"
82
68
  },
83
- "gitHead": "8cdb8273081f2dca69ff38c2f0e2385e0e91122b"
69
+ "gitHead": "d81efc26168cb58f8d8f809898afc0ffc030c030"
84
70
  }
@@ -1,32 +0,0 @@
1
- import { Server } from './index.mjs';
2
- import 'pg';
3
-
4
- declare function cleaner(val: string): string;
5
- declare function expressPaths(nile: Server): {
6
- paths: {
7
- get: string[];
8
- post: string[];
9
- put: string[];
10
- delete: string[];
11
- };
12
- };
13
- type HandlerConfig = {
14
- muteResponse?: boolean;
15
- init?: RequestInit;
16
- };
17
- declare function NileExpressHandler(nile: Server, config?: HandlerConfig): Promise<{
18
- handler: (req: any, res?: any) => Promise<{
19
- body: string;
20
- status: number;
21
- headers: Record<string, string | string[]>;
22
- response: Response;
23
- } | null | undefined>;
24
- paths: {
25
- get: string[];
26
- post: string[];
27
- put: string[];
28
- delete: string[];
29
- };
30
- }>;
31
-
32
- export { NileExpressHandler, cleaner, expressPaths };
package/dist/express.d.ts DELETED
@@ -1,32 +0,0 @@
1
- import { Server } from './index.js';
2
- import 'pg';
3
-
4
- declare function cleaner(val: string): string;
5
- declare function expressPaths(nile: Server): {
6
- paths: {
7
- get: string[];
8
- post: string[];
9
- put: string[];
10
- delete: string[];
11
- };
12
- };
13
- type HandlerConfig = {
14
- muteResponse?: boolean;
15
- init?: RequestInit;
16
- };
17
- declare function NileExpressHandler(nile: Server, config?: HandlerConfig): Promise<{
18
- handler: (req: any, res?: any) => Promise<{
19
- body: string;
20
- status: number;
21
- headers: Record<string, string | string[]>;
22
- response: Response;
23
- } | null | undefined>;
24
- paths: {
25
- get: string[];
26
- post: string[];
27
- put: string[];
28
- delete: string[];
29
- };
30
- }>;
31
-
32
- export { NileExpressHandler, cleaner, expressPaths };
package/dist/express.js DELETED
@@ -1,167 +0,0 @@
1
- 'use strict';
2
-
3
- // src/utils/Logger.ts
4
- var red = "\x1B[31m";
5
- var yellow = "\x1B[38;2;255;255;0m";
6
- var purple = "\x1B[38;2;200;160;255m";
7
- var orange = "\x1B[38;2;255;165;0m";
8
- var reset = "\x1B[0m";
9
- var baseLogger = (config, ...params) => ({
10
- info(message, meta) {
11
- if (config?.debug) {
12
- console.info(
13
- `${orange}[niledb]${reset}${purple}[DEBUG]${reset}${params.join(
14
- ""
15
- )}${reset} ${message}`,
16
- meta ? `${JSON.stringify(meta)}` : ""
17
- );
18
- }
19
- },
20
- debug(message, meta) {
21
- if (config?.debug) {
22
- console.debug(
23
- `${orange}[niledb]${reset}${purple}[DEBUG]${reset}${params.join(
24
- ""
25
- )}${reset} ${message}`,
26
- meta ? `${JSON.stringify(meta)}` : ""
27
- );
28
- }
29
- },
30
- warn(message, meta) {
31
- if (config?.debug) {
32
- console.warn(
33
- `${orange}[niledb]${reset}${yellow}[WARN]${reset}${params.join(
34
- ""
35
- )}${reset} ${message}`,
36
- meta ? JSON.stringify(meta) : ""
37
- );
38
- }
39
- },
40
- error(message, meta) {
41
- console.error(
42
- `${orange}[niledb]${reset}${red}[ERROR]${reset}${params.join(
43
- ""
44
- )}${red} ${message}`,
45
- meta ? meta : "",
46
- `${reset}`
47
- );
48
- }
49
- });
50
- function Logger(config, ...params) {
51
- const base = baseLogger(config, params);
52
- const info = config?.logger?.info ?? base.info;
53
- const debug = config?.logger?.debug ?? base.debug;
54
- const warn = config?.logger?.warn ?? base.warn;
55
- const error = config?.logger?.error ?? base.error;
56
- return { info, warn, error, debug };
57
- }
58
-
59
- // src/lib/express.ts
60
- function cleaner(val) {
61
- return val.replaceAll(/\{([^}]+)\}/g, ":$1");
62
- }
63
- function expressPaths(nile) {
64
- const paths = {
65
- get: nile.api.paths.get.map(cleaner),
66
- post: nile.api.paths.post.map(cleaner),
67
- put: nile.api.paths.put.map(cleaner),
68
- delete: nile.api.paths.delete.map(cleaner)
69
- };
70
- return {
71
- paths
72
- };
73
- }
74
- async function NileExpressHandler(nile, config) {
75
- const { error } = Logger(nile.config, "nile-express");
76
- async function handler(req, res) {
77
- const headers = new Headers();
78
- if (!req || typeof req !== "object") {
79
- return null;
80
- }
81
- if (!("url" in req) || typeof req?.url !== "string") {
82
- error("A url is necessary for the nile express handler");
83
- return null;
84
- }
85
- const method = "method" in req && typeof req.method === "string" ? req.method : "GET";
86
- if ("headers" in req && typeof req.headers === "object" && req.headers && "cookie" in req.headers && typeof req.headers.cookie === "string") {
87
- headers.set("cookie", req.headers.cookie);
88
- }
89
- const _init = { method, ...config?.init };
90
- if ("body" in req) {
91
- if (method === "POST" || method === "PUT") {
92
- headers.set("content-type", "application/json");
93
- _init.body = JSON.stringify(req.body);
94
- }
95
- }
96
- _init.headers = headers;
97
- const reqUrl = req.protocol + "://" + req.get("host") + req.originalUrl;
98
- try {
99
- new URL(reqUrl);
100
- } catch (e) {
101
- error("Invalid URL", {
102
- url: reqUrl,
103
- error: e
104
- });
105
- return null;
106
- }
107
- const proxyRequest = new Request(reqUrl, _init);
108
- let response;
109
- try {
110
- response = await nile.api.handlers[method](proxyRequest);
111
- } catch (e) {
112
- error(e);
113
- }
114
- let body;
115
- if (response instanceof Response) {
116
- try {
117
- const tryJson = await response.clone();
118
- body = await tryJson.json();
119
- } catch (e) {
120
- body = await response.text();
121
- }
122
- const newHeaders = {};
123
- response.headers.forEach((value, key) => {
124
- if (!["content-length", "transfer-encoding"].includes(key.toLowerCase())) {
125
- if (newHeaders[key]) {
126
- const prev = newHeaders[key];
127
- if (Array.isArray(prev)) {
128
- newHeaders[key] = [...prev, value];
129
- } else {
130
- newHeaders[key] = [prev, value];
131
- }
132
- } else {
133
- newHeaders[key] = value;
134
- }
135
- }
136
- });
137
- if (config?.muteResponse !== true) {
138
- if (res) {
139
- res.status(response.status).set(newHeaders);
140
- if (typeof body === "string") {
141
- res.send(body);
142
- } else {
143
- res.json(body ?? {});
144
- }
145
- }
146
- return;
147
- }
148
- return {
149
- body,
150
- status: response.status,
151
- headers: newHeaders,
152
- response
153
- };
154
- } else {
155
- error("Bad response", { response });
156
- return;
157
- }
158
- }
159
- const { paths } = expressPaths(nile);
160
- return { handler, paths };
161
- }
162
-
163
- exports.NileExpressHandler = NileExpressHandler;
164
- exports.cleaner = cleaner;
165
- exports.expressPaths = expressPaths;
166
- //# sourceMappingURL=express.js.map
167
- //# sourceMappingURL=express.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/Logger.ts","../src/lib/express.ts"],"names":[],"mappings":"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","file":"express.js","sourcesContent":["/* eslint-disable no-console */\nimport { Routes } from '../api/types';\nimport urlMatches from '../api/utils/routes/urlMatches';\nimport { ServerConfig } from '../types';\n\nimport { Config } from './Config';\n\nconst red = '\\x1b[31m';\nconst yellow = '\\x1b[38;2;255;255;0m';\nconst purple = '\\x1b[38;2;200;160;255m';\nconst orange = '\\x1b[38;2;255;165;0m';\nconst reset = '\\x1b[0m';\n\nconst baseLogger = (config: void | ServerConfig, ...params: unknown[]) => ({\n info(message: string | unknown, meta?: Record<string, unknown>) {\n if (config?.debug) {\n console.info(\n `${orange}[niledb]${reset}${purple}[DEBUG]${reset}${params.join(\n ''\n )}${reset} ${message}`,\n meta ? `${JSON.stringify(meta)}` : ''\n );\n }\n },\n debug(message: string | unknown, meta?: Record<string, unknown>) {\n if (config?.debug) {\n console.debug(\n `${orange}[niledb]${reset}${purple}[DEBUG]${reset}${params.join(\n ''\n )}${reset} ${message}`,\n meta ? `${JSON.stringify(meta)}` : ''\n );\n }\n },\n warn(message: string | unknown, meta?: Record<string, unknown>) {\n if (config?.debug) {\n console.warn(\n `${orange}[niledb]${reset}${yellow}[WARN]${reset}${params.join(\n ''\n )}${reset} ${message}`,\n meta ? JSON.stringify(meta) : ''\n );\n }\n },\n error(message: string | unknown, meta?: Record<string, unknown>) {\n console.error(\n `${orange}[niledb]${reset}${red}[ERROR]${reset}${params.join(\n ''\n )}${red} ${message}`,\n meta ? meta : '',\n `${reset}`\n );\n },\n});\n\nexport default function Logger(\n config?: Config | ServerConfig,\n ...params: unknown[]\n) {\n const base = baseLogger(config, params);\n const info = config?.logger?.info ?? base.info;\n const debug = config?.logger?.debug ?? base.debug;\n const warn = config?.logger?.warn ?? base.warn;\n const error = config?.logger?.error ?? base.error;\n return { info, warn, error, debug };\n}\n\nexport function matchesLog(configRoutes: Routes, request: Request): boolean {\n return urlMatches(request.url, configRoutes.LOG);\n}\n","import { Server } from '../Server';\nimport Logger from '../utils/Logger';\n\nexport function cleaner(val: string) {\n return val.replaceAll(/\\{([^}]+)\\}/g, ':$1');\n}\n\nexport function expressPaths(nile: Server) {\n const paths = {\n get: nile.api.paths.get.map(cleaner),\n post: nile.api.paths.post.map(cleaner),\n put: nile.api.paths.put.map(cleaner),\n delete: nile.api.paths.delete.map(cleaner),\n };\n return {\n paths,\n };\n}\n\ntype HandlerConfig = { muteResponse?: boolean; init?: RequestInit };\nexport async function NileExpressHandler(nile: Server, config?: HandlerConfig) {\n const { error } = Logger(nile.config, 'nile-express');\n async function handler(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n req: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n res?: any\n ): Promise<\n | {\n body: string;\n status: number;\n headers: Record<string, string | string[]>;\n response: Response;\n }\n | null\n | undefined\n > {\n const headers = new Headers();\n if (!req || typeof req !== 'object') {\n return null;\n }\n if (!('url' in req) || typeof req?.url !== 'string') {\n error('A url is necessary for the nile express handler');\n return null;\n }\n const method =\n 'method' in req && typeof req.method === 'string' ? req.method : 'GET';\n if (\n 'headers' in req &&\n typeof req.headers === 'object' &&\n req.headers &&\n 'cookie' in req.headers &&\n typeof req.headers.cookie === 'string'\n ) {\n headers.set('cookie', req.headers.cookie);\n }\n const _init: RequestInit = { method, ...config?.init };\n\n if ('body' in req) {\n if (method === 'POST' || method === 'PUT') {\n headers.set('content-type', 'application/json');\n _init.body = JSON.stringify(req.body);\n }\n }\n\n _init.headers = headers;\n\n const reqUrl = req.protocol + '://' + req.get('host') + req.originalUrl;\n // be sure its a valid url\n try {\n new URL(reqUrl);\n } catch (e) {\n error('Invalid URL', {\n url: reqUrl,\n error: e,\n });\n return null;\n }\n const proxyRequest = new Request(reqUrl, _init);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let response;\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n response = await (nile.api.handlers as any)[method](proxyRequest);\n } catch (e) {\n error(e);\n }\n\n let body;\n\n if (response instanceof Response) {\n try {\n const tryJson = await response.clone();\n body = await tryJson.json();\n } catch (e) {\n body = await response.text();\n }\n const newHeaders: Record<string, string | string[]> = {};\n response.headers.forEach((value, key) => {\n if (\n !['content-length', 'transfer-encoding'].includes(key.toLowerCase())\n ) {\n if (newHeaders[key]) {\n const prev = newHeaders[key];\n if (Array.isArray(prev)) {\n newHeaders[key] = [...prev, value];\n } else {\n newHeaders[key] = [prev, value];\n }\n } else {\n newHeaders[key] = value;\n }\n }\n });\n\n if (config?.muteResponse !== true) {\n if (res) {\n res.status(response.status).set(newHeaders);\n if (typeof body === 'string') {\n res.send(body);\n } else {\n res.json(body ?? {});\n }\n }\n return;\n }\n\n return {\n body,\n status: response.status,\n headers: newHeaders,\n response,\n };\n } else {\n error('Bad response', { response });\n return;\n }\n }\n const { paths } = expressPaths(nile);\n return { handler, paths };\n}\n"]}
package/dist/express.mjs DELETED
@@ -1,163 +0,0 @@
1
- // src/utils/Logger.ts
2
- var red = "\x1B[31m";
3
- var yellow = "\x1B[38;2;255;255;0m";
4
- var purple = "\x1B[38;2;200;160;255m";
5
- var orange = "\x1B[38;2;255;165;0m";
6
- var reset = "\x1B[0m";
7
- var baseLogger = (config, ...params) => ({
8
- info(message, meta) {
9
- if (config?.debug) {
10
- console.info(
11
- `${orange}[niledb]${reset}${purple}[DEBUG]${reset}${params.join(
12
- ""
13
- )}${reset} ${message}`,
14
- meta ? `${JSON.stringify(meta)}` : ""
15
- );
16
- }
17
- },
18
- debug(message, meta) {
19
- if (config?.debug) {
20
- console.debug(
21
- `${orange}[niledb]${reset}${purple}[DEBUG]${reset}${params.join(
22
- ""
23
- )}${reset} ${message}`,
24
- meta ? `${JSON.stringify(meta)}` : ""
25
- );
26
- }
27
- },
28
- warn(message, meta) {
29
- if (config?.debug) {
30
- console.warn(
31
- `${orange}[niledb]${reset}${yellow}[WARN]${reset}${params.join(
32
- ""
33
- )}${reset} ${message}`,
34
- meta ? JSON.stringify(meta) : ""
35
- );
36
- }
37
- },
38
- error(message, meta) {
39
- console.error(
40
- `${orange}[niledb]${reset}${red}[ERROR]${reset}${params.join(
41
- ""
42
- )}${red} ${message}`,
43
- meta ? meta : "",
44
- `${reset}`
45
- );
46
- }
47
- });
48
- function Logger(config, ...params) {
49
- const base = baseLogger(config, params);
50
- const info = config?.logger?.info ?? base.info;
51
- const debug = config?.logger?.debug ?? base.debug;
52
- const warn = config?.logger?.warn ?? base.warn;
53
- const error = config?.logger?.error ?? base.error;
54
- return { info, warn, error, debug };
55
- }
56
-
57
- // src/lib/express.ts
58
- function cleaner(val) {
59
- return val.replaceAll(/\{([^}]+)\}/g, ":$1");
60
- }
61
- function expressPaths(nile) {
62
- const paths = {
63
- get: nile.api.paths.get.map(cleaner),
64
- post: nile.api.paths.post.map(cleaner),
65
- put: nile.api.paths.put.map(cleaner),
66
- delete: nile.api.paths.delete.map(cleaner)
67
- };
68
- return {
69
- paths
70
- };
71
- }
72
- async function NileExpressHandler(nile, config) {
73
- const { error } = Logger(nile.config, "nile-express");
74
- async function handler(req, res) {
75
- const headers = new Headers();
76
- if (!req || typeof req !== "object") {
77
- return null;
78
- }
79
- if (!("url" in req) || typeof req?.url !== "string") {
80
- error("A url is necessary for the nile express handler");
81
- return null;
82
- }
83
- const method = "method" in req && typeof req.method === "string" ? req.method : "GET";
84
- if ("headers" in req && typeof req.headers === "object" && req.headers && "cookie" in req.headers && typeof req.headers.cookie === "string") {
85
- headers.set("cookie", req.headers.cookie);
86
- }
87
- const _init = { method, ...config?.init };
88
- if ("body" in req) {
89
- if (method === "POST" || method === "PUT") {
90
- headers.set("content-type", "application/json");
91
- _init.body = JSON.stringify(req.body);
92
- }
93
- }
94
- _init.headers = headers;
95
- const reqUrl = req.protocol + "://" + req.get("host") + req.originalUrl;
96
- try {
97
- new URL(reqUrl);
98
- } catch (e) {
99
- error("Invalid URL", {
100
- url: reqUrl,
101
- error: e
102
- });
103
- return null;
104
- }
105
- const proxyRequest = new Request(reqUrl, _init);
106
- let response;
107
- try {
108
- response = await nile.api.handlers[method](proxyRequest);
109
- } catch (e) {
110
- error(e);
111
- }
112
- let body;
113
- if (response instanceof Response) {
114
- try {
115
- const tryJson = await response.clone();
116
- body = await tryJson.json();
117
- } catch (e) {
118
- body = await response.text();
119
- }
120
- const newHeaders = {};
121
- response.headers.forEach((value, key) => {
122
- if (!["content-length", "transfer-encoding"].includes(key.toLowerCase())) {
123
- if (newHeaders[key]) {
124
- const prev = newHeaders[key];
125
- if (Array.isArray(prev)) {
126
- newHeaders[key] = [...prev, value];
127
- } else {
128
- newHeaders[key] = [prev, value];
129
- }
130
- } else {
131
- newHeaders[key] = value;
132
- }
133
- }
134
- });
135
- if (config?.muteResponse !== true) {
136
- if (res) {
137
- res.status(response.status).set(newHeaders);
138
- if (typeof body === "string") {
139
- res.send(body);
140
- } else {
141
- res.json(body ?? {});
142
- }
143
- }
144
- return;
145
- }
146
- return {
147
- body,
148
- status: response.status,
149
- headers: newHeaders,
150
- response
151
- };
152
- } else {
153
- error("Bad response", { response });
154
- return;
155
- }
156
- }
157
- const { paths } = expressPaths(nile);
158
- return { handler, paths };
159
- }
160
-
161
- export { NileExpressHandler, cleaner, expressPaths };
162
- //# sourceMappingURL=express.mjs.map
163
- //# sourceMappingURL=express.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/Logger.ts","../src/lib/express.ts"],"names":[],"mappings":"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","file":"express.mjs","sourcesContent":["/* eslint-disable no-console */\nimport { Routes } from '../api/types';\nimport urlMatches from '../api/utils/routes/urlMatches';\nimport { ServerConfig } from '../types';\n\nimport { Config } from './Config';\n\nconst red = '\\x1b[31m';\nconst yellow = '\\x1b[38;2;255;255;0m';\nconst purple = '\\x1b[38;2;200;160;255m';\nconst orange = '\\x1b[38;2;255;165;0m';\nconst reset = '\\x1b[0m';\n\nconst baseLogger = (config: void | ServerConfig, ...params: unknown[]) => ({\n info(message: string | unknown, meta?: Record<string, unknown>) {\n if (config?.debug) {\n console.info(\n `${orange}[niledb]${reset}${purple}[DEBUG]${reset}${params.join(\n ''\n )}${reset} ${message}`,\n meta ? `${JSON.stringify(meta)}` : ''\n );\n }\n },\n debug(message: string | unknown, meta?: Record<string, unknown>) {\n if (config?.debug) {\n console.debug(\n `${orange}[niledb]${reset}${purple}[DEBUG]${reset}${params.join(\n ''\n )}${reset} ${message}`,\n meta ? `${JSON.stringify(meta)}` : ''\n );\n }\n },\n warn(message: string | unknown, meta?: Record<string, unknown>) {\n if (config?.debug) {\n console.warn(\n `${orange}[niledb]${reset}${yellow}[WARN]${reset}${params.join(\n ''\n )}${reset} ${message}`,\n meta ? JSON.stringify(meta) : ''\n );\n }\n },\n error(message: string | unknown, meta?: Record<string, unknown>) {\n console.error(\n `${orange}[niledb]${reset}${red}[ERROR]${reset}${params.join(\n ''\n )}${red} ${message}`,\n meta ? meta : '',\n `${reset}`\n );\n },\n});\n\nexport default function Logger(\n config?: Config | ServerConfig,\n ...params: unknown[]\n) {\n const base = baseLogger(config, params);\n const info = config?.logger?.info ?? base.info;\n const debug = config?.logger?.debug ?? base.debug;\n const warn = config?.logger?.warn ?? base.warn;\n const error = config?.logger?.error ?? base.error;\n return { info, warn, error, debug };\n}\n\nexport function matchesLog(configRoutes: Routes, request: Request): boolean {\n return urlMatches(request.url, configRoutes.LOG);\n}\n","import { Server } from '../Server';\nimport Logger from '../utils/Logger';\n\nexport function cleaner(val: string) {\n return val.replaceAll(/\\{([^}]+)\\}/g, ':$1');\n}\n\nexport function expressPaths(nile: Server) {\n const paths = {\n get: nile.api.paths.get.map(cleaner),\n post: nile.api.paths.post.map(cleaner),\n put: nile.api.paths.put.map(cleaner),\n delete: nile.api.paths.delete.map(cleaner),\n };\n return {\n paths,\n };\n}\n\ntype HandlerConfig = { muteResponse?: boolean; init?: RequestInit };\nexport async function NileExpressHandler(nile: Server, config?: HandlerConfig) {\n const { error } = Logger(nile.config, 'nile-express');\n async function handler(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n req: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n res?: any\n ): Promise<\n | {\n body: string;\n status: number;\n headers: Record<string, string | string[]>;\n response: Response;\n }\n | null\n | undefined\n > {\n const headers = new Headers();\n if (!req || typeof req !== 'object') {\n return null;\n }\n if (!('url' in req) || typeof req?.url !== 'string') {\n error('A url is necessary for the nile express handler');\n return null;\n }\n const method =\n 'method' in req && typeof req.method === 'string' ? req.method : 'GET';\n if (\n 'headers' in req &&\n typeof req.headers === 'object' &&\n req.headers &&\n 'cookie' in req.headers &&\n typeof req.headers.cookie === 'string'\n ) {\n headers.set('cookie', req.headers.cookie);\n }\n const _init: RequestInit = { method, ...config?.init };\n\n if ('body' in req) {\n if (method === 'POST' || method === 'PUT') {\n headers.set('content-type', 'application/json');\n _init.body = JSON.stringify(req.body);\n }\n }\n\n _init.headers = headers;\n\n const reqUrl = req.protocol + '://' + req.get('host') + req.originalUrl;\n // be sure its a valid url\n try {\n new URL(reqUrl);\n } catch (e) {\n error('Invalid URL', {\n url: reqUrl,\n error: e,\n });\n return null;\n }\n const proxyRequest = new Request(reqUrl, _init);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let response;\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n response = await (nile.api.handlers as any)[method](proxyRequest);\n } catch (e) {\n error(e);\n }\n\n let body;\n\n if (response instanceof Response) {\n try {\n const tryJson = await response.clone();\n body = await tryJson.json();\n } catch (e) {\n body = await response.text();\n }\n const newHeaders: Record<string, string | string[]> = {};\n response.headers.forEach((value, key) => {\n if (\n !['content-length', 'transfer-encoding'].includes(key.toLowerCase())\n ) {\n if (newHeaders[key]) {\n const prev = newHeaders[key];\n if (Array.isArray(prev)) {\n newHeaders[key] = [...prev, value];\n } else {\n newHeaders[key] = [prev, value];\n }\n } else {\n newHeaders[key] = value;\n }\n }\n });\n\n if (config?.muteResponse !== true) {\n if (res) {\n res.status(response.status).set(newHeaders);\n if (typeof body === 'string') {\n res.send(body);\n } else {\n res.json(body ?? {});\n }\n }\n return;\n }\n\n return {\n body,\n status: response.status,\n headers: newHeaders,\n response,\n };\n } else {\n error('Bad response', { response });\n return;\n }\n }\n const { paths } = expressPaths(nile);\n return { handler, paths };\n}\n"]}
package/dist/nitro.d.mts DELETED
@@ -1,7 +0,0 @@
1
- import { H3Event, EventHandlerRequest } from 'h3';
2
- import { Server } from './index.mjs';
3
- import 'pg';
4
-
5
- declare function convertToRequest(event: H3Event<EventHandlerRequest>, nile: Server): Promise<void | Response>;
6
-
7
- export { convertToRequest };
package/dist/nitro.d.ts DELETED
@@ -1,7 +0,0 @@
1
- import { H3Event, EventHandlerRequest } from 'h3';
2
- import { Server } from './index.js';
3
- import 'pg';
4
-
5
- declare function convertToRequest(event: H3Event<EventHandlerRequest>, nile: Server): Promise<void | Response>;
6
-
7
- export { convertToRequest };
package/dist/nitro.js DELETED
@@ -1,36 +0,0 @@
1
- 'use strict';
2
-
3
- var h3 = require('h3');
4
-
5
- // src/lib/nitro.ts
6
- var convertHeader = ([key, value]) => [
7
- key.toLowerCase(),
8
- Array.isArray(value) ? value.join(", ") : String(value)
9
- ];
10
- async function convertToRequest(event, nile) {
11
- const { handlers } = nile.api;
12
- const url = h3.getRequestURL(event);
13
- const reqHeaders = event.node.req.headers;
14
- const headers = reqHeaders ? Object.fromEntries(Object.entries(reqHeaders).map(convertHeader)) : {};
15
- const method = event.node.req.method || "GET";
16
- const body = method !== "GET" && method !== "HEAD" ? await h3.readRawBody(event) : null;
17
- const request = new Request(url, {
18
- method,
19
- headers,
20
- body: body ? JSON.stringify(body) : null
21
- });
22
- switch (request.method) {
23
- case "GET":
24
- return handlers.GET(request);
25
- case "POST":
26
- return handlers.POST(request);
27
- case "PUT":
28
- return handlers.PUT(request);
29
- case "DELETE":
30
- return handlers.DELETE(request);
31
- }
32
- }
33
-
34
- exports.convertToRequest = convertToRequest;
35
- //# sourceMappingURL=nitro.js.map
36
- //# sourceMappingURL=nitro.js.map
package/dist/nitro.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/nitro.ts"],"names":["getRequestURL","readRawBody"],"mappings":";;;;;AAIA,IAAM,aAAgB,GAAA,CAAC,CAAC,GAAA,EAAK,KAAK,CAG5B,KAAA;AAAA,EACJ,IAAI,WAAY,EAAA;AAAA,EAChB,KAAA,CAAM,QAAQ,KAAK,CAAA,GAAI,MAAM,IAAK,CAAA,IAAI,CAAI,GAAA,MAAA,CAAO,KAAK;AACxD,CAAA;AACA,eAAsB,gBAAA,CACpB,OACA,IACA,EAAA;AACA,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI,IAAK,CAAA,GAAA;AAC1B,EAAM,MAAA,GAAA,GAAMA,iBAAc,KAAK,CAAA;AAC/B,EAAM,MAAA,UAAA,GAAa,KAAM,CAAA,IAAA,CAAK,GAAI,CAAA,OAAA;AAClC,EAAA,MAAM,OAAuB,GAAA,UAAA,GACzB,MAAO,CAAA,WAAA,CAAY,MAAO,CAAA,OAAA,CAAQ,UAAU,CAAA,CAAE,GAAI,CAAA,aAAa,CAAC,CAAA,GAChE,EAAC;AACL,EAAA,MAAM,MAAS,GAAA,KAAA,CAAM,IAAK,CAAA,GAAA,CAAI,MAAU,IAAA,KAAA;AACxC,EAAM,MAAA,IAAA,GACJ,WAAW,KAAS,IAAA,MAAA,KAAW,SAAS,MAAMC,cAAA,CAAY,KAAK,CAAI,GAAA,IAAA;AAErE,EAAM,MAAA,OAAA,GAAU,IAAI,OAAA,CAAQ,GAAK,EAAA;AAAA,IAC/B,MAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAM,EAAA,IAAA,GAAO,IAAK,CAAA,SAAA,CAAU,IAAI,CAAI,GAAA;AAAA,GACrC,CAAA;AACD,EAAA,QAAQ,QAAQ,MAAQ;AAAA,IACtB,KAAK,KAAA;AACH,MAAO,OAAA,QAAA,CAAS,IAAI,OAAO,CAAA;AAAA,IAC7B,KAAK,MAAA;AACH,MAAO,OAAA,QAAA,CAAS,KAAK,OAAO,CAAA;AAAA,IAC9B,KAAK,KAAA;AACH,MAAO,OAAA,QAAA,CAAS,IAAI,OAAO,CAAA;AAAA,IAC7B,KAAK,QAAA;AACH,MAAO,OAAA,QAAA,CAAS,OAAO,OAAO,CAAA;AAAA;AAEpC","file":"nitro.js","sourcesContent":["import { EventHandlerRequest, getRequestURL, H3Event, readRawBody } from 'h3';\n\nimport { Server } from '../Server';\n\nconst convertHeader = ([key, value]: [\n string,\n string | string[] | undefined\n]) => [\n key.toLowerCase(),\n Array.isArray(value) ? value.join(', ') : String(value),\n];\nexport async function convertToRequest(\n event: H3Event<EventHandlerRequest>,\n nile: Server\n) {\n const { handlers } = nile.api;\n const url = getRequestURL(event);\n const reqHeaders = event.node.req.headers;\n const headers: HeadersInit = reqHeaders\n ? Object.fromEntries(Object.entries(reqHeaders).map(convertHeader))\n : {};\n const method = event.node.req.method || 'GET';\n const body =\n method !== 'GET' && method !== 'HEAD' ? await readRawBody(event) : null;\n\n const request = new Request(url, {\n method,\n headers,\n body: body ? JSON.stringify(body) : null,\n });\n switch (request.method) {\n case 'GET':\n return handlers.GET(request);\n case 'POST':\n return handlers.POST(request);\n case 'PUT':\n return handlers.PUT(request);\n case 'DELETE':\n return handlers.DELETE(request);\n }\n}\n"]}
package/dist/nitro.mjs DELETED
@@ -1,34 +0,0 @@
1
- import { getRequestURL, readRawBody } from 'h3';
2
-
3
- // src/lib/nitro.ts
4
- var convertHeader = ([key, value]) => [
5
- key.toLowerCase(),
6
- Array.isArray(value) ? value.join(", ") : String(value)
7
- ];
8
- async function convertToRequest(event, nile) {
9
- const { handlers } = nile.api;
10
- const url = getRequestURL(event);
11
- const reqHeaders = event.node.req.headers;
12
- const headers = reqHeaders ? Object.fromEntries(Object.entries(reqHeaders).map(convertHeader)) : {};
13
- const method = event.node.req.method || "GET";
14
- const body = method !== "GET" && method !== "HEAD" ? await readRawBody(event) : null;
15
- const request = new Request(url, {
16
- method,
17
- headers,
18
- body: body ? JSON.stringify(body) : null
19
- });
20
- switch (request.method) {
21
- case "GET":
22
- return handlers.GET(request);
23
- case "POST":
24
- return handlers.POST(request);
25
- case "PUT":
26
- return handlers.PUT(request);
27
- case "DELETE":
28
- return handlers.DELETE(request);
29
- }
30
- }
31
-
32
- export { convertToRequest };
33
- //# sourceMappingURL=nitro.mjs.map
34
- //# sourceMappingURL=nitro.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/nitro.ts"],"names":[],"mappings":";;;AAIA,IAAM,aAAgB,GAAA,CAAC,CAAC,GAAA,EAAK,KAAK,CAG5B,KAAA;AAAA,EACJ,IAAI,WAAY,EAAA;AAAA,EAChB,KAAA,CAAM,QAAQ,KAAK,CAAA,GAAI,MAAM,IAAK,CAAA,IAAI,CAAI,GAAA,MAAA,CAAO,KAAK;AACxD,CAAA;AACA,eAAsB,gBAAA,CACpB,OACA,IACA,EAAA;AACA,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI,IAAK,CAAA,GAAA;AAC1B,EAAM,MAAA,GAAA,GAAM,cAAc,KAAK,CAAA;AAC/B,EAAM,MAAA,UAAA,GAAa,KAAM,CAAA,IAAA,CAAK,GAAI,CAAA,OAAA;AAClC,EAAA,MAAM,OAAuB,GAAA,UAAA,GACzB,MAAO,CAAA,WAAA,CAAY,MAAO,CAAA,OAAA,CAAQ,UAAU,CAAA,CAAE,GAAI,CAAA,aAAa,CAAC,CAAA,GAChE,EAAC;AACL,EAAA,MAAM,MAAS,GAAA,KAAA,CAAM,IAAK,CAAA,GAAA,CAAI,MAAU,IAAA,KAAA;AACxC,EAAM,MAAA,IAAA,GACJ,WAAW,KAAS,IAAA,MAAA,KAAW,SAAS,MAAM,WAAA,CAAY,KAAK,CAAI,GAAA,IAAA;AAErE,EAAM,MAAA,OAAA,GAAU,IAAI,OAAA,CAAQ,GAAK,EAAA;AAAA,IAC/B,MAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAM,EAAA,IAAA,GAAO,IAAK,CAAA,SAAA,CAAU,IAAI,CAAI,GAAA;AAAA,GACrC,CAAA;AACD,EAAA,QAAQ,QAAQ,MAAQ;AAAA,IACtB,KAAK,KAAA;AACH,MAAO,OAAA,QAAA,CAAS,IAAI,OAAO,CAAA;AAAA,IAC7B,KAAK,MAAA;AACH,MAAO,OAAA,QAAA,CAAS,KAAK,OAAO,CAAA;AAAA,IAC9B,KAAK,KAAA;AACH,MAAO,OAAA,QAAA,CAAS,IAAI,OAAO,CAAA;AAAA,IAC7B,KAAK,QAAA;AACH,MAAO,OAAA,QAAA,CAAS,OAAO,OAAO,CAAA;AAAA;AAEpC","file":"nitro.mjs","sourcesContent":["import { EventHandlerRequest, getRequestURL, H3Event, readRawBody } from 'h3';\n\nimport { Server } from '../Server';\n\nconst convertHeader = ([key, value]: [\n string,\n string | string[] | undefined\n]) => [\n key.toLowerCase(),\n Array.isArray(value) ? value.join(', ') : String(value),\n];\nexport async function convertToRequest(\n event: H3Event<EventHandlerRequest>,\n nile: Server\n) {\n const { handlers } = nile.api;\n const url = getRequestURL(event);\n const reqHeaders = event.node.req.headers;\n const headers: HeadersInit = reqHeaders\n ? Object.fromEntries(Object.entries(reqHeaders).map(convertHeader))\n : {};\n const method = event.node.req.method || 'GET';\n const body =\n method !== 'GET' && method !== 'HEAD' ? await readRawBody(event) : null;\n\n const request = new Request(url, {\n method,\n headers,\n body: body ? JSON.stringify(body) : null,\n });\n switch (request.method) {\n case 'GET':\n return handlers.GET(request);\n case 'POST':\n return handlers.POST(request);\n case 'PUT':\n return handlers.PUT(request);\n case 'DELETE':\n return handlers.DELETE(request);\n }\n}\n"]}