feat(blog): add file-based blog with dynamic slugs, MDX content and layout shell
- Introduced blog routing using Next.js App Router - Implemented dynamic [slug] pages for blog posts - Added MDX-based content loading via lib/posts - Integrated shared TopBar layout with navigation - Established clear content, lib and component separation
This commit is contained in:
26
apps/public-web/node_modules/next/dist/esm/lib/file-exists.js
generated
vendored
Normal file
26
apps/public-web/node_modules/next/dist/esm/lib/file-exists.js
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
import { existsSync, promises } from 'fs';
|
||||
import isError from './is-error';
|
||||
export var FileType = /*#__PURE__*/ function(FileType) {
|
||||
FileType["File"] = "file";
|
||||
FileType["Directory"] = "directory";
|
||||
return FileType;
|
||||
}({});
|
||||
export async function fileExists(fileName, type) {
|
||||
try {
|
||||
if (type === "file") {
|
||||
const stats = await promises.stat(fileName);
|
||||
return stats.isFile();
|
||||
} else if (type === "directory") {
|
||||
const stats = await promises.stat(fileName);
|
||||
return stats.isDirectory();
|
||||
}
|
||||
return existsSync(fileName);
|
||||
} catch (err) {
|
||||
if (isError(err) && (err.code === 'ENOENT' || err.code === 'ENAMETOOLONG')) {
|
||||
return false;
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
//# sourceMappingURL=file-exists.js.map
|
||||
Reference in New Issue
Block a user