@faasjs/dev 8.0.0-beta.5 → 8.0.0-beta.6
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/README.md +15 -5
- package/dist/chunk-3FXFWIBW.mjs +221 -0
- package/dist/cli.cjs +335 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.mjs +136 -0
- package/dist/index.cjs +276 -26
- package/dist/index.d.ts +19 -21
- package/dist/index.mjs +78 -43
- package/faas-types.mjs +7 -0
- package/package.json +27 -17
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { __export, isTypegenSourceFile, generateFaasTypes, __reExport, resolveServerConfig } from './chunk-3FXFWIBW.mjs';
|
|
2
|
+
export { generateFaasTypes, isTypegenSourceFile } from './chunk-3FXFWIBW.mjs';
|
|
3
|
+
import { types, PGlite } from '@electric-sql/pglite';
|
|
4
|
+
import knex from 'knex';
|
|
3
5
|
import PgliteDialect from 'knex-pglite';
|
|
4
6
|
import { brotliDecompressSync, gunzipSync, inflateSync } from 'zlib';
|
|
5
7
|
import { deepMerge } from '@faasjs/deep_merge';
|
|
@@ -10,42 +12,42 @@ import * as func_star from '@faasjs/func';
|
|
|
10
12
|
import { join } from 'path';
|
|
11
13
|
import { Server } from '@faasjs/server';
|
|
12
14
|
|
|
13
|
-
var __defProp = Object.defineProperty;
|
|
14
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
15
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
16
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
17
|
-
var __export = (target, all) => {
|
|
18
|
-
for (var name in all)
|
|
19
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
20
|
-
};
|
|
21
|
-
var __copyProps = (to, from, except, desc) => {
|
|
22
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
23
|
-
for (let key of __getOwnPropNames(from))
|
|
24
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
25
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
26
|
-
}
|
|
27
|
-
return to;
|
|
28
|
-
};
|
|
29
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget);
|
|
30
|
-
|
|
31
15
|
// src/index.ts
|
|
32
16
|
var index_exports = {};
|
|
33
17
|
__export(index_exports, {
|
|
34
18
|
FuncWarper: () => FuncWarper,
|
|
35
19
|
createPgliteKnex: () => createPgliteKnex,
|
|
20
|
+
generateFaasTypes: () => generateFaasTypes,
|
|
21
|
+
isTypegenSourceFile: () => isTypegenSourceFile,
|
|
36
22
|
mountFaasKnex: () => mountFaasKnex,
|
|
37
|
-
runPgliteSql: () => runPgliteSql,
|
|
38
|
-
runPgliteSqlFile: () => runPgliteSqlFile,
|
|
39
23
|
streamToString: () => streamToString,
|
|
40
24
|
test: () => test,
|
|
41
25
|
unmountFaasKnex: () => unmountFaasKnex,
|
|
42
26
|
viteFaasJsServer: () => viteFaasJsServer
|
|
43
27
|
});
|
|
28
|
+
var postgresTypeParsers = {
|
|
29
|
+
[types.INT2]: (v) => Number.parseInt(v, 10),
|
|
30
|
+
[types.INT4]: (v) => Number.parseInt(v, 10),
|
|
31
|
+
[types.INT8]: (v) => Number.parseInt(v, 10),
|
|
32
|
+
[types.FLOAT4]: (v) => Number.parseFloat(v),
|
|
33
|
+
[types.FLOAT8]: (v) => Number.parseFloat(v),
|
|
34
|
+
[types.NUMERIC]: (v) => Number.parseFloat(v)
|
|
35
|
+
};
|
|
44
36
|
function createPgliteKnex(config = {}, connection = {}) {
|
|
37
|
+
const pgliteConnection = connection;
|
|
38
|
+
const dataDir = typeof pgliteConnection.filename === "string" ? pgliteConnection.filename : typeof pgliteConnection.connectionString === "string" ? pgliteConnection.connectionString : void 0;
|
|
39
|
+
const pglite = new PGlite({
|
|
40
|
+
...dataDir ? { dataDir } : {},
|
|
41
|
+
parsers: postgresTypeParsers
|
|
42
|
+
});
|
|
43
|
+
const pgliteKnexConnection = {
|
|
44
|
+
...connection,
|
|
45
|
+
pglite
|
|
46
|
+
};
|
|
45
47
|
return knex({
|
|
46
48
|
...config,
|
|
47
49
|
client: PgliteDialect,
|
|
48
|
-
connection
|
|
50
|
+
connection: pgliteKnexConnection
|
|
49
51
|
});
|
|
50
52
|
}
|
|
51
53
|
function mountFaasKnex(db, options = {}) {
|
|
@@ -63,17 +65,6 @@ function unmountFaasKnex(name = "knex") {
|
|
|
63
65
|
if (!globalWithFaasKnex.FaasJS_Knex) return;
|
|
64
66
|
delete globalWithFaasKnex.FaasJS_Knex[name];
|
|
65
67
|
}
|
|
66
|
-
async function runPgliteSql(db, sql) {
|
|
67
|
-
if (!sql.trim()) return;
|
|
68
|
-
await db.raw(sql);
|
|
69
|
-
}
|
|
70
|
-
async function runPgliteSqlFile(db, filePath, options = {}) {
|
|
71
|
-
const stripUuidOsspExtension = options.stripUuidOsspExtension !== false;
|
|
72
|
-
let sql = readFileSync(filePath, "utf8");
|
|
73
|
-
if (stripUuidOsspExtension)
|
|
74
|
-
sql = sql.replace(/CREATE EXTENSION IF NOT EXISTS "uuid-ossp";\s*/gi, "");
|
|
75
|
-
await runPgliteSql(db, sql);
|
|
76
|
-
}
|
|
77
68
|
|
|
78
69
|
// src/test.ts
|
|
79
70
|
var test_exports = {};
|
|
@@ -109,8 +100,7 @@ var FuncWarper = class {
|
|
|
109
100
|
plugins;
|
|
110
101
|
_handler;
|
|
111
102
|
/**
|
|
112
|
-
* @param
|
|
113
|
-
* @param func {Func} A FaasJs function
|
|
103
|
+
* @param initBy {Func} A FaasJS function
|
|
114
104
|
* ```ts
|
|
115
105
|
* import { FuncWarper } from '@faasjs/dev'
|
|
116
106
|
*
|
|
@@ -253,6 +243,7 @@ function test(initBy) {
|
|
|
253
243
|
|
|
254
244
|
// src/index.ts
|
|
255
245
|
__reExport(index_exports, test_exports);
|
|
246
|
+
var TYPEGEN_DEBOUNCE = 120;
|
|
256
247
|
function normalizeBase(base) {
|
|
257
248
|
const normalized = base.startsWith("/") ? base : `/${base}`;
|
|
258
249
|
if (normalized === "/") return "/";
|
|
@@ -268,7 +259,7 @@ function stripBase(url, base) {
|
|
|
268
259
|
return `${pathname.slice(base.length)}${search}`;
|
|
269
260
|
return url;
|
|
270
261
|
}
|
|
271
|
-
function viteFaasJsServer(
|
|
262
|
+
function viteFaasJsServer() {
|
|
272
263
|
let config;
|
|
273
264
|
let server = null;
|
|
274
265
|
const logger = new Logger("FaasJs:Vite");
|
|
@@ -276,20 +267,64 @@ function viteFaasJsServer(options = {}) {
|
|
|
276
267
|
name: "vite:faasjs",
|
|
277
268
|
enforce: "pre",
|
|
278
269
|
configResolved(resolvedConfig) {
|
|
279
|
-
const
|
|
280
|
-
|
|
270
|
+
const serverConfig = resolveServerConfig(
|
|
271
|
+
resolvedConfig.root,
|
|
272
|
+
logger,
|
|
273
|
+
resolvedConfig.base
|
|
274
|
+
);
|
|
281
275
|
config = {
|
|
282
|
-
root,
|
|
283
|
-
base
|
|
276
|
+
root: serverConfig.root,
|
|
277
|
+
base: normalizeBase(serverConfig.base)
|
|
284
278
|
};
|
|
285
279
|
},
|
|
286
|
-
configureServer: async ({ middlewares }) => {
|
|
280
|
+
configureServer: async ({ middlewares, watcher }) => {
|
|
287
281
|
if (process.env.VITEST) {
|
|
288
282
|
logger.debug("Skipping faas server in vitest environment");
|
|
289
283
|
return;
|
|
290
284
|
}
|
|
291
285
|
if (!config) throw new Error("viteFaasJsServer: config is not resolved");
|
|
292
286
|
server = new Server(join(config.root, "src"));
|
|
287
|
+
const runTypegen = async () => {
|
|
288
|
+
try {
|
|
289
|
+
const result = await generateFaasTypes({
|
|
290
|
+
root: config.root
|
|
291
|
+
});
|
|
292
|
+
logger.debug(
|
|
293
|
+
"[faas-types] %s %s (%i routes)",
|
|
294
|
+
result.changed ? "generated" : "up-to-date",
|
|
295
|
+
result.output,
|
|
296
|
+
result.routeCount
|
|
297
|
+
);
|
|
298
|
+
} catch (error) {
|
|
299
|
+
logger.error("[faas-types] %s", error.message);
|
|
300
|
+
}
|
|
301
|
+
};
|
|
302
|
+
let timer = null;
|
|
303
|
+
let runningTypegen = false;
|
|
304
|
+
let pendingTypegen = false;
|
|
305
|
+
const flushTypegen = async () => {
|
|
306
|
+
if (runningTypegen || !pendingTypegen) return;
|
|
307
|
+
pendingTypegen = false;
|
|
308
|
+
runningTypegen = true;
|
|
309
|
+
try {
|
|
310
|
+
await runTypegen();
|
|
311
|
+
} finally {
|
|
312
|
+
runningTypegen = false;
|
|
313
|
+
if (pendingTypegen) void flushTypegen();
|
|
314
|
+
}
|
|
315
|
+
};
|
|
316
|
+
const scheduleTypegen = () => {
|
|
317
|
+
pendingTypegen = true;
|
|
318
|
+
if (timer) clearTimeout(timer);
|
|
319
|
+
timer = setTimeout(() => {
|
|
320
|
+
void flushTypegen();
|
|
321
|
+
}, TYPEGEN_DEBOUNCE);
|
|
322
|
+
};
|
|
323
|
+
await runTypegen();
|
|
324
|
+
watcher.on("all", (_eventName, filePath) => {
|
|
325
|
+
if (!isTypegenSourceFile(filePath)) return;
|
|
326
|
+
scheduleTypegen();
|
|
327
|
+
});
|
|
293
328
|
middlewares.use(async (req, res, next) => {
|
|
294
329
|
if (!req.url || req.method !== "POST" || !server) return next();
|
|
295
330
|
const originalUrl = req.url;
|
|
@@ -320,4 +355,4 @@ function viteFaasJsServer(options = {}) {
|
|
|
320
355
|
};
|
|
321
356
|
}
|
|
322
357
|
|
|
323
|
-
export { FuncWarper, createPgliteKnex, mountFaasKnex,
|
|
358
|
+
export { FuncWarper, createPgliteKnex, mountFaasKnex, streamToString, test, unmountFaasKnex, viteFaasJsServer };
|
package/faas-types.mjs
ADDED
package/package.json
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faasjs/dev",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0-beta.6",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
7
7
|
"module": "dist/index.mjs",
|
|
8
8
|
"types": "dist/index.d.ts",
|
|
9
|
+
"bin": {
|
|
10
|
+
"faas-types": "faas-types.mjs"
|
|
11
|
+
},
|
|
9
12
|
"exports": {
|
|
10
13
|
".": {
|
|
11
14
|
"types": "./dist/index.d.ts",
|
|
@@ -24,33 +27,40 @@
|
|
|
24
27
|
},
|
|
25
28
|
"funding": "https://github.com/sponsors/faasjs",
|
|
26
29
|
"scripts": {
|
|
27
|
-
"build": "tsup-node src/index.ts --config ../../tsup.config.ts"
|
|
30
|
+
"build": "tsup-node --entry src/index.ts --entry src/cli.ts --config ../../tsup.config.ts"
|
|
28
31
|
},
|
|
29
32
|
"files": [
|
|
30
|
-
"dist"
|
|
33
|
+
"dist",
|
|
34
|
+
"faas-types.mjs"
|
|
31
35
|
],
|
|
32
36
|
"peerDependencies": {
|
|
33
|
-
"@
|
|
34
|
-
"@faasjs/
|
|
35
|
-
"@faasjs/
|
|
36
|
-
"@faasjs/
|
|
37
|
-
"@faasjs/
|
|
38
|
-
"@faasjs/
|
|
39
|
-
"@faasjs/
|
|
37
|
+
"@electric-sql/pglite": "*",
|
|
38
|
+
"@faasjs/deep_merge": ">=8.0.0-beta.6",
|
|
39
|
+
"@faasjs/func": ">=8.0.0-beta.6",
|
|
40
|
+
"@faasjs/http": ">=8.0.0-beta.6",
|
|
41
|
+
"@faasjs/server": ">=8.0.0-beta.6",
|
|
42
|
+
"@faasjs/knex": ">=8.0.0-beta.6",
|
|
43
|
+
"@faasjs/load": ">=8.0.0-beta.6",
|
|
44
|
+
"@faasjs/logger": ">=8.0.0-beta.6",
|
|
45
|
+
"@types/node": "*",
|
|
40
46
|
"knex": "*",
|
|
41
47
|
"vite": "*",
|
|
48
|
+
"vitest": "*",
|
|
42
49
|
"knex-pglite": "*"
|
|
43
50
|
},
|
|
44
51
|
"devDependencies": {
|
|
45
|
-
"@
|
|
46
|
-
"@faasjs/
|
|
47
|
-
"@faasjs/
|
|
48
|
-
"@faasjs/
|
|
49
|
-
"@faasjs/
|
|
50
|
-
"@faasjs/
|
|
51
|
-
"@faasjs/
|
|
52
|
+
"@electric-sql/pglite": "*",
|
|
53
|
+
"@faasjs/deep_merge": ">=8.0.0-beta.6",
|
|
54
|
+
"@faasjs/func": ">=8.0.0-beta.6",
|
|
55
|
+
"@faasjs/http": ">=8.0.0-beta.6",
|
|
56
|
+
"@faasjs/server": ">=8.0.0-beta.6",
|
|
57
|
+
"@faasjs/knex": ">=8.0.0-beta.6",
|
|
58
|
+
"@faasjs/load": ">=8.0.0-beta.6",
|
|
59
|
+
"@faasjs/logger": ">=8.0.0-beta.6",
|
|
60
|
+
"@types/node": "*",
|
|
52
61
|
"knex": "*",
|
|
53
62
|
"vite": "*",
|
|
63
|
+
"vitest": "*",
|
|
54
64
|
"knex-pglite": "*"
|
|
55
65
|
},
|
|
56
66
|
"engines": {
|