@lolyjs/core 0.3.0-alpha.2 → 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 +60 -21
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.mjs +60 -21
- package/dist/cli.mjs.map +1 -1
- package/dist/index.cjs +60 -21
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +60 -21
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/cli.cjs
CHANGED
|
@@ -10069,7 +10069,7 @@ var NAMING = {
|
|
|
10069
10069
|
// Files
|
|
10070
10070
|
SERVER_HOOK: "server.hook"
|
|
10071
10071
|
};
|
|
10072
|
-
async function loadServerHookForDir(currentDir) {
|
|
10072
|
+
async function loadServerHookForDir(currentDir, projectRoot) {
|
|
10073
10073
|
const isDev = process.env.NODE_ENV === "development";
|
|
10074
10074
|
const isBuild = process.env.LOLY_BUILD === "1";
|
|
10075
10075
|
let file = null;
|
|
@@ -10095,10 +10095,24 @@ async function loadServerHookForDir(currentDir) {
|
|
|
10095
10095
|
generateStaticParams: null
|
|
10096
10096
|
};
|
|
10097
10097
|
}
|
|
10098
|
+
let resolvedProjectRoot = projectRoot;
|
|
10099
|
+
if (!resolvedProjectRoot) {
|
|
10100
|
+
let current = import_path3.default.resolve(currentDir);
|
|
10101
|
+
while (current !== import_path3.default.dirname(current)) {
|
|
10102
|
+
if (import_fs3.default.existsSync(import_path3.default.join(current, "package.json"))) {
|
|
10103
|
+
resolvedProjectRoot = current;
|
|
10104
|
+
break;
|
|
10105
|
+
}
|
|
10106
|
+
current = import_path3.default.dirname(current);
|
|
10107
|
+
}
|
|
10108
|
+
if (!resolvedProjectRoot) {
|
|
10109
|
+
resolvedProjectRoot = currentDir;
|
|
10110
|
+
}
|
|
10111
|
+
}
|
|
10098
10112
|
let mod;
|
|
10099
10113
|
try {
|
|
10100
10114
|
const { loadModule: loadModule2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
10101
|
-
mod = await loadModule2(file, { projectRoot:
|
|
10115
|
+
mod = await loadModule2(file, { projectRoot: resolvedProjectRoot });
|
|
10102
10116
|
} catch (error) {
|
|
10103
10117
|
console.error(
|
|
10104
10118
|
`[framework][server-hook] Error loading server hook from ${file}:`,
|
|
@@ -10141,7 +10155,7 @@ async function loadServerHookForDir(currentDir) {
|
|
|
10141
10155
|
generateStaticParams
|
|
10142
10156
|
};
|
|
10143
10157
|
}
|
|
10144
|
-
async function loadLayoutServerHook(layoutFile) {
|
|
10158
|
+
async function loadLayoutServerHook(layoutFile, projectRoot) {
|
|
10145
10159
|
const layoutDir = import_path3.default.dirname(layoutFile);
|
|
10146
10160
|
const layoutExt = import_path3.default.extname(layoutFile);
|
|
10147
10161
|
const layoutBasename = import_path3.default.basename(layoutFile, layoutExt);
|
|
@@ -10167,7 +10181,20 @@ async function loadLayoutServerHook(layoutFile) {
|
|
|
10167
10181
|
}
|
|
10168
10182
|
try {
|
|
10169
10183
|
const { loadModule: loadModule2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
10170
|
-
|
|
10184
|
+
if (!projectRoot) {
|
|
10185
|
+
let current = import_path3.default.dirname(layoutFile);
|
|
10186
|
+
while (current !== import_path3.default.dirname(current)) {
|
|
10187
|
+
if (import_fs3.default.existsSync(import_path3.default.join(current, "package.json"))) {
|
|
10188
|
+
projectRoot = current;
|
|
10189
|
+
break;
|
|
10190
|
+
}
|
|
10191
|
+
current = import_path3.default.dirname(current);
|
|
10192
|
+
}
|
|
10193
|
+
if (!projectRoot) {
|
|
10194
|
+
projectRoot = import_path3.default.dirname(layoutFile);
|
|
10195
|
+
}
|
|
10196
|
+
}
|
|
10197
|
+
const mod = await loadModule2(file, { projectRoot });
|
|
10171
10198
|
const serverHook = typeof mod?.getServerSideProps === "function" ? mod.getServerSideProps : null;
|
|
10172
10199
|
let middlewares = [];
|
|
10173
10200
|
const rawMiddlewares = mod?.[NAMING.BEFORE_MIDDLEWARES];
|
|
@@ -10255,6 +10282,15 @@ async function loadRoutes(appDir) {
|
|
|
10255
10282
|
if (!import_fs4.default.existsSync(appDir)) {
|
|
10256
10283
|
return [];
|
|
10257
10284
|
}
|
|
10285
|
+
let projectRoot = appDir;
|
|
10286
|
+
let current = import_path4.default.resolve(appDir);
|
|
10287
|
+
while (current !== import_path4.default.dirname(current)) {
|
|
10288
|
+
if (import_fs4.default.existsSync(import_path4.default.join(current, "package.json"))) {
|
|
10289
|
+
projectRoot = current;
|
|
10290
|
+
break;
|
|
10291
|
+
}
|
|
10292
|
+
current = import_path4.default.dirname(current);
|
|
10293
|
+
}
|
|
10258
10294
|
const routes = [];
|
|
10259
10295
|
async function walk(currentDir) {
|
|
10260
10296
|
const entries = import_fs4.default.readdirSync(currentDir, { withFileTypes: true });
|
|
@@ -10273,7 +10309,7 @@ async function loadRoutes(appDir) {
|
|
|
10273
10309
|
const { regex, paramNames } = buildRegexFromRoutePath(routePath);
|
|
10274
10310
|
const { loadDefaultExport: loadDefaultExport2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
10275
10311
|
const component = await loadDefaultExport2(fullPath, {
|
|
10276
|
-
projectRoot
|
|
10312
|
+
projectRoot
|
|
10277
10313
|
});
|
|
10278
10314
|
if (!component) {
|
|
10279
10315
|
continue;
|
|
@@ -10285,7 +10321,7 @@ async function loadRoutes(appDir) {
|
|
|
10285
10321
|
const layoutServerHooks = [];
|
|
10286
10322
|
const layoutMiddlewares = [];
|
|
10287
10323
|
for (const layoutFile of layoutFiles) {
|
|
10288
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
10324
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
10289
10325
|
if (layoutHookData) {
|
|
10290
10326
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
10291
10327
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -10294,7 +10330,7 @@ async function loadRoutes(appDir) {
|
|
|
10294
10330
|
layoutMiddlewares.push([]);
|
|
10295
10331
|
}
|
|
10296
10332
|
}
|
|
10297
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(currentDir);
|
|
10333
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(currentDir, projectRoot);
|
|
10298
10334
|
routes.push({
|
|
10299
10335
|
pattern: routePath,
|
|
10300
10336
|
regex,
|
|
@@ -10890,7 +10926,7 @@ async function loadRoutesFromManifest(projectRoot) {
|
|
|
10890
10926
|
const layoutServerHooks = [];
|
|
10891
10927
|
const layoutMiddlewares = [];
|
|
10892
10928
|
for (const layoutFile of layoutFiles) {
|
|
10893
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
10929
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
10894
10930
|
if (layoutHookData) {
|
|
10895
10931
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
10896
10932
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -10899,7 +10935,7 @@ async function loadRoutesFromManifest(projectRoot) {
|
|
|
10899
10935
|
layoutMiddlewares.push([]);
|
|
10900
10936
|
}
|
|
10901
10937
|
}
|
|
10902
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(pageDir);
|
|
10938
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(pageDir, projectRoot);
|
|
10903
10939
|
pageRoutes.push({
|
|
10904
10940
|
pattern: entry.pattern,
|
|
10905
10941
|
regex,
|
|
@@ -11317,7 +11353,7 @@ var FilesystemRouteLoader = class {
|
|
|
11317
11353
|
if (hasFilesChanged(this.appDir, this.projectRoot, this.cache.fileStats) || this.cache.notFoundRoute === void 0) {
|
|
11318
11354
|
const files = getRelevantFiles(this.appDir, this.projectRoot);
|
|
11319
11355
|
const fileStats = buildFileStats(files);
|
|
11320
|
-
this.cache.notFoundRoute = await loadNotFoundRouteFromFilesystem(this.appDir);
|
|
11356
|
+
this.cache.notFoundRoute = await loadNotFoundRouteFromFilesystem(this.appDir, this.projectRoot);
|
|
11321
11357
|
this.cache.fileStats = fileStats;
|
|
11322
11358
|
this.cache.timestamp = Date.now();
|
|
11323
11359
|
}
|
|
@@ -11334,7 +11370,7 @@ var FilesystemRouteLoader = class {
|
|
|
11334
11370
|
if (hasFilesChanged(this.appDir, this.projectRoot, this.cache.fileStats) || this.cache.errorRoute === void 0) {
|
|
11335
11371
|
const files = getRelevantFiles(this.appDir, this.projectRoot);
|
|
11336
11372
|
const fileStats = buildFileStats(files);
|
|
11337
|
-
this.cache.errorRoute = await loadErrorRouteFromFilesystem(this.appDir);
|
|
11373
|
+
this.cache.errorRoute = await loadErrorRouteFromFilesystem(this.appDir, this.projectRoot);
|
|
11338
11374
|
this.cache.fileStats = fileStats;
|
|
11339
11375
|
this.cache.timestamp = Date.now();
|
|
11340
11376
|
}
|
|
@@ -11410,7 +11446,7 @@ var ManifestRouteLoader = class {
|
|
|
11410
11446
|
return chunks;
|
|
11411
11447
|
}
|
|
11412
11448
|
};
|
|
11413
|
-
async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
11449
|
+
async function loadNotFoundRouteFromFilesystem(appDir, projectRoot) {
|
|
11414
11450
|
const notFoundCandidates = [
|
|
11415
11451
|
import_path12.default.join(appDir, `${NOT_FOUND_FILE_PREFIX}.tsx`),
|
|
11416
11452
|
import_path12.default.join(appDir, `${NOT_FOUND_FILE_PREFIX}.ts`),
|
|
@@ -11434,7 +11470,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11434
11470
|
}
|
|
11435
11471
|
const { loadDefaultExport: loadDefaultExport2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
11436
11472
|
const component = await loadDefaultExport2(notFoundFile, {
|
|
11437
|
-
projectRoot
|
|
11473
|
+
projectRoot
|
|
11438
11474
|
});
|
|
11439
11475
|
if (!component) {
|
|
11440
11476
|
return null;
|
|
@@ -11447,7 +11483,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11447
11483
|
const layoutServerHooks = [];
|
|
11448
11484
|
const layoutMiddlewares = [];
|
|
11449
11485
|
for (const layoutFile of layoutFiles) {
|
|
11450
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
11486
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
11451
11487
|
if (layoutHookData) {
|
|
11452
11488
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
11453
11489
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -11456,7 +11492,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11456
11492
|
layoutMiddlewares.push([]);
|
|
11457
11493
|
}
|
|
11458
11494
|
}
|
|
11459
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(notFoundDir);
|
|
11495
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(notFoundDir, projectRoot);
|
|
11460
11496
|
return {
|
|
11461
11497
|
pattern: NOT_FOUND_PATTERN,
|
|
11462
11498
|
regex: new RegExp(`^${NOT_FOUND_PATTERN}/?$`),
|
|
@@ -11476,7 +11512,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11476
11512
|
generateStaticParams
|
|
11477
11513
|
};
|
|
11478
11514
|
}
|
|
11479
|
-
async function loadErrorRouteFromFilesystem(appDir) {
|
|
11515
|
+
async function loadErrorRouteFromFilesystem(appDir, projectRoot) {
|
|
11480
11516
|
const errorCandidates = [
|
|
11481
11517
|
import_path12.default.join(appDir, `${ERROR_FILE_PREFIX}.tsx`),
|
|
11482
11518
|
import_path12.default.join(appDir, `${ERROR_FILE_PREFIX}.ts`),
|
|
@@ -11495,7 +11531,7 @@ async function loadErrorRouteFromFilesystem(appDir) {
|
|
|
11495
11531
|
}
|
|
11496
11532
|
const { loadDefaultExport: loadDefaultExport2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
11497
11533
|
const component = await loadDefaultExport2(errorFile, {
|
|
11498
|
-
projectRoot
|
|
11534
|
+
projectRoot
|
|
11499
11535
|
});
|
|
11500
11536
|
if (!component) {
|
|
11501
11537
|
return null;
|
|
@@ -11507,7 +11543,7 @@ async function loadErrorRouteFromFilesystem(appDir) {
|
|
|
11507
11543
|
const layoutServerHooks = [];
|
|
11508
11544
|
const layoutMiddlewares = [];
|
|
11509
11545
|
for (const layoutFile of layoutFiles) {
|
|
11510
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
11546
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
11511
11547
|
if (layoutHookData) {
|
|
11512
11548
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
11513
11549
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -11516,7 +11552,7 @@ async function loadErrorRouteFromFilesystem(appDir) {
|
|
|
11516
11552
|
layoutMiddlewares.push([]);
|
|
11517
11553
|
}
|
|
11518
11554
|
}
|
|
11519
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(appDir);
|
|
11555
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(appDir, projectRoot);
|
|
11520
11556
|
return {
|
|
11521
11557
|
pattern: ERROR_PATTERN,
|
|
11522
11558
|
regex: new RegExp(`^${ERROR_PATTERN}/?$`),
|
|
@@ -14532,6 +14568,9 @@ var INIT_FILE_NAME = "init.server";
|
|
|
14532
14568
|
async function runInitIfExists(projectRoot, serverData) {
|
|
14533
14569
|
try {
|
|
14534
14570
|
let mod = await getServerFile(projectRoot, INIT_FILE_NAME);
|
|
14571
|
+
if (!mod) {
|
|
14572
|
+
return {};
|
|
14573
|
+
}
|
|
14535
14574
|
if (typeof mod?.init === "function") {
|
|
14536
14575
|
const serverContext = { ...serverData };
|
|
14537
14576
|
await mod.init({ serverContext });
|
|
@@ -15279,8 +15318,8 @@ async function buildApp(options = {}) {
|
|
|
15279
15318
|
const apiRoutes = await loadApiRoutes(appDir);
|
|
15280
15319
|
const wssRoutes = await loadWssRoutes(appDir);
|
|
15281
15320
|
const { outDir: serverOutDir } = await buildServerApp(projectRoot, appDir, config);
|
|
15282
|
-
const notFoundRoute = await loadNotFoundRouteFromFilesystem(appDir);
|
|
15283
|
-
const errorRoute = await loadErrorRouteFromFilesystem(appDir);
|
|
15321
|
+
const notFoundRoute = await loadNotFoundRouteFromFilesystem(appDir, projectRoot);
|
|
15322
|
+
const errorRoute = await loadErrorRouteFromFilesystem(appDir, projectRoot);
|
|
15284
15323
|
if (!notFoundRoute) {
|
|
15285
15324
|
console.warn(
|
|
15286
15325
|
`[framework][build] No not-found route found. Consider creating ${config.directories.app}/${config.conventions.notFound}.tsx`
|