@nuxt/module-builder 0.7.1 → 0.8.1
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/chunks/build.mjs
CHANGED
|
@@ -8,10 +8,8 @@ import { defu } from 'defu';
|
|
|
8
8
|
import { createRegExp, anyOf } from 'magic-regexp';
|
|
9
9
|
import { consola } from 'consola';
|
|
10
10
|
import { resolvePath, findExports } from 'mlly';
|
|
11
|
-
import { generateTypes, resolveSchema } from 'untyped';
|
|
12
11
|
import { defineCommand } from 'citty';
|
|
13
|
-
import {
|
|
14
|
-
import { n as name, v as version } from '../shared/module-builder.832f08b1.mjs';
|
|
12
|
+
import { n as name, v as version } from '../shared/module-builder.78aa584a.mjs';
|
|
15
13
|
|
|
16
14
|
const build = defineCommand({
|
|
17
15
|
meta: {
|
|
@@ -144,51 +142,37 @@ const build = defineCommand({
|
|
|
144
142
|
};
|
|
145
143
|
const metaFile = resolve(ctx.options.outDir, "module.json");
|
|
146
144
|
await promises.writeFile(metaFile, JSON.stringify(moduleMeta, null, 2), "utf8");
|
|
147
|
-
await writeTypes(ctx.options.outDir,
|
|
148
|
-
const nuxt = await loadNuxt({
|
|
149
|
-
cwd,
|
|
150
|
-
overrides: {
|
|
151
|
-
modules: [resolve(cwd, "./src/module")]
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
const moduleOptions = await moduleFn.getOptions?.({}, nuxt) || {};
|
|
155
|
-
await nuxt.close();
|
|
156
|
-
return moduleOptions;
|
|
157
|
-
});
|
|
145
|
+
await writeTypes(ctx.options.outDir, ctx.options.stub);
|
|
158
146
|
}
|
|
159
147
|
}
|
|
160
148
|
});
|
|
161
149
|
}
|
|
162
150
|
});
|
|
163
|
-
async function writeTypes(distDir,
|
|
151
|
+
async function writeTypes(distDir, isStub) {
|
|
164
152
|
const dtsFile = resolve(distDir, "types.d.ts");
|
|
165
153
|
const dtsFileMts = resolve(distDir, "types.d.mts");
|
|
166
154
|
if (existsSync(dtsFile)) {
|
|
167
155
|
return;
|
|
168
156
|
}
|
|
169
|
-
const
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
moduleTypes.replace(
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
const isStub = moduleTypes.includes("export *");
|
|
157
|
+
const moduleReExports = [];
|
|
158
|
+
if (!isStub) {
|
|
159
|
+
const moduleTypesFile = resolve(distDir, "module.d.ts");
|
|
160
|
+
const moduleTypes = await promises.readFile(moduleTypesFile, "utf8").catch(() => "");
|
|
161
|
+
const normalisedModuleTypes = moduleTypes.replace(/export\s*\{.*?\}/gs, (match) => match.replace(/\b(type|interface)\b/g, ""));
|
|
162
|
+
for (const e of findExports(normalisedModuleTypes)) {
|
|
163
|
+
moduleReExports.push(e);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
179
166
|
const appShims = [];
|
|
180
167
|
const schemaShims = [];
|
|
181
168
|
const moduleImports = [];
|
|
182
|
-
const
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
} else {
|
|
190
|
-
moduleDeclarations.push(` ${generateTypes(await resolveSchema(await getOptions()), { interfaceName: "ModuleOptions" })}`);
|
|
191
|
-
}
|
|
169
|
+
const schemaImports = [];
|
|
170
|
+
const moduleExports = [];
|
|
171
|
+
const hasTypeExport = (name2) => isStub || moduleReExports.find((exp) => exp.names.includes(name2));
|
|
172
|
+
if (!hasTypeExport("ModuleOptions")) {
|
|
173
|
+
schemaImports.push("NuxtModule");
|
|
174
|
+
moduleImports.push("default as Module");
|
|
175
|
+
moduleExports.push(`export type ModuleOptions = typeof Module extends NuxtModule<infer O> ? Partial<O> : Record<string, any>`);
|
|
192
176
|
}
|
|
193
177
|
if (hasTypeExport("ModuleHooks")) {
|
|
194
178
|
moduleImports.push("ModuleHooks");
|
|
@@ -211,9 +195,10 @@ async function writeTypes(distDir, meta, getOptions) {
|
|
|
211
195
|
schemaShims.push(" interface PublicRuntimeConfig extends ModulePublicRuntimeConfig {}");
|
|
212
196
|
}
|
|
213
197
|
const dtsContents = `
|
|
214
|
-
import type { ${
|
|
198
|
+
${schemaImports.length ? `import type { ${schemaImports.join(", ")} } from '@nuxt/schema'` : ""}
|
|
199
|
+
|
|
200
|
+
${moduleImports.length ? `import type { ${moduleImports.join(", ")} } from './module'` : ""}
|
|
215
201
|
|
|
216
|
-
${moduleDeclarations.join("\n")}
|
|
217
202
|
${appShims.length ? `declare module '#app' {
|
|
218
203
|
${appShims.join("\n")}
|
|
219
204
|
}
|
|
@@ -226,9 +211,12 @@ ${schemaShims.length ? `declare module 'nuxt/schema' {
|
|
|
226
211
|
${schemaShims.join("\n")}
|
|
227
212
|
}
|
|
228
213
|
` : ""}
|
|
229
|
-
${
|
|
230
|
-
|
|
231
|
-
|
|
214
|
+
${moduleExports.length ? `
|
|
215
|
+
${moduleExports.join("\n")}` : ""}
|
|
216
|
+
${isStub ? 'export * from "./module"' : ""}
|
|
217
|
+
${moduleReExports[0] ? `
|
|
218
|
+
export { ${moduleReExports[0].names.map((n) => (n === "default" ? "" : "type ") + n).join(", ")} } from './module'` : ""}
|
|
219
|
+
`.trim().replace(/[\n\r]{3,}/g, "\n\n") + "\n";
|
|
232
220
|
await promises.writeFile(dtsFile, dtsContents, "utf8");
|
|
233
221
|
if (!existsSync(dtsFileMts)) {
|
|
234
222
|
await promises.writeFile(dtsFileMts, dtsContents.replace(/\.\/module/g, "./module.js"), "utf8");
|
package/dist/cli.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { defineCommand, runMain } from 'citty';
|
|
3
3
|
import { consola } from 'consola';
|
|
4
|
-
import { n as name, d as description, v as version } from './shared/module-builder.
|
|
4
|
+
import { n as name, d as description, v as version } from './shared/module-builder.78aa584a.mjs';
|
|
5
5
|
|
|
6
6
|
const _rDefault = (r) => r && typeof r === "object" && "default" in r ? r.default : r;
|
|
7
7
|
const main = defineCommand({
|
package/dist/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nuxt/module-builder",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"repository": "nuxt/module-builder",
|
|
5
5
|
"description": "Complete solution for building Nuxt modules",
|
|
6
6
|
"license": "MIT",
|
|
@@ -27,34 +27,33 @@
|
|
|
27
27
|
"mlly": "^1.7.1",
|
|
28
28
|
"pathe": "^1.1.2",
|
|
29
29
|
"pkg-types": "^1.1.1",
|
|
30
|
-
"tsconfck": "^3.1.
|
|
31
|
-
"unbuild": "^2.0.0"
|
|
32
|
-
"untyped": "^1.4.2"
|
|
30
|
+
"tsconfck": "^3.1.1",
|
|
31
|
+
"unbuild": "^2.0.0"
|
|
33
32
|
},
|
|
34
33
|
"peerDependencies": {
|
|
35
|
-
"@nuxt/kit": "^3.12.
|
|
34
|
+
"@nuxt/kit": "^3.12.2",
|
|
36
35
|
"nuxi": "^3.12.0"
|
|
37
36
|
},
|
|
38
37
|
"devDependencies": {
|
|
39
38
|
"@nuxt/eslint-config": "^0.3.13",
|
|
40
|
-
"@nuxt/kit": "^3.12.
|
|
41
|
-
"@nuxt/schema": "^3.12.
|
|
42
|
-
"@types/node": "^20.14.
|
|
39
|
+
"@nuxt/kit": "^3.12.2",
|
|
40
|
+
"@nuxt/schema": "^3.12.2",
|
|
41
|
+
"@types/node": "^20.14.9",
|
|
43
42
|
"@vitest/coverage-v8": "^1.6.0",
|
|
44
43
|
"changelogen": "^0.5.5",
|
|
45
|
-
"eslint": "^9.
|
|
44
|
+
"eslint": "^9.5.0",
|
|
46
45
|
"jiti": "^1.21.6",
|
|
47
46
|
"nuxi": "^3.12.0",
|
|
48
|
-
"nuxt": "^3.12.
|
|
49
|
-
"typescript": "^5.
|
|
47
|
+
"nuxt": "^3.12.2",
|
|
48
|
+
"typescript": "^5.5.2",
|
|
50
49
|
"vitest": "^1.6.0",
|
|
51
|
-
"vue": "^3.4.
|
|
52
|
-
"vue-tsc": "^2.0.
|
|
50
|
+
"vue": "^3.4.31",
|
|
51
|
+
"vue-tsc": "^2.0.22"
|
|
53
52
|
},
|
|
54
53
|
"resolutions": {
|
|
55
|
-
"@nuxt/kit": "^3.12.
|
|
56
|
-
"@nuxt/schema": "^3.12.
|
|
57
|
-
"vue": "^3.4.
|
|
54
|
+
"@nuxt/kit": "^3.12.2",
|
|
55
|
+
"@nuxt/schema": "^3.12.2",
|
|
56
|
+
"vue": "^3.4.31"
|
|
58
57
|
},
|
|
59
58
|
"scripts": {
|
|
60
59
|
"build": "unbuild",
|