@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/index.cjs
CHANGED
|
@@ -10029,6 +10029,9 @@ var INIT_FILE_NAME = "init.server";
|
|
|
10029
10029
|
async function runInitIfExists(projectRoot, serverData) {
|
|
10030
10030
|
try {
|
|
10031
10031
|
let mod = await getServerFile(projectRoot, INIT_FILE_NAME);
|
|
10032
|
+
if (!mod) {
|
|
10033
|
+
return {};
|
|
10034
|
+
}
|
|
10032
10035
|
if (typeof mod?.init === "function") {
|
|
10033
10036
|
const serverContext = { ...serverData };
|
|
10034
10037
|
await mod.init({ serverContext });
|
|
@@ -10154,7 +10157,7 @@ var NAMING = {
|
|
|
10154
10157
|
// Files
|
|
10155
10158
|
SERVER_HOOK: "server.hook"
|
|
10156
10159
|
};
|
|
10157
|
-
async function loadServerHookForDir(currentDir) {
|
|
10160
|
+
async function loadServerHookForDir(currentDir, projectRoot) {
|
|
10158
10161
|
const isDev = process.env.NODE_ENV === "development";
|
|
10159
10162
|
const isBuild = process.env.LOLY_BUILD === "1";
|
|
10160
10163
|
let file = null;
|
|
@@ -10180,10 +10183,24 @@ async function loadServerHookForDir(currentDir) {
|
|
|
10180
10183
|
generateStaticParams: null
|
|
10181
10184
|
};
|
|
10182
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
|
+
}
|
|
10183
10200
|
let mod;
|
|
10184
10201
|
try {
|
|
10185
10202
|
const { loadModule: loadModule2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
10186
|
-
mod = await loadModule2(file, { projectRoot:
|
|
10203
|
+
mod = await loadModule2(file, { projectRoot: resolvedProjectRoot });
|
|
10187
10204
|
} catch (error) {
|
|
10188
10205
|
console.error(
|
|
10189
10206
|
`[framework][server-hook] Error loading server hook from ${file}:`,
|
|
@@ -10226,7 +10243,7 @@ async function loadServerHookForDir(currentDir) {
|
|
|
10226
10243
|
generateStaticParams
|
|
10227
10244
|
};
|
|
10228
10245
|
}
|
|
10229
|
-
async function loadLayoutServerHook(layoutFile) {
|
|
10246
|
+
async function loadLayoutServerHook(layoutFile, projectRoot) {
|
|
10230
10247
|
const layoutDir = import_path4.default.dirname(layoutFile);
|
|
10231
10248
|
const layoutExt = import_path4.default.extname(layoutFile);
|
|
10232
10249
|
const layoutBasename = import_path4.default.basename(layoutFile, layoutExt);
|
|
@@ -10252,7 +10269,20 @@ async function loadLayoutServerHook(layoutFile) {
|
|
|
10252
10269
|
}
|
|
10253
10270
|
try {
|
|
10254
10271
|
const { loadModule: loadModule2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
10255
|
-
|
|
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 });
|
|
10256
10286
|
const serverHook = typeof mod?.getServerSideProps === "function" ? mod.getServerSideProps : null;
|
|
10257
10287
|
let middlewares = [];
|
|
10258
10288
|
const rawMiddlewares = mod?.[NAMING.BEFORE_MIDDLEWARES];
|
|
@@ -10340,6 +10370,15 @@ async function loadRoutes(appDir) {
|
|
|
10340
10370
|
if (!import_fs5.default.existsSync(appDir)) {
|
|
10341
10371
|
return [];
|
|
10342
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
|
+
}
|
|
10343
10382
|
const routes = [];
|
|
10344
10383
|
async function walk(currentDir) {
|
|
10345
10384
|
const entries = import_fs5.default.readdirSync(currentDir, { withFileTypes: true });
|
|
@@ -10358,7 +10397,7 @@ async function loadRoutes(appDir) {
|
|
|
10358
10397
|
const { regex, paramNames } = buildRegexFromRoutePath(routePath);
|
|
10359
10398
|
const { loadDefaultExport: loadDefaultExport2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
10360
10399
|
const component = await loadDefaultExport2(fullPath, {
|
|
10361
|
-
projectRoot
|
|
10400
|
+
projectRoot
|
|
10362
10401
|
});
|
|
10363
10402
|
if (!component) {
|
|
10364
10403
|
continue;
|
|
@@ -10370,7 +10409,7 @@ async function loadRoutes(appDir) {
|
|
|
10370
10409
|
const layoutServerHooks = [];
|
|
10371
10410
|
const layoutMiddlewares = [];
|
|
10372
10411
|
for (const layoutFile of layoutFiles) {
|
|
10373
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
10412
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
10374
10413
|
if (layoutHookData) {
|
|
10375
10414
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
10376
10415
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -10379,7 +10418,7 @@ async function loadRoutes(appDir) {
|
|
|
10379
10418
|
layoutMiddlewares.push([]);
|
|
10380
10419
|
}
|
|
10381
10420
|
}
|
|
10382
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(currentDir);
|
|
10421
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(currentDir, projectRoot);
|
|
10383
10422
|
routes.push({
|
|
10384
10423
|
pattern: routePath,
|
|
10385
10424
|
regex,
|
|
@@ -10975,7 +11014,7 @@ async function loadRoutesFromManifest(projectRoot) {
|
|
|
10975
11014
|
const layoutServerHooks = [];
|
|
10976
11015
|
const layoutMiddlewares = [];
|
|
10977
11016
|
for (const layoutFile of layoutFiles) {
|
|
10978
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
11017
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
10979
11018
|
if (layoutHookData) {
|
|
10980
11019
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
10981
11020
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -10984,7 +11023,7 @@ async function loadRoutesFromManifest(projectRoot) {
|
|
|
10984
11023
|
layoutMiddlewares.push([]);
|
|
10985
11024
|
}
|
|
10986
11025
|
}
|
|
10987
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(pageDir);
|
|
11026
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(pageDir, projectRoot);
|
|
10988
11027
|
pageRoutes.push({
|
|
10989
11028
|
pattern: entry.pattern,
|
|
10990
11029
|
regex,
|
|
@@ -11402,7 +11441,7 @@ var FilesystemRouteLoader = class {
|
|
|
11402
11441
|
if (hasFilesChanged(this.appDir, this.projectRoot, this.cache.fileStats) || this.cache.notFoundRoute === void 0) {
|
|
11403
11442
|
const files = getRelevantFiles(this.appDir, this.projectRoot);
|
|
11404
11443
|
const fileStats = buildFileStats(files);
|
|
11405
|
-
this.cache.notFoundRoute = await loadNotFoundRouteFromFilesystem(this.appDir);
|
|
11444
|
+
this.cache.notFoundRoute = await loadNotFoundRouteFromFilesystem(this.appDir, this.projectRoot);
|
|
11406
11445
|
this.cache.fileStats = fileStats;
|
|
11407
11446
|
this.cache.timestamp = Date.now();
|
|
11408
11447
|
}
|
|
@@ -11419,7 +11458,7 @@ var FilesystemRouteLoader = class {
|
|
|
11419
11458
|
if (hasFilesChanged(this.appDir, this.projectRoot, this.cache.fileStats) || this.cache.errorRoute === void 0) {
|
|
11420
11459
|
const files = getRelevantFiles(this.appDir, this.projectRoot);
|
|
11421
11460
|
const fileStats = buildFileStats(files);
|
|
11422
|
-
this.cache.errorRoute = await loadErrorRouteFromFilesystem(this.appDir);
|
|
11461
|
+
this.cache.errorRoute = await loadErrorRouteFromFilesystem(this.appDir, this.projectRoot);
|
|
11423
11462
|
this.cache.fileStats = fileStats;
|
|
11424
11463
|
this.cache.timestamp = Date.now();
|
|
11425
11464
|
}
|
|
@@ -11495,7 +11534,7 @@ var ManifestRouteLoader = class {
|
|
|
11495
11534
|
return chunks;
|
|
11496
11535
|
}
|
|
11497
11536
|
};
|
|
11498
|
-
async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
11537
|
+
async function loadNotFoundRouteFromFilesystem(appDir, projectRoot) {
|
|
11499
11538
|
const notFoundCandidates = [
|
|
11500
11539
|
import_path13.default.join(appDir, `${NOT_FOUND_FILE_PREFIX}.tsx`),
|
|
11501
11540
|
import_path13.default.join(appDir, `${NOT_FOUND_FILE_PREFIX}.ts`),
|
|
@@ -11519,7 +11558,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11519
11558
|
}
|
|
11520
11559
|
const { loadDefaultExport: loadDefaultExport2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
11521
11560
|
const component = await loadDefaultExport2(notFoundFile, {
|
|
11522
|
-
projectRoot
|
|
11561
|
+
projectRoot
|
|
11523
11562
|
});
|
|
11524
11563
|
if (!component) {
|
|
11525
11564
|
return null;
|
|
@@ -11532,7 +11571,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11532
11571
|
const layoutServerHooks = [];
|
|
11533
11572
|
const layoutMiddlewares = [];
|
|
11534
11573
|
for (const layoutFile of layoutFiles) {
|
|
11535
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
11574
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
11536
11575
|
if (layoutHookData) {
|
|
11537
11576
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
11538
11577
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -11541,7 +11580,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11541
11580
|
layoutMiddlewares.push([]);
|
|
11542
11581
|
}
|
|
11543
11582
|
}
|
|
11544
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(notFoundDir);
|
|
11583
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(notFoundDir, projectRoot);
|
|
11545
11584
|
return {
|
|
11546
11585
|
pattern: NOT_FOUND_PATTERN,
|
|
11547
11586
|
regex: new RegExp(`^${NOT_FOUND_PATTERN}/?$`),
|
|
@@ -11561,7 +11600,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11561
11600
|
generateStaticParams
|
|
11562
11601
|
};
|
|
11563
11602
|
}
|
|
11564
|
-
async function loadErrorRouteFromFilesystem(appDir) {
|
|
11603
|
+
async function loadErrorRouteFromFilesystem(appDir, projectRoot) {
|
|
11565
11604
|
const errorCandidates = [
|
|
11566
11605
|
import_path13.default.join(appDir, `${ERROR_FILE_PREFIX}.tsx`),
|
|
11567
11606
|
import_path13.default.join(appDir, `${ERROR_FILE_PREFIX}.ts`),
|
|
@@ -11580,7 +11619,7 @@ async function loadErrorRouteFromFilesystem(appDir) {
|
|
|
11580
11619
|
}
|
|
11581
11620
|
const { loadDefaultExport: loadDefaultExport2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
11582
11621
|
const component = await loadDefaultExport2(errorFile, {
|
|
11583
|
-
projectRoot
|
|
11622
|
+
projectRoot
|
|
11584
11623
|
});
|
|
11585
11624
|
if (!component) {
|
|
11586
11625
|
return null;
|
|
@@ -11592,7 +11631,7 @@ async function loadErrorRouteFromFilesystem(appDir) {
|
|
|
11592
11631
|
const layoutServerHooks = [];
|
|
11593
11632
|
const layoutMiddlewares = [];
|
|
11594
11633
|
for (const layoutFile of layoutFiles) {
|
|
11595
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
11634
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
11596
11635
|
if (layoutHookData) {
|
|
11597
11636
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
11598
11637
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -11601,7 +11640,7 @@ async function loadErrorRouteFromFilesystem(appDir) {
|
|
|
11601
11640
|
layoutMiddlewares.push([]);
|
|
11602
11641
|
}
|
|
11603
11642
|
}
|
|
11604
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(appDir);
|
|
11643
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(appDir, projectRoot);
|
|
11605
11644
|
return {
|
|
11606
11645
|
pattern: ERROR_PATTERN,
|
|
11607
11646
|
regex: new RegExp(`^${ERROR_PATTERN}/?$`),
|
|
@@ -18903,8 +18942,8 @@ async function buildApp(options = {}) {
|
|
|
18903
18942
|
const apiRoutes = await loadApiRoutes(appDir);
|
|
18904
18943
|
const wssRoutes = await loadWssRoutes(appDir);
|
|
18905
18944
|
const { outDir: serverOutDir } = await buildServerApp(projectRoot, appDir, config);
|
|
18906
|
-
const notFoundRoute = await loadNotFoundRouteFromFilesystem(appDir);
|
|
18907
|
-
const errorRoute = await loadErrorRouteFromFilesystem(appDir);
|
|
18945
|
+
const notFoundRoute = await loadNotFoundRouteFromFilesystem(appDir, projectRoot);
|
|
18946
|
+
const errorRoute = await loadErrorRouteFromFilesystem(appDir, projectRoot);
|
|
18908
18947
|
if (!notFoundRoute) {
|
|
18909
18948
|
console.warn(
|
|
18910
18949
|
`[framework][build] No not-found route found. Consider creating ${config.directories.app}/${config.conventions.notFound}.tsx`
|