Skip to content

Commit

Permalink
feat: load plugin and composables
Browse files Browse the repository at this point in the history
  • Loading branch information
lihbr committed Feb 8, 2022
1 parent 9b25020 commit b1be73d
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 34 deletions.
33 changes: 0 additions & 33 deletions src/index.ts

This file was deleted.

49 changes: 49 additions & 0 deletions src/module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import { resolve } from 'path'
import { fileURLToPath } from 'url'
import { defineNuxtModule, addPlugin, addAutoImport } from '@nuxt/kit'

import * as prismicVue from '@prismicio/vue'

import { name as pkgName } from '../package.json'
import { PrismicModuleOptions } from './types'

export default defineNuxtModule<PrismicModuleOptions>({
meta: {
name: pkgName,
configKey: 'prismic',
compatibility: { nuxt: '^3.0.0' }
},
defaults: {
endpoint: '',
clientConfig: {},
linkResolver: undefined,
htmlSerializer: undefined,
injectComponents: true,
components: {
linkInternalComponent: 'nuxt-link'
}
},
hooks: {},
setup (mergedOptions, nuxt) {
const runtimeDir = fileURLToPath(new URL('./runtime', import.meta.url))
nuxt.options.build.transpile.push(runtimeDir)

nuxt.options.publicRuntimeConfig ||= {}
nuxt.options.publicRuntimeConfig[pkgName] = mergedOptions

addPlugin(resolve(runtimeDir, 'plugin'))

const composableAutoImports = Object
.keys(prismicVue)
.filter(key => key.startsWith('use'))
.map((key) => {
return {
name: key,
as: key,
from: '@prismicio/vue'
}
})

addAutoImport(composableAutoImports)
}
})
8 changes: 8 additions & 0 deletions src/runtime/plugin.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { defineNuxtPlugin } from '#app'
import { createPrismic } from '@prismicio/vue'

import { name as pkgName } from '../../package.json'

export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(createPrismic(nuxtApp.payload.config[pkgName]))
})
2 changes: 1 addition & 1 deletion src/types.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
import { PrismicPluginOptions } from "@prismicio/vue";
import { PrismicPluginOptions } from '@prismicio/vue'

export type PrismicModuleOptions = PrismicPluginOptions;

0 comments on commit b1be73d

Please sign in to comment.