@farming-labs/next 0.0.23 → 0.0.25

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.
Files changed (2) hide show
  1. package/dist/config.mjs +9 -2
  2. package/package.json +6 -3
package/dist/config.mjs CHANGED
@@ -25,6 +25,11 @@ import createMDX from "@next/mdx";
25
25
  * // In docs.config set ai.enabled: false and staticExport: true.
26
26
  * export default withDocs({ output: "export" });
27
27
  */
28
+ /** Resolve Next.js App Router directory: prefer src/app when present, else app. */
29
+ function getNextAppDir(root) {
30
+ if (existsSync(join(root, "src", "app"))) return "src/app";
31
+ return "app";
32
+ }
28
33
  const GENERATED_BANNER = "// Auto-generated by @farming-labs/next — do not edit manually.\n";
29
34
  const MDX_COMPONENTS_TEMPLATE = `\
30
35
  ${GENERATED_BANNER}
@@ -100,14 +105,16 @@ function readOgEndpoint(root) {
100
105
  function withDocs(nextConfig = {}) {
101
106
  const root = process.cwd();
102
107
  if (!hasFile(root, "mdx-components")) writeFileSync(join(root, "mdx-components.tsx"), MDX_COMPONENTS_TEMPLATE);
103
- const layoutDir = join(root, "app", readDocsEntry(root));
108
+ const entry = readDocsEntry(root);
109
+ const appDir = getNextAppDir(root);
110
+ const layoutDir = join(root, appDir, entry);
104
111
  if (existsSync(layoutDir) && !hasFile(layoutDir, "layout")) writeFileSync(join(layoutDir, "layout.tsx"), DOCS_LAYOUT_TEMPLATE);
105
112
  else if (!existsSync(layoutDir)) {
106
113
  mkdirSync(layoutDir, { recursive: true });
107
114
  writeFileSync(join(layoutDir, "layout.tsx"), DOCS_LAYOUT_TEMPLATE);
108
115
  }
109
116
  const isStaticExport = nextConfig.output === "export";
110
- const docsApiRouteDir = join(root, "app", "api", "docs");
117
+ const docsApiRouteDir = join(root, appDir, "api", "docs");
111
118
  if (!isStaticExport && !hasFile(docsApiRouteDir, "route")) {
112
119
  mkdirSync(docsApiRouteDir, { recursive: true });
113
120
  writeFileSync(join(docsApiRouteDir, "route.ts"), DOCS_API_ROUTE_TEMPLATE);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@farming-labs/next",
3
- "version": "0.0.23",
3
+ "version": "0.0.25",
4
4
  "description": "Next.js adapter for @farming-labs/docs — MDX config wrapper",
5
5
  "keywords": [
6
6
  "docs",
@@ -60,7 +60,8 @@
60
60
  "devDependencies": {
61
61
  "@types/node": "^22.10.0",
62
62
  "tsdown": "^0.20.3",
63
- "typescript": "^5.9.3"
63
+ "typescript": "^5.9.3",
64
+ "vitest": "^3.2.4"
64
65
  },
65
66
  "peerDependencies": {
66
67
  "next": ">=16.0.0",
@@ -70,6 +71,8 @@
70
71
  "scripts": {
71
72
  "build": "tsdown",
72
73
  "dev": "tsdown --watch",
73
- "typecheck": "tsc --noEmit"
74
+ "typecheck": "tsc --noEmit",
75
+ "test": "vitest run",
76
+ "test:watch": "vitest"
74
77
  }
75
78
  }