vector-framework 0.9.3 → 0.9.4
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/cli/index.js +38 -11
- package/dist/cli/index.js.map +1 -1
- package/dist/cli.js +20 -14
- package/dist/core/config-loader.d.ts.map +1 -1
- package/dist/core/config-loader.js +0 -8
- package/dist/core/config-loader.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/index.ts +49 -12
- package/src/core/config-loader.ts +0 -8
package/dist/cli/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { parseArgs } from "node:util";
|
|
|
4
4
|
import { getVectorInstance } from "../core/vector";
|
|
5
5
|
import { ConfigLoader } from "../core/config-loader";
|
|
6
6
|
// Compatibility layer for both Node and Bun
|
|
7
|
-
const args = typeof Bun !==
|
|
7
|
+
const args = typeof Bun !== "undefined" ? Bun.argv.slice(2) : process.argv.slice(2);
|
|
8
8
|
const { values, positionals } = parseArgs({
|
|
9
9
|
args,
|
|
10
10
|
options: {
|
|
@@ -84,7 +84,7 @@ async function runDev() {
|
|
|
84
84
|
const reset = "\x1b[0m";
|
|
85
85
|
const cyan = "\x1b[36m";
|
|
86
86
|
const green = "\x1b[32m";
|
|
87
|
-
console.log(` ${gray}Config${reset} ${configSource ===
|
|
87
|
+
console.log(` ${gray}Config${reset} ${configSource === "user" ? "User config loaded" : "Using defaults"}`);
|
|
88
88
|
console.log(` ${gray}Routes${reset} ${config.routesDir}`);
|
|
89
89
|
if (isDev && values.watch) {
|
|
90
90
|
console.log(` ${gray}Watching${reset} All project files`);
|
|
@@ -107,25 +107,45 @@ async function runDev() {
|
|
|
107
107
|
if (isDev && values.watch) {
|
|
108
108
|
try {
|
|
109
109
|
let reloadTimeout = null;
|
|
110
|
+
let isReloading = false;
|
|
111
|
+
const changedFiles = new Set();
|
|
112
|
+
let lastReloadTime = 0;
|
|
110
113
|
// Watch entire project directory for changes
|
|
111
114
|
watch(process.cwd(), { recursive: true }, async (_, filename) => {
|
|
115
|
+
// Skip if already reloading or if it's too soon after last reload
|
|
116
|
+
const now = Date.now();
|
|
117
|
+
if (isReloading || now - lastReloadTime < 1000)
|
|
118
|
+
return;
|
|
112
119
|
if (filename &&
|
|
113
120
|
(filename.endsWith(".ts") ||
|
|
114
121
|
filename.endsWith(".js") ||
|
|
115
122
|
filename.endsWith(".json")) &&
|
|
116
123
|
!filename.includes("node_modules") &&
|
|
117
|
-
!filename.includes(".git")
|
|
124
|
+
!filename.includes(".git") &&
|
|
125
|
+
!filename.includes(".vector") && // Ignore generated files
|
|
126
|
+
!filename.includes("dist") && // Ignore dist folder
|
|
127
|
+
!filename.includes("bun.lockb") && // Ignore lock files
|
|
128
|
+
!filename.endsWith(".generated.ts") // Ignore generated files
|
|
129
|
+
) {
|
|
130
|
+
// Track changed files
|
|
131
|
+
changedFiles.add(filename);
|
|
118
132
|
// Debounce reload to avoid multiple restarts
|
|
119
133
|
if (reloadTimeout) {
|
|
120
134
|
clearTimeout(reloadTimeout);
|
|
121
135
|
}
|
|
122
136
|
reloadTimeout = setTimeout(async () => {
|
|
123
|
-
|
|
124
|
-
|
|
137
|
+
if (isReloading || changedFiles.size === 0)
|
|
138
|
+
return;
|
|
139
|
+
isReloading = true;
|
|
140
|
+
lastReloadTime = Date.now();
|
|
141
|
+
// Clear changed files
|
|
142
|
+
changedFiles.clear();
|
|
125
143
|
// Stop the current server
|
|
126
144
|
if (vector) {
|
|
127
145
|
vector.stop();
|
|
128
146
|
}
|
|
147
|
+
// Small delay to ensure file system operations complete
|
|
148
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
129
149
|
// Clear module cache to ensure fresh imports
|
|
130
150
|
for (const key in require.cache) {
|
|
131
151
|
if (!key.includes("node_modules")) {
|
|
@@ -136,11 +156,18 @@ async function runDev() {
|
|
|
136
156
|
try {
|
|
137
157
|
const result = await startServer();
|
|
138
158
|
server = result.server;
|
|
159
|
+
vector = result.vector;
|
|
139
160
|
}
|
|
140
161
|
catch (error) {
|
|
141
162
|
console.error(" ❌ Failed to reload server:", error);
|
|
142
163
|
}
|
|
143
|
-
|
|
164
|
+
finally {
|
|
165
|
+
// Reset flag after a delay
|
|
166
|
+
setTimeout(() => {
|
|
167
|
+
isReloading = false;
|
|
168
|
+
}, 2000); // 2 second cooldown
|
|
169
|
+
}
|
|
170
|
+
}, 500); // Increased debounce to 500ms
|
|
144
171
|
}
|
|
145
172
|
});
|
|
146
173
|
}
|
|
@@ -165,7 +192,7 @@ async function runBuild() {
|
|
|
165
192
|
await generator.generate(routes);
|
|
166
193
|
console.log(` Generated ${routes.length} routes`);
|
|
167
194
|
// Use spawn based on runtime
|
|
168
|
-
if (typeof Bun !==
|
|
195
|
+
if (typeof Bun !== "undefined") {
|
|
169
196
|
const buildProcess = Bun.spawn([
|
|
170
197
|
"bun",
|
|
171
198
|
"build",
|
|
@@ -178,10 +205,10 @@ async function runBuild() {
|
|
|
178
205
|
}
|
|
179
206
|
else {
|
|
180
207
|
// For Node.js, use child_process
|
|
181
|
-
const { spawnSync } = await import(
|
|
182
|
-
spawnSync(
|
|
183
|
-
stdio:
|
|
184
|
-
shell: true
|
|
208
|
+
const { spawnSync } = await import("child_process");
|
|
209
|
+
spawnSync("bun", ["build", "src/index.ts", "--outdir", "dist", "--minify"], {
|
|
210
|
+
stdio: "inherit",
|
|
211
|
+
shell: true,
|
|
185
212
|
});
|
|
186
213
|
}
|
|
187
214
|
console.log("\n ✓ Build complete\n");
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,4CAA4C;AAC5C,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -1082,20 +1082,14 @@ class ConfigLoader {
|
|
|
1082
1082
|
}
|
|
1083
1083
|
}
|
|
1084
1084
|
if (this.config?.before) {
|
|
1085
|
-
console.log("Using direct before middleware functions:", this.config.before.length);
|
|
1086
1085
|
config.before = this.config.before;
|
|
1087
1086
|
} else if (this.config?.middleware?.before) {
|
|
1088
|
-
console.log("Loading before middleware from file paths:", this.config.middleware.before);
|
|
1089
1087
|
config.before = await this.loadMiddleware(this.config.middleware.before);
|
|
1090
|
-
console.log("Loaded before middleware:", config.before?.length);
|
|
1091
1088
|
}
|
|
1092
1089
|
if (this.config?.after) {
|
|
1093
|
-
console.log("Using direct after middleware functions:", this.config.after.length);
|
|
1094
1090
|
config.finally = this.config.after;
|
|
1095
1091
|
} else if (this.config?.middleware?.after) {
|
|
1096
|
-
console.log("Loading after middleware from file paths:", this.config.middleware.after);
|
|
1097
1092
|
config.finally = await this.loadMiddleware(this.config.middleware.after);
|
|
1098
|
-
console.log("Loaded after middleware:", config.finally?.length);
|
|
1099
1093
|
}
|
|
1100
1094
|
return config;
|
|
1101
1095
|
}
|
|
@@ -1120,7 +1114,6 @@ class ConfigLoader {
|
|
|
1120
1114
|
}
|
|
1121
1115
|
async loadAuthHandler() {
|
|
1122
1116
|
if (this.config?.auth) {
|
|
1123
|
-
console.log("Using direct auth handler function");
|
|
1124
1117
|
return this.config.auth;
|
|
1125
1118
|
}
|
|
1126
1119
|
if (!this.config?.handlers?.auth) {
|
|
@@ -1144,7 +1137,6 @@ class ConfigLoader {
|
|
|
1144
1137
|
}
|
|
1145
1138
|
async loadCacheHandler() {
|
|
1146
1139
|
if (this.config?.cache) {
|
|
1147
|
-
console.log("Using direct cache handler function");
|
|
1148
1140
|
return this.config.cache;
|
|
1149
1141
|
}
|
|
1150
1142
|
if (!this.config?.handlers?.cache) {
|
|
@@ -1268,19 +1260,28 @@ async function runDev() {
|
|
|
1268
1260
|
if (isDev && values.watch) {
|
|
1269
1261
|
try {
|
|
1270
1262
|
let reloadTimeout = null;
|
|
1263
|
+
let isReloading = false;
|
|
1264
|
+
const changedFiles = new Set;
|
|
1265
|
+
let lastReloadTime = 0;
|
|
1271
1266
|
watch(process.cwd(), { recursive: true }, async (_, filename) => {
|
|
1272
|
-
|
|
1267
|
+
const now = Date.now();
|
|
1268
|
+
if (isReloading || now - lastReloadTime < 1000)
|
|
1269
|
+
return;
|
|
1270
|
+
if (filename && (filename.endsWith(".ts") || filename.endsWith(".js") || filename.endsWith(".json")) && !filename.includes("node_modules") && !filename.includes(".git") && !filename.includes(".vector") && !filename.includes("dist") && !filename.includes("bun.lockb") && !filename.endsWith(".generated.ts")) {
|
|
1271
|
+
changedFiles.add(filename);
|
|
1273
1272
|
if (reloadTimeout) {
|
|
1274
1273
|
clearTimeout(reloadTimeout);
|
|
1275
1274
|
}
|
|
1276
1275
|
reloadTimeout = setTimeout(async () => {
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1276
|
+
if (isReloading || changedFiles.size === 0)
|
|
1277
|
+
return;
|
|
1278
|
+
isReloading = true;
|
|
1279
|
+
lastReloadTime = Date.now();
|
|
1280
|
+
changedFiles.clear();
|
|
1281
1281
|
if (vector) {
|
|
1282
1282
|
vector.stop();
|
|
1283
1283
|
}
|
|
1284
|
+
await new Promise((resolve3) => setTimeout(resolve3, 100));
|
|
1284
1285
|
for (const key in __require.cache) {
|
|
1285
1286
|
if (!key.includes("node_modules")) {
|
|
1286
1287
|
delete __require.cache[key];
|
|
@@ -1289,10 +1290,15 @@ async function runDev() {
|
|
|
1289
1290
|
try {
|
|
1290
1291
|
const result2 = await startServer();
|
|
1291
1292
|
server = result2.server;
|
|
1293
|
+
vector = result2.vector;
|
|
1292
1294
|
} catch (error) {
|
|
1293
1295
|
console.error(" \u274C Failed to reload server:", error);
|
|
1296
|
+
} finally {
|
|
1297
|
+
setTimeout(() => {
|
|
1298
|
+
isReloading = false;
|
|
1299
|
+
}, 2000);
|
|
1294
1300
|
}
|
|
1295
|
-
},
|
|
1301
|
+
}, 500);
|
|
1296
1302
|
}
|
|
1297
1303
|
});
|
|
1298
1304
|
} catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/core/config-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,YAAY,EAEZ,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACZ,MAAM,UAAU,CAAC;AAElB,qBAAa,YAAY,CAAC,MAAM,SAAS,WAAW,GAAG,kBAAkB;IACvE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,YAAY,CAAiC;gBAEzC,UAAU,SAAqB;IAKrC,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IA6B3C,eAAe,IAAI,MAAM,GAAG,SAAS;YAIvB,iBAAiB;
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/core/config-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,YAAY,EAEZ,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACZ,MAAM,UAAU,CAAC;AAElB,qBAAa,YAAY,CAAC,MAAM,SAAS,WAAW,GAAG,kBAAkB;IACvE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,YAAY,CAAiC;gBAEzC,UAAU,SAAqB;IAKrC,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IA6B3C,eAAe,IAAI,MAAM,GAAG,SAAS;YAIvB,iBAAiB;YAmEjB,cAAc;IAuBtB,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IA6B3D,gBAAgB,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IA6BtD,SAAS,IAAI,kBAAkB,CAAC,MAAM,CAAC,GAAG,IAAI;CAG/C"}
|
|
@@ -84,25 +84,19 @@ export class ConfigLoader {
|
|
|
84
84
|
// Load middleware - support both direct functions and file paths
|
|
85
85
|
if (this.config?.before) {
|
|
86
86
|
// Direct functions provided
|
|
87
|
-
console.log('Using direct before middleware functions:', this.config.before.length);
|
|
88
87
|
config.before = this.config.before;
|
|
89
88
|
}
|
|
90
89
|
else if (this.config?.middleware?.before) {
|
|
91
90
|
// File paths provided (legacy)
|
|
92
|
-
console.log('Loading before middleware from file paths:', this.config.middleware.before);
|
|
93
91
|
config.before = await this.loadMiddleware(this.config.middleware.before);
|
|
94
|
-
console.log('Loaded before middleware:', config.before?.length);
|
|
95
92
|
}
|
|
96
93
|
if (this.config?.after) {
|
|
97
94
|
// Direct functions provided
|
|
98
|
-
console.log('Using direct after middleware functions:', this.config.after.length);
|
|
99
95
|
config.finally = this.config.after;
|
|
100
96
|
}
|
|
101
97
|
else if (this.config?.middleware?.after) {
|
|
102
98
|
// File paths provided (legacy)
|
|
103
|
-
console.log('Loading after middleware from file paths:', this.config.middleware.after);
|
|
104
99
|
config.finally = await this.loadMiddleware(this.config.middleware.after);
|
|
105
|
-
console.log('Loaded after middleware:', config.finally?.length);
|
|
106
100
|
}
|
|
107
101
|
return config;
|
|
108
102
|
}
|
|
@@ -130,7 +124,6 @@ export class ConfigLoader {
|
|
|
130
124
|
async loadAuthHandler() {
|
|
131
125
|
// Direct function provided
|
|
132
126
|
if (this.config?.auth) {
|
|
133
|
-
console.log('Using direct auth handler function');
|
|
134
127
|
return this.config.auth;
|
|
135
128
|
}
|
|
136
129
|
// File path provided (legacy)
|
|
@@ -158,7 +151,6 @@ export class ConfigLoader {
|
|
|
158
151
|
async loadCacheHandler() {
|
|
159
152
|
// Direct function provided
|
|
160
153
|
if (this.config?.cache) {
|
|
161
|
-
console.log('Using direct cache handler function');
|
|
162
154
|
return this.config.cache;
|
|
163
155
|
}
|
|
164
156
|
// File path provided (legacy)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/core/config-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAa1C,MAAM,OAAO,YAAY;IACf,UAAU,CAAS;IACnB,MAAM,GAAsC,IAAI,CAAC;IACjD,YAAY,GAAuB,SAAS,CAAC;IAErD,YAAY,UAAU,GAAG,kBAAkB;QACzC,qEAAqE;QACrE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,wDAAwD;QACxD,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;gBAEzD,wDAAwD;gBACxD,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAClD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;gBAChD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC;gBAC/C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;gBAE3B,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YACrD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC3E,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;gBAC/C,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,0CAA0C;YAC1C,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,0DAA0D;QAC1D,OAAO,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACxC,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,MAAM,MAAM,GAAyB,EAAE,CAAC;QAExC,uBAAuB;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YACtC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC9C,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YAChD,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;QACtD,CAAC;QAED,6DAA6D;QAC7D,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACxB,0CAA0C;YAC1C,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC;YACxD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,KAAK,KAAK,CAAC;QAClE,CAAC;aAAM,IAAK,IAAI,CAAC,MAAc,EAAE,SAAS,EAAE,CAAC;YAC3C,uCAAuC;YACvC,MAAM,CAAC,SAAS,GAAI,IAAI,CAAC,MAAc,CAAC,SAAS,CAAC;YAClD,MAAM,CAAC,YAAY,GAAI,IAAI,CAAC,MAAc,CAAC,YAAY,KAAK,KAAK,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC;YAC9B,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YACtB,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC1C,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;oBAC5B,CAAC,CAAC;wBACE,MAAM,EAAE,GAAG;wBACX,WAAW,EAAE,IAAI;wBACjB,YAAY,EAAE,6BAA6B;wBAC3C,YAAY,EAAE,wCAAwC;wBACtD,aAAa,EAAE,eAAe;wBAC9B,MAAM,EAAE,KAAK;qBACd;oBACH,CAAC,CAAC,SAAS,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAmB,CAAC;YAChD,CAAC;QACH,CAAC;QAED,iEAAiE;QACjE,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACxB,4BAA4B;YAC5B,
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/core/config-loader.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/cli/index.ts
CHANGED
|
@@ -6,7 +6,8 @@ import { getVectorInstance } from "../core/vector";
|
|
|
6
6
|
import { ConfigLoader } from "../core/config-loader";
|
|
7
7
|
|
|
8
8
|
// Compatibility layer for both Node and Bun
|
|
9
|
-
const args =
|
|
9
|
+
const args =
|
|
10
|
+
typeof Bun !== "undefined" ? Bun.argv.slice(2) : process.argv.slice(2);
|
|
10
11
|
|
|
11
12
|
const { values, positionals } = parseArgs({
|
|
12
13
|
args,
|
|
@@ -101,7 +102,11 @@ async function runDev() {
|
|
|
101
102
|
const cyan = "\x1b[36m";
|
|
102
103
|
const green = "\x1b[32m";
|
|
103
104
|
|
|
104
|
-
console.log(
|
|
105
|
+
console.log(
|
|
106
|
+
` ${gray}Config${reset} ${
|
|
107
|
+
configSource === "user" ? "User config loaded" : "Using defaults"
|
|
108
|
+
}`
|
|
109
|
+
);
|
|
105
110
|
console.log(` ${gray}Routes${reset} ${config.routesDir}`);
|
|
106
111
|
if (isDev && values.watch) {
|
|
107
112
|
console.log(` ${gray}Watching${reset} All project files`);
|
|
@@ -132,31 +137,53 @@ async function runDev() {
|
|
|
132
137
|
if (isDev && values.watch) {
|
|
133
138
|
try {
|
|
134
139
|
let reloadTimeout: any = null;
|
|
140
|
+
let isReloading = false;
|
|
141
|
+
const changedFiles = new Set<string>();
|
|
142
|
+
let lastReloadTime = 0;
|
|
135
143
|
|
|
136
144
|
// Watch entire project directory for changes
|
|
137
145
|
watch(process.cwd(), { recursive: true }, async (_, filename) => {
|
|
146
|
+
// Skip if already reloading or if it's too soon after last reload
|
|
147
|
+
const now = Date.now();
|
|
148
|
+
if (isReloading || now - lastReloadTime < 1000) return;
|
|
149
|
+
|
|
138
150
|
if (
|
|
139
151
|
filename &&
|
|
140
152
|
(filename.endsWith(".ts") ||
|
|
141
153
|
filename.endsWith(".js") ||
|
|
142
154
|
filename.endsWith(".json")) &&
|
|
143
155
|
!filename.includes("node_modules") &&
|
|
144
|
-
!filename.includes(".git")
|
|
156
|
+
!filename.includes(".git") &&
|
|
157
|
+
!filename.includes(".vector") && // Ignore generated files
|
|
158
|
+
!filename.includes("dist") && // Ignore dist folder
|
|
159
|
+
!filename.includes("bun.lockb") && // Ignore lock files
|
|
160
|
+
!filename.endsWith(".generated.ts") // Ignore generated files
|
|
145
161
|
) {
|
|
162
|
+
// Track changed files
|
|
163
|
+
changedFiles.add(filename);
|
|
164
|
+
|
|
146
165
|
// Debounce reload to avoid multiple restarts
|
|
147
166
|
if (reloadTimeout) {
|
|
148
167
|
clearTimeout(reloadTimeout);
|
|
149
168
|
}
|
|
150
169
|
|
|
151
170
|
reloadTimeout = setTimeout(async () => {
|
|
152
|
-
|
|
153
|
-
|
|
171
|
+
if (isReloading || changedFiles.size === 0) return;
|
|
172
|
+
|
|
173
|
+
isReloading = true;
|
|
174
|
+
lastReloadTime = Date.now();
|
|
175
|
+
|
|
176
|
+
// Clear changed files
|
|
177
|
+
changedFiles.clear();
|
|
154
178
|
|
|
155
179
|
// Stop the current server
|
|
156
180
|
if (vector) {
|
|
157
181
|
vector.stop();
|
|
158
182
|
}
|
|
159
183
|
|
|
184
|
+
// Small delay to ensure file system operations complete
|
|
185
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
186
|
+
|
|
160
187
|
// Clear module cache to ensure fresh imports
|
|
161
188
|
for (const key in require.cache) {
|
|
162
189
|
if (!key.includes("node_modules")) {
|
|
@@ -168,10 +195,16 @@ async function runDev() {
|
|
|
168
195
|
try {
|
|
169
196
|
const result = await startServer();
|
|
170
197
|
server = result.server;
|
|
198
|
+
vector = result.vector;
|
|
171
199
|
} catch (error) {
|
|
172
200
|
console.error(" ❌ Failed to reload server:", error);
|
|
201
|
+
} finally {
|
|
202
|
+
// Reset flag after a delay
|
|
203
|
+
setTimeout(() => {
|
|
204
|
+
isReloading = false;
|
|
205
|
+
}, 2000); // 2 second cooldown
|
|
173
206
|
}
|
|
174
|
-
},
|
|
207
|
+
}, 500); // Increased debounce to 500ms
|
|
175
208
|
}
|
|
176
209
|
});
|
|
177
210
|
} catch (err) {
|
|
@@ -200,7 +233,7 @@ async function runBuild() {
|
|
|
200
233
|
console.log(` Generated ${routes.length} routes`);
|
|
201
234
|
|
|
202
235
|
// Use spawn based on runtime
|
|
203
|
-
if (typeof Bun !==
|
|
236
|
+
if (typeof Bun !== "undefined") {
|
|
204
237
|
const buildProcess = Bun.spawn([
|
|
205
238
|
"bun",
|
|
206
239
|
"build",
|
|
@@ -212,11 +245,15 @@ async function runBuild() {
|
|
|
212
245
|
await buildProcess.exited;
|
|
213
246
|
} else {
|
|
214
247
|
// For Node.js, use child_process
|
|
215
|
-
const { spawnSync } = await import(
|
|
216
|
-
spawnSync(
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
248
|
+
const { spawnSync } = await import("child_process");
|
|
249
|
+
spawnSync(
|
|
250
|
+
"bun",
|
|
251
|
+
["build", "src/index.ts", "--outdir", "dist", "--minify"],
|
|
252
|
+
{
|
|
253
|
+
stdio: "inherit",
|
|
254
|
+
shell: true,
|
|
255
|
+
}
|
|
256
|
+
);
|
|
220
257
|
}
|
|
221
258
|
|
|
222
259
|
console.log("\n ✓ Build complete\n");
|
|
@@ -102,28 +102,22 @@ export class ConfigLoader<TTypes extends VectorTypes = DefaultVectorTypes> {
|
|
|
102
102
|
// Load middleware - support both direct functions and file paths
|
|
103
103
|
if (this.config?.before) {
|
|
104
104
|
// Direct functions provided
|
|
105
|
-
console.log('Using direct before middleware functions:', this.config.before.length);
|
|
106
105
|
config.before = this.config.before;
|
|
107
106
|
} else if (this.config?.middleware?.before) {
|
|
108
107
|
// File paths provided (legacy)
|
|
109
|
-
console.log('Loading before middleware from file paths:', this.config.middleware.before);
|
|
110
108
|
config.before = await this.loadMiddleware<BeforeMiddlewareHandler<TTypes>>(
|
|
111
109
|
this.config.middleware.before
|
|
112
110
|
);
|
|
113
|
-
console.log('Loaded before middleware:', config.before?.length);
|
|
114
111
|
}
|
|
115
112
|
|
|
116
113
|
if (this.config?.after) {
|
|
117
114
|
// Direct functions provided
|
|
118
|
-
console.log('Using direct after middleware functions:', this.config.after.length);
|
|
119
115
|
config.finally = this.config.after;
|
|
120
116
|
} else if (this.config?.middleware?.after) {
|
|
121
117
|
// File paths provided (legacy)
|
|
122
|
-
console.log('Loading after middleware from file paths:', this.config.middleware.after);
|
|
123
118
|
config.finally = await this.loadMiddleware<AfterMiddlewareHandler<TTypes>>(
|
|
124
119
|
this.config.middleware.after
|
|
125
120
|
);
|
|
126
|
-
console.log('Loaded after middleware:', config.finally?.length);
|
|
127
121
|
}
|
|
128
122
|
|
|
129
123
|
return config;
|
|
@@ -155,7 +149,6 @@ export class ConfigLoader<TTypes extends VectorTypes = DefaultVectorTypes> {
|
|
|
155
149
|
async loadAuthHandler(): Promise<ProtectedHandler<TTypes> | null> {
|
|
156
150
|
// Direct function provided
|
|
157
151
|
if (this.config?.auth) {
|
|
158
|
-
console.log('Using direct auth handler function');
|
|
159
152
|
return this.config.auth;
|
|
160
153
|
}
|
|
161
154
|
|
|
@@ -185,7 +178,6 @@ export class ConfigLoader<TTypes extends VectorTypes = DefaultVectorTypes> {
|
|
|
185
178
|
async loadCacheHandler(): Promise<CacheHandler | null> {
|
|
186
179
|
// Direct function provided
|
|
187
180
|
if (this.config?.cache) {
|
|
188
|
-
console.log('Using direct cache handler function');
|
|
189
181
|
return this.config.cache;
|
|
190
182
|
}
|
|
191
183
|
|