@lolyjs/core 0.3.0-alpha.1 → 0.3.0-alpha.3
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.cjs +69 -26
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.mjs +69 -26
- package/dist/cli.mjs.map +1 -1
- package/dist/index.cjs +69 -26
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +69 -26
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -10027,11 +10027,18 @@ var getServerFile = async (projectRoot, fileName) => {
|
|
|
10027
10027
|
// modules/server/init.ts
|
|
10028
10028
|
var INIT_FILE_NAME = "init.server";
|
|
10029
10029
|
async function runInitIfExists(projectRoot, serverData) {
|
|
10030
|
-
|
|
10031
|
-
|
|
10032
|
-
|
|
10033
|
-
|
|
10034
|
-
|
|
10030
|
+
try {
|
|
10031
|
+
let mod = await getServerFile(projectRoot, INIT_FILE_NAME);
|
|
10032
|
+
if (!mod) {
|
|
10033
|
+
return {};
|
|
10034
|
+
}
|
|
10035
|
+
if (typeof mod?.init === "function") {
|
|
10036
|
+
const serverContext = { ...serverData };
|
|
10037
|
+
await mod.init({ serverContext });
|
|
10038
|
+
return serverContext;
|
|
10039
|
+
}
|
|
10040
|
+
} catch (error) {
|
|
10041
|
+
console.error(`[Init] Failed to load or execute ${INIT_FILE_NAME}.ts:`, error);
|
|
10035
10042
|
}
|
|
10036
10043
|
return {};
|
|
10037
10044
|
}
|
|
@@ -10150,7 +10157,7 @@ var NAMING = {
|
|
|
10150
10157
|
// Files
|
|
10151
10158
|
SERVER_HOOK: "server.hook"
|
|
10152
10159
|
};
|
|
10153
|
-
async function loadServerHookForDir(currentDir) {
|
|
10160
|
+
async function loadServerHookForDir(currentDir, projectRoot) {
|
|
10154
10161
|
const isDev = process.env.NODE_ENV === "development";
|
|
10155
10162
|
const isBuild = process.env.LOLY_BUILD === "1";
|
|
10156
10163
|
let file = null;
|
|
@@ -10176,10 +10183,24 @@ async function loadServerHookForDir(currentDir) {
|
|
|
10176
10183
|
generateStaticParams: null
|
|
10177
10184
|
};
|
|
10178
10185
|
}
|
|
10186
|
+
let resolvedProjectRoot = projectRoot;
|
|
10187
|
+
if (!resolvedProjectRoot) {
|
|
10188
|
+
let current = import_path4.default.resolve(currentDir);
|
|
10189
|
+
while (current !== import_path4.default.dirname(current)) {
|
|
10190
|
+
if (import_fs4.default.existsSync(import_path4.default.join(current, "package.json"))) {
|
|
10191
|
+
resolvedProjectRoot = current;
|
|
10192
|
+
break;
|
|
10193
|
+
}
|
|
10194
|
+
current = import_path4.default.dirname(current);
|
|
10195
|
+
}
|
|
10196
|
+
if (!resolvedProjectRoot) {
|
|
10197
|
+
resolvedProjectRoot = currentDir;
|
|
10198
|
+
}
|
|
10199
|
+
}
|
|
10179
10200
|
let mod;
|
|
10180
10201
|
try {
|
|
10181
10202
|
const { loadModule: loadModule2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
10182
|
-
mod = await loadModule2(file, { projectRoot:
|
|
10203
|
+
mod = await loadModule2(file, { projectRoot: resolvedProjectRoot });
|
|
10183
10204
|
} catch (error) {
|
|
10184
10205
|
console.error(
|
|
10185
10206
|
`[framework][server-hook] Error loading server hook from ${file}:`,
|
|
@@ -10222,7 +10243,7 @@ async function loadServerHookForDir(currentDir) {
|
|
|
10222
10243
|
generateStaticParams
|
|
10223
10244
|
};
|
|
10224
10245
|
}
|
|
10225
|
-
async function loadLayoutServerHook(layoutFile) {
|
|
10246
|
+
async function loadLayoutServerHook(layoutFile, projectRoot) {
|
|
10226
10247
|
const layoutDir = import_path4.default.dirname(layoutFile);
|
|
10227
10248
|
const layoutExt = import_path4.default.extname(layoutFile);
|
|
10228
10249
|
const layoutBasename = import_path4.default.basename(layoutFile, layoutExt);
|
|
@@ -10248,7 +10269,20 @@ async function loadLayoutServerHook(layoutFile) {
|
|
|
10248
10269
|
}
|
|
10249
10270
|
try {
|
|
10250
10271
|
const { loadModule: loadModule2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
10251
|
-
|
|
10272
|
+
if (!projectRoot) {
|
|
10273
|
+
let current = import_path4.default.dirname(layoutFile);
|
|
10274
|
+
while (current !== import_path4.default.dirname(current)) {
|
|
10275
|
+
if (import_fs4.default.existsSync(import_path4.default.join(current, "package.json"))) {
|
|
10276
|
+
projectRoot = current;
|
|
10277
|
+
break;
|
|
10278
|
+
}
|
|
10279
|
+
current = import_path4.default.dirname(current);
|
|
10280
|
+
}
|
|
10281
|
+
if (!projectRoot) {
|
|
10282
|
+
projectRoot = import_path4.default.dirname(layoutFile);
|
|
10283
|
+
}
|
|
10284
|
+
}
|
|
10285
|
+
const mod = await loadModule2(file, { projectRoot });
|
|
10252
10286
|
const serverHook = typeof mod?.getServerSideProps === "function" ? mod.getServerSideProps : null;
|
|
10253
10287
|
let middlewares = [];
|
|
10254
10288
|
const rawMiddlewares = mod?.[NAMING.BEFORE_MIDDLEWARES];
|
|
@@ -10336,6 +10370,15 @@ async function loadRoutes(appDir) {
|
|
|
10336
10370
|
if (!import_fs5.default.existsSync(appDir)) {
|
|
10337
10371
|
return [];
|
|
10338
10372
|
}
|
|
10373
|
+
let projectRoot = appDir;
|
|
10374
|
+
let current = import_path5.default.resolve(appDir);
|
|
10375
|
+
while (current !== import_path5.default.dirname(current)) {
|
|
10376
|
+
if (import_fs5.default.existsSync(import_path5.default.join(current, "package.json"))) {
|
|
10377
|
+
projectRoot = current;
|
|
10378
|
+
break;
|
|
10379
|
+
}
|
|
10380
|
+
current = import_path5.default.dirname(current);
|
|
10381
|
+
}
|
|
10339
10382
|
const routes = [];
|
|
10340
10383
|
async function walk(currentDir) {
|
|
10341
10384
|
const entries = import_fs5.default.readdirSync(currentDir, { withFileTypes: true });
|
|
@@ -10354,7 +10397,7 @@ async function loadRoutes(appDir) {
|
|
|
10354
10397
|
const { regex, paramNames } = buildRegexFromRoutePath(routePath);
|
|
10355
10398
|
const { loadDefaultExport: loadDefaultExport2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
10356
10399
|
const component = await loadDefaultExport2(fullPath, {
|
|
10357
|
-
projectRoot
|
|
10400
|
+
projectRoot
|
|
10358
10401
|
});
|
|
10359
10402
|
if (!component) {
|
|
10360
10403
|
continue;
|
|
@@ -10366,7 +10409,7 @@ async function loadRoutes(appDir) {
|
|
|
10366
10409
|
const layoutServerHooks = [];
|
|
10367
10410
|
const layoutMiddlewares = [];
|
|
10368
10411
|
for (const layoutFile of layoutFiles) {
|
|
10369
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
10412
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
10370
10413
|
if (layoutHookData) {
|
|
10371
10414
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
10372
10415
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -10375,7 +10418,7 @@ async function loadRoutes(appDir) {
|
|
|
10375
10418
|
layoutMiddlewares.push([]);
|
|
10376
10419
|
}
|
|
10377
10420
|
}
|
|
10378
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(currentDir);
|
|
10421
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(currentDir, projectRoot);
|
|
10379
10422
|
routes.push({
|
|
10380
10423
|
pattern: routePath,
|
|
10381
10424
|
regex,
|
|
@@ -10971,7 +11014,7 @@ async function loadRoutesFromManifest(projectRoot) {
|
|
|
10971
11014
|
const layoutServerHooks = [];
|
|
10972
11015
|
const layoutMiddlewares = [];
|
|
10973
11016
|
for (const layoutFile of layoutFiles) {
|
|
10974
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
11017
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
10975
11018
|
if (layoutHookData) {
|
|
10976
11019
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
10977
11020
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -10980,7 +11023,7 @@ async function loadRoutesFromManifest(projectRoot) {
|
|
|
10980
11023
|
layoutMiddlewares.push([]);
|
|
10981
11024
|
}
|
|
10982
11025
|
}
|
|
10983
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(pageDir);
|
|
11026
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(pageDir, projectRoot);
|
|
10984
11027
|
pageRoutes.push({
|
|
10985
11028
|
pattern: entry.pattern,
|
|
10986
11029
|
regex,
|
|
@@ -11398,7 +11441,7 @@ var FilesystemRouteLoader = class {
|
|
|
11398
11441
|
if (hasFilesChanged(this.appDir, this.projectRoot, this.cache.fileStats) || this.cache.notFoundRoute === void 0) {
|
|
11399
11442
|
const files = getRelevantFiles(this.appDir, this.projectRoot);
|
|
11400
11443
|
const fileStats = buildFileStats(files);
|
|
11401
|
-
this.cache.notFoundRoute = await loadNotFoundRouteFromFilesystem(this.appDir);
|
|
11444
|
+
this.cache.notFoundRoute = await loadNotFoundRouteFromFilesystem(this.appDir, this.projectRoot);
|
|
11402
11445
|
this.cache.fileStats = fileStats;
|
|
11403
11446
|
this.cache.timestamp = Date.now();
|
|
11404
11447
|
}
|
|
@@ -11415,7 +11458,7 @@ var FilesystemRouteLoader = class {
|
|
|
11415
11458
|
if (hasFilesChanged(this.appDir, this.projectRoot, this.cache.fileStats) || this.cache.errorRoute === void 0) {
|
|
11416
11459
|
const files = getRelevantFiles(this.appDir, this.projectRoot);
|
|
11417
11460
|
const fileStats = buildFileStats(files);
|
|
11418
|
-
this.cache.errorRoute = await loadErrorRouteFromFilesystem(this.appDir);
|
|
11461
|
+
this.cache.errorRoute = await loadErrorRouteFromFilesystem(this.appDir, this.projectRoot);
|
|
11419
11462
|
this.cache.fileStats = fileStats;
|
|
11420
11463
|
this.cache.timestamp = Date.now();
|
|
11421
11464
|
}
|
|
@@ -11491,7 +11534,7 @@ var ManifestRouteLoader = class {
|
|
|
11491
11534
|
return chunks;
|
|
11492
11535
|
}
|
|
11493
11536
|
};
|
|
11494
|
-
async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
11537
|
+
async function loadNotFoundRouteFromFilesystem(appDir, projectRoot) {
|
|
11495
11538
|
const notFoundCandidates = [
|
|
11496
11539
|
import_path13.default.join(appDir, `${NOT_FOUND_FILE_PREFIX}.tsx`),
|
|
11497
11540
|
import_path13.default.join(appDir, `${NOT_FOUND_FILE_PREFIX}.ts`),
|
|
@@ -11515,7 +11558,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11515
11558
|
}
|
|
11516
11559
|
const { loadDefaultExport: loadDefaultExport2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
11517
11560
|
const component = await loadDefaultExport2(notFoundFile, {
|
|
11518
|
-
projectRoot
|
|
11561
|
+
projectRoot
|
|
11519
11562
|
});
|
|
11520
11563
|
if (!component) {
|
|
11521
11564
|
return null;
|
|
@@ -11528,7 +11571,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11528
11571
|
const layoutServerHooks = [];
|
|
11529
11572
|
const layoutMiddlewares = [];
|
|
11530
11573
|
for (const layoutFile of layoutFiles) {
|
|
11531
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
11574
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
11532
11575
|
if (layoutHookData) {
|
|
11533
11576
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
11534
11577
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -11537,7 +11580,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11537
11580
|
layoutMiddlewares.push([]);
|
|
11538
11581
|
}
|
|
11539
11582
|
}
|
|
11540
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(notFoundDir);
|
|
11583
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(notFoundDir, projectRoot);
|
|
11541
11584
|
return {
|
|
11542
11585
|
pattern: NOT_FOUND_PATTERN,
|
|
11543
11586
|
regex: new RegExp(`^${NOT_FOUND_PATTERN}/?$`),
|
|
@@ -11557,7 +11600,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11557
11600
|
generateStaticParams
|
|
11558
11601
|
};
|
|
11559
11602
|
}
|
|
11560
|
-
async function loadErrorRouteFromFilesystem(appDir) {
|
|
11603
|
+
async function loadErrorRouteFromFilesystem(appDir, projectRoot) {
|
|
11561
11604
|
const errorCandidates = [
|
|
11562
11605
|
import_path13.default.join(appDir, `${ERROR_FILE_PREFIX}.tsx`),
|
|
11563
11606
|
import_path13.default.join(appDir, `${ERROR_FILE_PREFIX}.ts`),
|
|
@@ -11576,7 +11619,7 @@ async function loadErrorRouteFromFilesystem(appDir) {
|
|
|
11576
11619
|
}
|
|
11577
11620
|
const { loadDefaultExport: loadDefaultExport2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
11578
11621
|
const component = await loadDefaultExport2(errorFile, {
|
|
11579
|
-
projectRoot
|
|
11622
|
+
projectRoot
|
|
11580
11623
|
});
|
|
11581
11624
|
if (!component) {
|
|
11582
11625
|
return null;
|
|
@@ -11588,7 +11631,7 @@ async function loadErrorRouteFromFilesystem(appDir) {
|
|
|
11588
11631
|
const layoutServerHooks = [];
|
|
11589
11632
|
const layoutMiddlewares = [];
|
|
11590
11633
|
for (const layoutFile of layoutFiles) {
|
|
11591
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
11634
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
11592
11635
|
if (layoutHookData) {
|
|
11593
11636
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
11594
11637
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -11597,7 +11640,7 @@ async function loadErrorRouteFromFilesystem(appDir) {
|
|
|
11597
11640
|
layoutMiddlewares.push([]);
|
|
11598
11641
|
}
|
|
11599
11642
|
}
|
|
11600
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(appDir);
|
|
11643
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(appDir, projectRoot);
|
|
11601
11644
|
return {
|
|
11602
11645
|
pattern: ERROR_PATTERN,
|
|
11603
11646
|
regex: new RegExp(`^${ERROR_PATTERN}/?$`),
|
|
@@ -18899,8 +18942,8 @@ async function buildApp(options = {}) {
|
|
|
18899
18942
|
const apiRoutes = await loadApiRoutes(appDir);
|
|
18900
18943
|
const wssRoutes = await loadWssRoutes(appDir);
|
|
18901
18944
|
const { outDir: serverOutDir } = await buildServerApp(projectRoot, appDir, config);
|
|
18902
|
-
const notFoundRoute = await loadNotFoundRouteFromFilesystem(appDir);
|
|
18903
|
-
const errorRoute = await loadErrorRouteFromFilesystem(appDir);
|
|
18945
|
+
const notFoundRoute = await loadNotFoundRouteFromFilesystem(appDir, projectRoot);
|
|
18946
|
+
const errorRoute = await loadErrorRouteFromFilesystem(appDir, projectRoot);
|
|
18904
18947
|
if (!notFoundRoute) {
|
|
18905
18948
|
console.warn(
|
|
18906
18949
|
`[framework][build] No not-found route found. Consider creating ${config.directories.app}/${config.conventions.notFound}.tsx`
|