@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.mjs
CHANGED
|
@@ -10073,7 +10073,7 @@ var NAMING = {
|
|
|
10073
10073
|
// Files
|
|
10074
10074
|
SERVER_HOOK: "server.hook"
|
|
10075
10075
|
};
|
|
10076
|
-
async function loadServerHookForDir(currentDir) {
|
|
10076
|
+
async function loadServerHookForDir(currentDir, projectRoot) {
|
|
10077
10077
|
const isDev = process.env.NODE_ENV === "development";
|
|
10078
10078
|
const isBuild = process.env.LOLY_BUILD === "1";
|
|
10079
10079
|
let file = null;
|
|
@@ -10099,10 +10099,24 @@ async function loadServerHookForDir(currentDir) {
|
|
|
10099
10099
|
generateStaticParams: null
|
|
10100
10100
|
};
|
|
10101
10101
|
}
|
|
10102
|
+
let resolvedProjectRoot = projectRoot;
|
|
10103
|
+
if (!resolvedProjectRoot) {
|
|
10104
|
+
let current = path3.resolve(currentDir);
|
|
10105
|
+
while (current !== path3.dirname(current)) {
|
|
10106
|
+
if (fs3.existsSync(path3.join(current, "package.json"))) {
|
|
10107
|
+
resolvedProjectRoot = current;
|
|
10108
|
+
break;
|
|
10109
|
+
}
|
|
10110
|
+
current = path3.dirname(current);
|
|
10111
|
+
}
|
|
10112
|
+
if (!resolvedProjectRoot) {
|
|
10113
|
+
resolvedProjectRoot = currentDir;
|
|
10114
|
+
}
|
|
10115
|
+
}
|
|
10102
10116
|
let mod;
|
|
10103
10117
|
try {
|
|
10104
10118
|
const { loadModule: loadModule2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
10105
|
-
mod = await loadModule2(file, { projectRoot:
|
|
10119
|
+
mod = await loadModule2(file, { projectRoot: resolvedProjectRoot });
|
|
10106
10120
|
} catch (error) {
|
|
10107
10121
|
console.error(
|
|
10108
10122
|
`[framework][server-hook] Error loading server hook from ${file}:`,
|
|
@@ -10145,7 +10159,7 @@ async function loadServerHookForDir(currentDir) {
|
|
|
10145
10159
|
generateStaticParams
|
|
10146
10160
|
};
|
|
10147
10161
|
}
|
|
10148
|
-
async function loadLayoutServerHook(layoutFile) {
|
|
10162
|
+
async function loadLayoutServerHook(layoutFile, projectRoot) {
|
|
10149
10163
|
const layoutDir = path3.dirname(layoutFile);
|
|
10150
10164
|
const layoutExt = path3.extname(layoutFile);
|
|
10151
10165
|
const layoutBasename = path3.basename(layoutFile, layoutExt);
|
|
@@ -10171,7 +10185,20 @@ async function loadLayoutServerHook(layoutFile) {
|
|
|
10171
10185
|
}
|
|
10172
10186
|
try {
|
|
10173
10187
|
const { loadModule: loadModule2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
10174
|
-
|
|
10188
|
+
if (!projectRoot) {
|
|
10189
|
+
let current = path3.dirname(layoutFile);
|
|
10190
|
+
while (current !== path3.dirname(current)) {
|
|
10191
|
+
if (fs3.existsSync(path3.join(current, "package.json"))) {
|
|
10192
|
+
projectRoot = current;
|
|
10193
|
+
break;
|
|
10194
|
+
}
|
|
10195
|
+
current = path3.dirname(current);
|
|
10196
|
+
}
|
|
10197
|
+
if (!projectRoot) {
|
|
10198
|
+
projectRoot = path3.dirname(layoutFile);
|
|
10199
|
+
}
|
|
10200
|
+
}
|
|
10201
|
+
const mod = await loadModule2(file, { projectRoot });
|
|
10175
10202
|
const serverHook = typeof mod?.getServerSideProps === "function" ? mod.getServerSideProps : null;
|
|
10176
10203
|
let middlewares = [];
|
|
10177
10204
|
const rawMiddlewares = mod?.[NAMING.BEFORE_MIDDLEWARES];
|
|
@@ -10259,6 +10286,15 @@ async function loadRoutes(appDir) {
|
|
|
10259
10286
|
if (!fs4.existsSync(appDir)) {
|
|
10260
10287
|
return [];
|
|
10261
10288
|
}
|
|
10289
|
+
let projectRoot = appDir;
|
|
10290
|
+
let current = path4.resolve(appDir);
|
|
10291
|
+
while (current !== path4.dirname(current)) {
|
|
10292
|
+
if (fs4.existsSync(path4.join(current, "package.json"))) {
|
|
10293
|
+
projectRoot = current;
|
|
10294
|
+
break;
|
|
10295
|
+
}
|
|
10296
|
+
current = path4.dirname(current);
|
|
10297
|
+
}
|
|
10262
10298
|
const routes = [];
|
|
10263
10299
|
async function walk(currentDir) {
|
|
10264
10300
|
const entries = fs4.readdirSync(currentDir, { withFileTypes: true });
|
|
@@ -10277,7 +10313,7 @@ async function loadRoutes(appDir) {
|
|
|
10277
10313
|
const { regex, paramNames } = buildRegexFromRoutePath(routePath);
|
|
10278
10314
|
const { loadDefaultExport: loadDefaultExport2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
10279
10315
|
const component = await loadDefaultExport2(fullPath, {
|
|
10280
|
-
projectRoot
|
|
10316
|
+
projectRoot
|
|
10281
10317
|
});
|
|
10282
10318
|
if (!component) {
|
|
10283
10319
|
continue;
|
|
@@ -10289,7 +10325,7 @@ async function loadRoutes(appDir) {
|
|
|
10289
10325
|
const layoutServerHooks = [];
|
|
10290
10326
|
const layoutMiddlewares = [];
|
|
10291
10327
|
for (const layoutFile of layoutFiles) {
|
|
10292
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
10328
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
10293
10329
|
if (layoutHookData) {
|
|
10294
10330
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
10295
10331
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -10298,7 +10334,7 @@ async function loadRoutes(appDir) {
|
|
|
10298
10334
|
layoutMiddlewares.push([]);
|
|
10299
10335
|
}
|
|
10300
10336
|
}
|
|
10301
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(currentDir);
|
|
10337
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(currentDir, projectRoot);
|
|
10302
10338
|
routes.push({
|
|
10303
10339
|
pattern: routePath,
|
|
10304
10340
|
regex,
|
|
@@ -10894,7 +10930,7 @@ async function loadRoutesFromManifest(projectRoot) {
|
|
|
10894
10930
|
const layoutServerHooks = [];
|
|
10895
10931
|
const layoutMiddlewares = [];
|
|
10896
10932
|
for (const layoutFile of layoutFiles) {
|
|
10897
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
10933
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
10898
10934
|
if (layoutHookData) {
|
|
10899
10935
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
10900
10936
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -10903,7 +10939,7 @@ async function loadRoutesFromManifest(projectRoot) {
|
|
|
10903
10939
|
layoutMiddlewares.push([]);
|
|
10904
10940
|
}
|
|
10905
10941
|
}
|
|
10906
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(pageDir);
|
|
10942
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(pageDir, projectRoot);
|
|
10907
10943
|
pageRoutes.push({
|
|
10908
10944
|
pattern: entry.pattern,
|
|
10909
10945
|
regex,
|
|
@@ -11321,7 +11357,7 @@ var FilesystemRouteLoader = class {
|
|
|
11321
11357
|
if (hasFilesChanged(this.appDir, this.projectRoot, this.cache.fileStats) || this.cache.notFoundRoute === void 0) {
|
|
11322
11358
|
const files = getRelevantFiles(this.appDir, this.projectRoot);
|
|
11323
11359
|
const fileStats = buildFileStats(files);
|
|
11324
|
-
this.cache.notFoundRoute = await loadNotFoundRouteFromFilesystem(this.appDir);
|
|
11360
|
+
this.cache.notFoundRoute = await loadNotFoundRouteFromFilesystem(this.appDir, this.projectRoot);
|
|
11325
11361
|
this.cache.fileStats = fileStats;
|
|
11326
11362
|
this.cache.timestamp = Date.now();
|
|
11327
11363
|
}
|
|
@@ -11338,7 +11374,7 @@ var FilesystemRouteLoader = class {
|
|
|
11338
11374
|
if (hasFilesChanged(this.appDir, this.projectRoot, this.cache.fileStats) || this.cache.errorRoute === void 0) {
|
|
11339
11375
|
const files = getRelevantFiles(this.appDir, this.projectRoot);
|
|
11340
11376
|
const fileStats = buildFileStats(files);
|
|
11341
|
-
this.cache.errorRoute = await loadErrorRouteFromFilesystem(this.appDir);
|
|
11377
|
+
this.cache.errorRoute = await loadErrorRouteFromFilesystem(this.appDir, this.projectRoot);
|
|
11342
11378
|
this.cache.fileStats = fileStats;
|
|
11343
11379
|
this.cache.timestamp = Date.now();
|
|
11344
11380
|
}
|
|
@@ -11414,7 +11450,7 @@ var ManifestRouteLoader = class {
|
|
|
11414
11450
|
return chunks;
|
|
11415
11451
|
}
|
|
11416
11452
|
};
|
|
11417
|
-
async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
11453
|
+
async function loadNotFoundRouteFromFilesystem(appDir, projectRoot) {
|
|
11418
11454
|
const notFoundCandidates = [
|
|
11419
11455
|
path10.join(appDir, `${NOT_FOUND_FILE_PREFIX}.tsx`),
|
|
11420
11456
|
path10.join(appDir, `${NOT_FOUND_FILE_PREFIX}.ts`),
|
|
@@ -11438,7 +11474,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11438
11474
|
}
|
|
11439
11475
|
const { loadDefaultExport: loadDefaultExport2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
11440
11476
|
const component = await loadDefaultExport2(notFoundFile, {
|
|
11441
|
-
projectRoot
|
|
11477
|
+
projectRoot
|
|
11442
11478
|
});
|
|
11443
11479
|
if (!component) {
|
|
11444
11480
|
return null;
|
|
@@ -11451,7 +11487,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11451
11487
|
const layoutServerHooks = [];
|
|
11452
11488
|
const layoutMiddlewares = [];
|
|
11453
11489
|
for (const layoutFile of layoutFiles) {
|
|
11454
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
11490
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
11455
11491
|
if (layoutHookData) {
|
|
11456
11492
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
11457
11493
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -11460,7 +11496,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11460
11496
|
layoutMiddlewares.push([]);
|
|
11461
11497
|
}
|
|
11462
11498
|
}
|
|
11463
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(notFoundDir);
|
|
11499
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(notFoundDir, projectRoot);
|
|
11464
11500
|
return {
|
|
11465
11501
|
pattern: NOT_FOUND_PATTERN,
|
|
11466
11502
|
regex: new RegExp(`^${NOT_FOUND_PATTERN}/?$`),
|
|
@@ -11480,7 +11516,7 @@ async function loadNotFoundRouteFromFilesystem(appDir) {
|
|
|
11480
11516
|
generateStaticParams
|
|
11481
11517
|
};
|
|
11482
11518
|
}
|
|
11483
|
-
async function loadErrorRouteFromFilesystem(appDir) {
|
|
11519
|
+
async function loadErrorRouteFromFilesystem(appDir, projectRoot) {
|
|
11484
11520
|
const errorCandidates = [
|
|
11485
11521
|
path10.join(appDir, `${ERROR_FILE_PREFIX}.tsx`),
|
|
11486
11522
|
path10.join(appDir, `${ERROR_FILE_PREFIX}.ts`),
|
|
@@ -11499,7 +11535,7 @@ async function loadErrorRouteFromFilesystem(appDir) {
|
|
|
11499
11535
|
}
|
|
11500
11536
|
const { loadDefaultExport: loadDefaultExport2 } = await Promise.resolve().then(() => (init_module_loader(), module_loader_exports));
|
|
11501
11537
|
const component = await loadDefaultExport2(errorFile, {
|
|
11502
|
-
projectRoot
|
|
11538
|
+
projectRoot
|
|
11503
11539
|
});
|
|
11504
11540
|
if (!component) {
|
|
11505
11541
|
return null;
|
|
@@ -11511,7 +11547,7 @@ async function loadErrorRouteFromFilesystem(appDir) {
|
|
|
11511
11547
|
const layoutServerHooks = [];
|
|
11512
11548
|
const layoutMiddlewares = [];
|
|
11513
11549
|
for (const layoutFile of layoutFiles) {
|
|
11514
|
-
const layoutHookData = await loadLayoutServerHook(layoutFile);
|
|
11550
|
+
const layoutHookData = await loadLayoutServerHook(layoutFile, projectRoot);
|
|
11515
11551
|
if (layoutHookData) {
|
|
11516
11552
|
layoutServerHooks.push(layoutHookData.serverHook);
|
|
11517
11553
|
layoutMiddlewares.push(layoutHookData.middlewares);
|
|
@@ -11520,7 +11556,7 @@ async function loadErrorRouteFromFilesystem(appDir) {
|
|
|
11520
11556
|
layoutMiddlewares.push([]);
|
|
11521
11557
|
}
|
|
11522
11558
|
}
|
|
11523
|
-
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(appDir);
|
|
11559
|
+
const { middlewares, serverHook, dynamic, generateStaticParams } = await loadServerHookForDir(appDir, projectRoot);
|
|
11524
11560
|
return {
|
|
11525
11561
|
pattern: ERROR_PATTERN,
|
|
11526
11562
|
regex: new RegExp(`^${ERROR_PATTERN}/?$`),
|
|
@@ -14536,6 +14572,9 @@ var INIT_FILE_NAME = "init.server";
|
|
|
14536
14572
|
async function runInitIfExists(projectRoot, serverData) {
|
|
14537
14573
|
try {
|
|
14538
14574
|
let mod = await getServerFile(projectRoot, INIT_FILE_NAME);
|
|
14575
|
+
if (!mod) {
|
|
14576
|
+
return {};
|
|
14577
|
+
}
|
|
14539
14578
|
if (typeof mod?.init === "function") {
|
|
14540
14579
|
const serverContext = { ...serverData };
|
|
14541
14580
|
await mod.init({ serverContext });
|
|
@@ -15283,8 +15322,8 @@ async function buildApp(options = {}) {
|
|
|
15283
15322
|
const apiRoutes = await loadApiRoutes(appDir);
|
|
15284
15323
|
const wssRoutes = await loadWssRoutes(appDir);
|
|
15285
15324
|
const { outDir: serverOutDir } = await buildServerApp(projectRoot, appDir, config);
|
|
15286
|
-
const notFoundRoute = await loadNotFoundRouteFromFilesystem(appDir);
|
|
15287
|
-
const errorRoute = await loadErrorRouteFromFilesystem(appDir);
|
|
15325
|
+
const notFoundRoute = await loadNotFoundRouteFromFilesystem(appDir, projectRoot);
|
|
15326
|
+
const errorRoute = await loadErrorRouteFromFilesystem(appDir, projectRoot);
|
|
15288
15327
|
if (!notFoundRoute) {
|
|
15289
15328
|
console.warn(
|
|
15290
15329
|
`[framework][build] No not-found route found. Consider creating ${config.directories.app}/${config.conventions.notFound}.tsx`
|