Skip to content

Commit

Permalink
feat: module improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
benjamincanac committed Dec 22, 2021
1 parent a407663 commit 74bd7bc
Show file tree
Hide file tree
Showing 35 changed files with 32 additions and 54 deletions.
17 changes: 4 additions & 13 deletions build.config.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,9 @@
export default {
declaration: true,
entries: [
'./src/module',
{ input: './src/components/', outDir: 'dist/components' },
{ input: './src/composables/', outDir: 'dist/composables' },
{ input: './src/presets/', outDir: 'dist/presets' },
{ input: './src/plugins/', outDir: 'dist/plugins' },
{ input: './src/types/', outDir: 'dist/types' },
{ input: './src/utils/', outDir: 'dist/utils' },
{ input: './src/css/', outDir: 'dist/css' }
{ input: 'src/runtime/', outDir: 'dist/runtime' },
{ input: 'src/css/', outDir: 'dist/css' }
],
declaration: true,
externals: [
'@nuxt/kit',
'@nuxt/schema',
'@unocss/preset-uno'
]
externals: ['@nuxt/kit', '@nuxt/schema', '@unocss/preset-uno']
}
11 changes: 5 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,11 @@
"license": "MIT",
"exports": {
".": {
"require": "./dist/module.cjs",
"import": "./dist/module.mjs"
}
},
"main": "dist/module.mjs",
"module": "dist/module.mjs",
"types": "dist/module.d.ts",
"main": "./dist/module.mjs",
"types": "./dist/module.d.ts",
"files": [
"dist"
],
Expand All @@ -36,11 +34,12 @@
"@vueuse/core": "^7.4.0"
},
"devDependencies": {
"@nuxt/schema": "npm:@nuxt/schema-edge@latest",
"@nuxtjs/eslint-config-typescript": "^8.0.0",
"@types/lodash-es": "^4.17.5",
"@vueuse/components": "^7.4.0",
"eslint": "^8.5.0",
"nuxt3": "^3.0.0-27334958.ca9761d",
"unbuild": "0.6.3"
"nuxt3": "latest",
"unbuild": "^0.6.7"
}
}
11 changes: 0 additions & 11 deletions src/dirs.ts

This file was deleted.

47 changes: 23 additions & 24 deletions src/module.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import { resolve } from 'pathe'
import { defineNuxtModule, installModule, addComponentsDir, addTemplate, resolveModule, addPlugin } from '@nuxt/kit'
import { defineNuxtModule, installModule, addComponentsDir, addTemplate, addPlugin } from '@nuxt/kit'
import { colors } from '@unocss/preset-uno'
import defu from 'defu'
import type { UnocssNuxtOptions } from '@unocss/nuxt'
import type { Nuxt } from '@nuxt/schema'
import { presetsDir } from './dirs'
import type { UiOptions } from './types'

const defaults = {
Expand All @@ -25,8 +24,10 @@ const defaults = {
export default defineNuxtModule<UiOptions>({
meta: {
name: '@nuxthq/ui',
compatibility: { nuxt: '^3.0.0' },
configKey: 'ui'
configKey: 'ui',
compatibility: {
nuxt: '^3.0.0'
}
},
defaults,
async setup (_options: UiOptions, nuxt: Nuxt) {
Expand Down Expand Up @@ -129,71 +130,69 @@ export default defineNuxtModule<UiOptions>({

await installModule('@unocss/nuxt', options, nuxt)

let ui: object = {}
// Transpile runtime
const runtimeDir = resolve(__dirname, './runtime')
nuxt.options.build.transpile.push(runtimeDir)
nuxt.options.build.transpile.push('@popperjs/core', '@headlessui/vue')

let ui: object = await import(resolve(runtimeDir, 'presets', defaults.preset))
try {
if (typeof preset === 'object') {
ui = await import(resolveModule(`./${defaults.preset}`, { paths: presetsDir }))
// @ts-ignore
ui = ui.default ? ui.default : ui
ui = defu(preset, ui)
} else {
// @ts-ignore
ui = await import(resolveModule(`./${preset}`, { paths: presetsDir }))
// @ts-ignore
ui = ui.default ? ui.default : ui
ui = await import(resolve(runtimeDir, 'presets', preset))
}
} catch (e) {
ui = await import(resolveModule(`./${defaults.preset}`, { paths: presetsDir }))
// @ts-ignore
ui = ui.default ? ui.default : ui
// eslint-disable-next-line no-console
console.warn('Could not load preset file.')
}

addTemplate({
filename: 'ui.mjs',
getContents: () => `/* @unocss-include */ export default ${JSON.stringify(ui)}`
})

addPlugin(resolve(__dirname, './plugins/toast.client'))
addPlugin(resolve(runtimeDir, 'plugins', 'toast.client'))

addComponentsDir({
path: resolve(__dirname, './components/elements'),
path: resolve(runtimeDir, 'components', 'elements'),
prefix,
watch: false
})
addComponentsDir({
path: resolve(__dirname, './components/feedback'),
path: resolve(runtimeDir, 'components', 'feedback'),
prefix,
watch: false
})
addComponentsDir({
path: resolve(__dirname, './components/forms'),
path: resolve(runtimeDir, 'components', 'forms'),
prefix,
watch: false
})
addComponentsDir({
path: resolve(__dirname, './components/layout'),
path: resolve(runtimeDir, 'components', 'layout'),
prefix,
watch: false
})
addComponentsDir({
path: resolve(__dirname, './components/navigation'),
path: resolve(runtimeDir, 'components', 'navigation'),
prefix,
watch: false
})
addComponentsDir({
path: resolve(__dirname, './components/overlays'),
path: resolve(runtimeDir, 'components', 'overlays'),
prefix,
watch: false
})

// Add composables
nuxt.hook('autoImports:dirs', (dirs) => {
dirs.push(resolve(__dirname, './composables'))
dirs.push(resolve(runtimeDir, 'composables'))
})

// Add CSS
nuxt.options.css.push(resolve(__dirname, './css/forms.css'))

nuxt.options.build.transpile.push('@popperjs/core', '@headlessui/vue', '@nuxthq/ui')
}
})

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

1 comment on commit 74bd7bc

@vercel
Copy link

@vercel vercel bot commented on 74bd7bc Dec 22, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

Please sign in to comment.