@dynect/base 0.19.2 → 0.19.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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/module.ts +15 -13
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynect/base",
3
- "version": "0.19.2",
3
+ "version": "0.19.3",
4
4
  "description": "Reusable Nuxt base module — components, composables, utils, plugins and i18n from the Dynect design system.",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/src/module.ts CHANGED
@@ -1,16 +1,18 @@
1
- import { addComponentsDir, addImports, addImportsDir, addPlugin, createResolver, defineNuxtModule, installModule } from '@nuxt/kit';
1
+ import { addComponentsDir, addImports, addImportsDir, addPlugin, createResolver, defineNuxtModule, installModule, resolvePath } from '@nuxt/kit';
2
2
  import type { NuxtModule } from '@nuxt/schema';
3
3
  import tailwindcss from '@tailwindcss/vite';
4
4
  import { defu } from 'defu';
5
5
  import { existsSync } from 'node:fs';
6
- import { createRequire } from 'node:module';
7
6
  import { join } from 'node:path';
7
+ import { fileURLToPath } from 'node:url';
8
8
 
9
- // Resolve sub-module paths from this package's own node_modules,
10
- // not from the consuming app's node_modules.
11
- const _require = createRequire(import.meta.url);
12
- function resolveModule(id: string): string {
13
- return _require.resolve(id);
9
+ // Directory of this file — used to resolve sub-modules from @dynect/base's own
10
+ // node_modules (not the consuming app's). resolvePath uses mlly which handles
11
+ // ESM packages with "exports" field, unlike require.resolve which does not.
12
+ const moduleDir = fileURLToPath(new URL('.', import.meta.url));
13
+
14
+ async function resolveModule(id: string): Promise<string> {
15
+ return resolvePath(id, { cwd: moduleDir });
14
16
  }
15
17
 
16
18
  export interface DynectBaseOptions {
@@ -137,7 +139,7 @@ export default defineNuxtModule<DynectBaseOptions>({
137
139
  // ── Install required Nuxt modules ────────────────────────────────────────
138
140
  if (options.shadcn !== false) {
139
141
  const shadcnComponentDir = isStandalone ? join(runtimeComponentsDir, 'ui') : '~/components/ui';
140
- const { default: shadcnNuxt } = await import(resolveModule('shadcn-nuxt')) as { default: NuxtModule };
142
+ const { default: shadcnNuxt } = await import(await resolveModule('shadcn-nuxt')) as { default: NuxtModule };
141
143
  await installModule(shadcnNuxt, {
142
144
  prefix: '',
143
145
  componentDir: shadcnComponentDir,
@@ -146,12 +148,12 @@ export default defineNuxtModule<DynectBaseOptions>({
146
148
  }
147
149
 
148
150
  if (options.veeValidate !== false) {
149
- const { default: veeValidateNuxt } = await import(resolveModule('@vee-validate/nuxt')) as { default: NuxtModule };
151
+ const { default: veeValidateNuxt } = await import(await resolveModule('@vee-validate/nuxt')) as { default: NuxtModule };
150
152
  await installModule(veeValidateNuxt, options.veeValidate ?? {});
151
153
  }
152
154
 
153
155
  if (options.colorMode !== false) {
154
- const { default: colorMode } = await import(resolveModule('@nuxtjs/color-mode')) as { default: NuxtModule };
156
+ const { default: colorMode } = await import(await resolveModule('@nuxtjs/color-mode')) as { default: NuxtModule };
155
157
  await installModule(colorMode, {
156
158
  preference: 'system',
157
159
  fallback: 'light',
@@ -165,7 +167,7 @@ export default defineNuxtModule<DynectBaseOptions>({
165
167
 
166
168
  if (options.i18n !== false) {
167
169
  const langDir = isStandalone ? resolver.resolve('./runtime/assets/lang') : resolver.resolve('../../../app/assets/lang');
168
- const { default: i18n } = await import(resolveModule('@nuxtjs/i18n')) as { default: NuxtModule };
170
+ const { default: i18n } = await import(await resolveModule('@nuxtjs/i18n')) as { default: NuxtModule };
169
171
  await installModule(i18n, {
170
172
  locales: [
171
173
  { code: 'en', iso: 'en_US', file: 'en.json', name: 'English' },
@@ -186,7 +188,7 @@ export default defineNuxtModule<DynectBaseOptions>({
186
188
  }
187
189
 
188
190
  if (options.icon !== false) {
189
- const { default: icon } = await import(resolveModule('@nuxt/icon')) as { default: NuxtModule };
191
+ const { default: icon } = await import(await resolveModule('@nuxt/icon')) as { default: NuxtModule };
190
192
  await installModule(icon, {
191
193
  provider: 'server',
192
194
  mode: 'svg',
@@ -198,7 +200,7 @@ export default defineNuxtModule<DynectBaseOptions>({
198
200
  });
199
201
  }
200
202
 
201
- const { default: pinia } = await import(resolveModule('@pinia/nuxt')) as { default: NuxtModule };
203
+ const { default: pinia } = await import(await resolveModule('@pinia/nuxt')) as { default: NuxtModule };
202
204
  await installModule(pinia);
203
205
 
204
206
  // ── CJS dependency pre-bundling ──────────────────────────────────────────