Skip to content

Commit

Permalink
feat(maz-ui): add modules resolver for unplugin-auto-import
Browse files Browse the repository at this point in the history
  • Loading branch information
LouisMazel committed Aug 4, 2024
1 parent 8b18b99 commit 05059ee
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 3 deletions.
24 changes: 21 additions & 3 deletions packages/docs/docs/guide/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@ export default defineNuxtConfig({

<NpmBadge package="unplugin-vue-components"></NpmBadge>

Use [unplugin-vue-components](https://github.com/unplugin/unplugin-vue-components) and the dedicated maz-ui resolver to auto-import components and directives
Use [unplugin-vue-components](https://github.com/unplugin/unplugin-vue-components) and the dedicated maz-ui resolver to auto-import components, directives and modules

```ts
// vite.config.mts

import Components from 'unplugin-vue-components/vite'
import { UnpluginVueComponentsResolver, UnpluginDirectivesResolver } from 'maz-ui/resolvers'
import { UnpluginVueComponentsResolver, UnpluginDirectivesResolver, UnpluginModulesResolver } from 'maz-ui/resolvers'

export default defineConfig({
plugins: [
Expand All @@ -62,6 +62,7 @@ export default defineConfig({
resolvers: [
UnpluginVueComponentsResolver(),
UnpluginDirectivesResolver(),
UnpluginModulesResolver(),
],
}),
]
Expand All @@ -75,12 +76,29 @@ export default defineConfig({
...
"include": [
"components.d.ts",
"auto-imports.d.ts",
],
...
}
```

Then, you don't need to import all maz-ui components into your components
Then, you don't need to import maz-ui components, directives and modules in your files

```vue
<template>
<MazBtn v-click-outside="clikedOutside">Button</MazBtn>
</template>
<script lang="ts" setup>
const toast = useToast()
toast.message('Hello world!')
function clikedOutside () {
console.log('clicked outside')
}
</script>
```

:::

Expand Down
1 change: 1 addition & 0 deletions packages/lib/resolvers/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
export * from './unplugin-vue-components-resolver'
export * from './unplugin-directives-resolver'
export * from './unplugin-modules-resolver'
47 changes: 47 additions & 0 deletions packages/lib/resolvers/unplugin-modules-resolver.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import type { ComponentResolverFunction } from 'unplugin-vue-components/types'

export function UnpluginModulesResolver(): ComponentResolverFunction {
return (name) => {
type MazUiModules = keyof typeof import('maz-ui')

const modules = [
'capitalize',
'checkAvailability',
'countryCodeToUnicodeFlag',
'currency',
'date',
'debounce',
'injectStrict',
'isClient',
'normalizeString',
'number',
'sleep',
'throttle',
'truthyFilter',
'useAos',
'useBreakpoints',
'useFormField',
'useFormValidator',
'useIdleTimeout',
'useInstanceUniqId',
'useReadingTime',
'useStringMatching',
'useSwipe',
'useThemeHandler',
'useTimer',
'useToast',
'useUserVisibility',
'useWait',
'useWindowSize',
] as MazUiModules[]

if (modules.includes(name as MazUiModules)) {
return {
from: 'maz-ui',
name,
}
}

return undefined
}
}

0 comments on commit 05059ee

Please sign in to comment.