@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/dist/index.d.mts +447 -204
- package/dist/index.d.ts +447 -204
- package/dist/index.js +2538 -2023
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2534 -2027
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -16
- package/dist/express.d.mts +0 -32
- package/dist/express.d.ts +0 -32
- package/dist/express.js +0 -167
- package/dist/express.js.map +0 -1
- package/dist/express.mjs +0 -163
- package/dist/express.mjs.map +0 -1
- package/dist/nitro.d.mts +0 -7
- package/dist/nitro.d.ts +0 -7
- package/dist/nitro.js +0 -36
- package/dist/nitro.js.map +0 -1
- package/dist/nitro.mjs +0 -34
- package/dist/nitro.mjs.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@niledatabase/server",
|
|
3
|
-
"version": "5.0.0-alpha.
|
|
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": "
|
|
69
|
+
"gitHead": "d81efc26168cb58f8d8f809898afc0ffc030c030"
|
|
84
70
|
}
|
package/dist/express.d.mts
DELETED
|
@@ -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
|
package/dist/express.js.map
DELETED
|
@@ -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
|
package/dist/express.mjs.map
DELETED
|
@@ -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
package/dist/nitro.d.ts
DELETED
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
|
package/dist/nitro.mjs.map
DELETED
|
@@ -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"]}
|