@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.mjs
CHANGED
|
@@ -9991,11 +9991,18 @@ var getServerFile = async (projectRoot, fileName) => {
|
|
|
9991
9991
|
// modules/server/init.ts
|
|
9992
9992
|
var INIT_FILE_NAME = "init.server";
|
|
9993
9993
|
async function runInitIfExists(projectRoot, serverData) {
|
|
9994
|
-
|
|
9995
|
-
|
|
9996
|
-
|
|
9997
|
-
|
|
9998
|
-
|
|
9994
|
+
try {
|
|
9995
|
+
let mod = await getServerFile(projectRoot, INIT_FILE_NAME);
|
|
9996
|
+
if (!mod) {
|
|
9997
|
+
return {};
|
|
9998
|
+
}
|
|
9999
|
+
if (typeof mod?.init === "function") {
|
|
10000
|
+
const serverContext = { ...serverData };
|
|
10001
|
+
await mod.init({ serverContext });
|
|
10002
|
+
return serverContext;
|
|
10003
|
+
}
|
|
10004
|
+
} catch (error) {
|
|
10005
|
+
console.error(`[Init] Failed to load or execute ${INIT_FILE_NAME}.ts:`, error);
|
|
9999
10006
|
}
|
|
10000
10007
|
return {};
|
|
10001
10008
|
}
|
|
@@ -10114,7 +10121,7 @@ var NAMING = {
|
|
|
10114
10121
|
// Files
|
|
10115
10122
|
SERVER_HOOK: "server.hook"
|
|
10116
10123
|
};
|
|
10117
|
-
async function loadServerHookForDir(currentDir) {
|
|
10124
|
+
async function loadServerHookForDir(currentDir, projectRoot) {
|
|
10118
10125
|
const isDev = process.env.NODE_ENV === "development";
|
|
10119
10126
|
const isBuild = process.env.LOLY_BUILD === "1";
|
|
10120
10127
|
let file = null;
|
|
@@ -10140,10 +10147,24 @@ async function loadServerHookForDir(currentDir) {
|
|
|
10140
10147
|
generateStaticParams: null
|
|
10141
10148
|
};
|
|
10142
10149
|
}
|
|
10150
|
+
let resolvedProjectRoot = projectRoot;
|
|
10151
|
+
if (!resolvedProjectRoot) {
|
|
10152
|
+
let current = path4.resolve(currentDir);
|
|
10153
|
+
while (current !== path4.dirname(current)) {
|
|
10154
|
+
if (fs4.existsSync(path4.join(current, "package.json"))) {
|
|
10155
|
+
resolvedProjectRoot = current;
|
|
10156
|
+
break;
|
|
10157
|
+
}
|
|
10158
|
+
current = path4.dirname(current);
|
|
10159
|
+
}
|
|
10160
|
+
if (!resolvedProjectRoot) {
|
|
10161
|
+
resolvedProjectRoot = currentDir;
|
|
10162
|
+
}
|
|
10163
|
+
}
|
|
10143
10164
|
let mod;
|
|
10144
10165
|
try {
|
|
10145
10166
|
const { loadModule: loadModule2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
10146
|
-
mod = await loadModule2(file, { projectRoot:
|
|
10167
|
+
mod = await loadModule2(file, { projectRoot: resolvedProjectRoot });
|
|
10147
10168
|
} catch (error) {
|
|
10148
10169
|
console.error(
|
|
10149
10170
|
`[framework][server-hook] Error loading server hook from ${file}:`,
|
|
@@ -10186,7 +10207,7 @@ async function loadServerHookForDir(currentDir) {
|
|
|
10186
10207
|
generateStaticParams
|
|
10187
10208
|
};
|
|
10188
10209
|
}
|
|
10189
|
-
async function loadLayoutServerHook(layoutFile) {
|
|
10210
|
+
async function loadLayoutServerHook(layoutFile, projectRoot) {
|
|
10190
10211
|
const layoutDir = path4.dirname(layoutFile);
|
|
10191
10212
|
const layoutExt = path4.extname(layoutFile);
|
|
10192
10213
|
const layoutBasename = path4.basename(layoutFile, layoutExt);
|
|
@@ -10212,7 +10233,20 @@ async function loadLayoutServerHook(layoutFile) {
|
|
|
10212
10233
|
}
|
|
10213
10234
|
try {
|
|
10214
10235
|
const { loadModule: loadModule2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
10215
|
-
|
|
10236
|
+
if (!projectRoot) {
|
|
10237
|
+
let current = path4.dirname(layoutFile);
|
|
10238
|
+
while (current !== path4.dirname(current)) {
|
|
10239
|
+
if (fs4.existsSync(path4.join(current, "package.json"))) {
|
|
10240
|
+
projectRoot = current;
|
|
10241
|
+
break;
|
|
10242
|
+
}
|
|
10243
|
+
current = path4.dirname(current);
|
|
10244
|
+
}
|
|
10245
|
+
if (!projectRoot) {
|
|
10246
|
+
projectRoot = path4.dirname(layoutFile);
|
|
10247
|
+
}
|
|
10248
|
+
}
|
|
10249
|
+
const mod = await loadModule2(file, { projectRoot });
|
|
10216
10250
|
const serverHook = typeof mod?.getServerSideProps === "function" ? mod.getServerSideProps : null;
|
|
10217
10251
|
let middlewares = [];
|
|
10218
10252
|
const rawMiddlewares = mod?.[NAMING.BEFORE_MIDDLEWARES];
|
|
@@ -10300,6 +10334,15 @@ async function loadRoutes(appDir) {
|
|
|
10300
10334
|
if (!fs5.existsSync(appDir)) {
|
|
10301
10335
|
return [];
|
|
10302
10336
|
}
|
|
10337
|
+
let projectRoot = appDir;
|
|
10338
|
+
let current = path5.resolve(appDir);
|
|
10339
|
+
while (current !== path5.dirname(current)) {
|
|
10340
|
+
if (fs5.existsSync(path5.join(current, "package.json"))) {
|
|
10341
|
+
projectRoot = current;
|
|
10342
|
+
break;
|
|
10343
|
+
}
|
|
10344
|
+
current = path5.dirname(current);
|
|
10345
|
+
}
|
|
10303
10346
|
const routes = [];
|
|
10304
10347
|
async function walk(currentDir) {
|
|
10305
10348
|
const entries = fs5.readdirSync(currentDir, { withFileTypes: true });
|
|
@@ -10318,7 +10361,7 @@ async function loadRoutes(appDir) {
|
|
|
10318
10361
|
const { regex, paramNames } = buildRegexFromRoutePath(routePath);
|
|
10319
10362
|
const { loadDefaultExport: loadDefaultExport2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
10320
10363
|
const component = await loadDefaultExport2(fullPath, {
|
|
10321
|
-
projectRoot
|
|
10364
|
+
projectRoot
|
|
10322
10365
|
});
|
|
10323
10366
|
if (!component) {
|
|
10324
10367
|
continue;
|
|
@@ -10330,7 +10373,7 @@ async function loadRoutes(appDir) {
|
|
|
10330
10373
|
const layoutServerHooks = [];
|
|
10331
10374
|
const layoutMiddlewares = [];
|
|
10332
10375
|
for (const layoutFile of layoutFiles) {
|
|
10333
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
10376
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
10334
10377
|
if (layoutHookData) {
|
|
10335
10378
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
10336
10379
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -10339,7 +10382,7 @@ async function loadRoutes(appDir) {
|
|
|
10339
10382
|
layoutMiddlewares.push([]);
|
|
10340
10383
|
}
|
|
10341
10384
|
}
|
|
10342
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(currentDir);
|
|
10385
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(currentDir, projectRoot);
|
|
10343
10386
|
routes.push({
|
|
10344
10387
|
pattern: routePath,
|
|
10345
10388
|
regex,
|
|
@@ -10935,7 +10978,7 @@ async function loadRoutesFromManifest(projectRoot) {
|
|
|
10935
10978
|
const layoutServerHooks = [];
|
|
10936
10979
|
const layoutMiddlewares = [];
|
|
10937
10980
|
for (const layoutFile of layoutFiles) {
|
|
10938
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
10981
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
10939
10982
|
if (layoutHookData) {
|
|
10940
10983
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
10941
10984
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -10944,7 +10987,7 @@ async function loadRoutesFromManifest(projectRoot) {
|
|
|
10944
10987
|
layoutMiddlewares.push([]);
|
|
10945
10988
|
}
|
|
10946
10989
|
}
|
|
10947
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(pageDir);
|
|
10990
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(pageDir, projectRoot);
|
|
10948
10991
|
pageRoutes.push({
|
|
10949
10992
|
pattern: entry.pattern,
|
|
10950
10993
|
regex,
|
|
@@ -11362,7 +11405,7 @@ var FilesystemRouteLoader = class {
|
|
|
11362
11405
|
if (hasFilesChanged(this.appDir, this.projectRoot, this.cache.fileStats) || this.cache.notFoundRoute === void 0) {
|
|
11363
11406
|
const files = getRelevantFiles(this.appDir, this.projectRoot);
|
|
11364
11407
|
const fileStats = buildFileStats(files);
|
|
11365
|
-
this.cache.notFoundRoute = await loadNotFoundRouteFromFilesystem(this.appDir);
|
|
11408
|
+
this.cache.notFoundRoute = await loadNotFoundRouteFromFilesystem(this.appDir, this.projectRoot);
|
|
11366
11409
|
this.cache.fileStats = fileStats;
|
|
11367
11410
|
this.cache.timestamp = Date.now();
|
|
11368
11411
|
}
|
|
@@ -11379,7 +11422,7 @@ var FilesystemRouteLoader = class {
|
|
|
11379
11422
|
if (hasFilesChanged(this.appDir, this.projectRoot, this.cache.fileStats) || this.cache.errorRoute === void 0) {
|
|
11380
11423
|
const files = getRelevantFiles(this.appDir, this.projectRoot);
|
|
11381
11424
|
const fileStats = buildFileStats(files);
|
|
11382
|
-
this.cache.errorRoute = await loadErrorRouteFromFilesystem(this.appDir);
|
|
11425
|
+
this.cache.errorRoute = await loadErrorRouteFromFilesystem(this.appDir, this.projectRoot);
|
|
11383
11426
|
this.cache.fileStats = fileStats;
|
|
11384
11427
|
this.cache.timestamp = Date.now();
|
|
11385
11428
|
}
|
|
@@ -11455,7 +11498,7 @@ var ManifestRouteLoader = class {
|
|
|
11455
11498
|
return chunks;
|
|
11456
11499
|
}
|
|
11457
11500
|
};
|
|
11458
|
-
async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
11501
|
+
async function loadNotFoundRouteFromFilesystem(appDir, projectRoot) {
|
|
11459
11502
|
const notFoundCandidates = [
|
|
11460
11503
|
path11.join(appDir, `${NOT_FOUND_FILE_PREFIX}.tsx`),
|
|
11461
11504
|
path11.join(appDir, `${NOT_FOUND_FILE_PREFIX}.ts`),
|
|
@@ -11479,7 +11522,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11479
11522
|
}
|
|
11480
11523
|
const { loadDefaultExport: loadDefaultExport2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
11481
11524
|
const component = await loadDefaultExport2(notFoundFile, {
|
|
11482
|
-
projectRoot
|
|
11525
|
+
projectRoot
|
|
11483
11526
|
});
|
|
11484
11527
|
if (!component) {
|
|
11485
11528
|
return null;
|
|
@@ -11492,7 +11535,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11492
11535
|
const layoutServerHooks = [];
|
|
11493
11536
|
const layoutMiddlewares = [];
|
|
11494
11537
|
for (const layoutFile of layoutFiles) {
|
|
11495
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
11538
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
11496
11539
|
if (layoutHookData) {
|
|
11497
11540
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
11498
11541
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -11501,7 +11544,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11501
11544
|
layoutMiddlewares.push([]);
|
|
11502
11545
|
}
|
|
11503
11546
|
}
|
|
11504
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(notFoundDir);
|
|
11547
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(notFoundDir, projectRoot);
|
|
11505
11548
|
return {
|
|
11506
11549
|
pattern: NOT_FOUND_PATTERN,
|
|
11507
11550
|
regex: new RegExp(`^${NOT_FOUND_PATTERN}/?$`),
|
|
@@ -11521,7 +11564,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11521
11564
|
generateStaticParams
|
|
11522
11565
|
};
|
|
11523
11566
|
}
|
|
11524
|
-
async function loadErrorRouteFromFilesystem(appDir) {
|
|
11567
|
+
async function loadErrorRouteFromFilesystem(appDir, projectRoot) {
|
|
11525
11568
|
const errorCandidates = [
|
|
11526
11569
|
path11.join(appDir, `${ERROR_FILE_PREFIX}.tsx`),
|
|
11527
11570
|
path11.join(appDir, `${ERROR_FILE_PREFIX}.ts`),
|
|
@@ -11540,7 +11583,7 @@ async function loadErrorRouteFromFilesystem(appDir) {
|
|
|
11540
11583
|
}
|
|
11541
11584
|
const { loadDefaultExport: loadDefaultExport2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
11542
11585
|
const component = await loadDefaultExport2(errorFile, {
|
|
11543
|
-
projectRoot
|
|
11586
|
+
projectRoot
|
|
11544
11587
|
});
|
|
11545
11588
|
if (!component) {
|
|
11546
11589
|
return null;
|
|
@@ -11552,7 +11595,7 @@ async function loadErrorRouteFromFilesystem(appDir) {
|
|
|
11552
11595
|
const layoutServerHooks = [];
|
|
11553
11596
|
const layoutMiddlewares = [];
|
|
11554
11597
|
for (const layoutFile of layoutFiles) {
|
|
11555
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
11598
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
11556
11599
|
if (layoutHookData) {
|
|
11557
11600
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
11558
11601
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -11561,7 +11604,7 @@ async function loadErrorRouteFromFilesystem(appDir) {
|
|
|
11561
11604
|
layoutMiddlewares.push([]);
|
|
11562
11605
|
}
|
|
11563
11606
|
}
|
|
11564
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(appDir);
|
|
11607
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(appDir, projectRoot);
|
|
11565
11608
|
return {
|
|
11566
11609
|
pattern: ERROR_PATTERN,
|
|
11567
11610
|
regex: new RegExp(`^${ERROR_PATTERN}/?$`),
|
|
@@ -18863,8 +18906,8 @@ async function buildApp(options = {}) {
|
|
|
18863
18906
|
const apiRoutes = await loadApiRoutes(appDir);
|
|
18864
18907
|
const wssRoutes = await loadWssRoutes(appDir);
|
|
18865
18908
|
const { outDir: serverOutDir } = await buildServerApp(projectRoot, appDir, config);
|
|
18866
|
-
const notFoundRoute = await loadNotFoundRouteFromFilesystem(appDir);
|
|
18867
|
-
const errorRoute = await loadErrorRouteFromFilesystem(appDir);
|
|
18909
|
+
const notFoundRoute = await loadNotFoundRouteFromFilesystem(appDir, projectRoot);
|
|
18910
|
+
const errorRoute = await loadErrorRouteFromFilesystem(appDir, projectRoot);
|
|
18868
18911
|
if (!notFoundRoute) {
|
|
18869
18912
|
console.warn(
|
|
18870
18913
|
`[framework][build] No not-found route found. Consider creating ${config.directories.app}/${config.conventions.notFound}.tsx`
|