mirror of
https://github.com/nuxt/nuxt.git
synced 2025-02-18 14:41:25 +00:00
27 lines
601 B
TypeScript
27 lines
601 B
TypeScript
|
|
||
|
import { NuxtApp } from './app'
|
||
|
import { Builder } from './builder'
|
||
|
import { resolveFiles } from './utils'
|
||
|
|
||
|
export interface NuxtPlugin {
|
||
|
src: string
|
||
|
mode: 'server' | 'client' | 'all'
|
||
|
}
|
||
|
|
||
|
const MODES_REGEX = /\.(server|client)(\.\w+)*$/
|
||
|
const getPluginMode = (src) => {
|
||
|
const [, mode = 'all'] = src.match(MODES_REGEX) || []
|
||
|
|
||
|
return mode
|
||
|
}
|
||
|
|
||
|
export function resolvePlugins (builder: Builder, app: NuxtApp) {
|
||
|
return resolveFiles(builder, 'plugins/**/*.{js,ts}', app.dir)
|
||
|
.then(plugins => plugins.map((src) => {
|
||
|
return {
|
||
|
src,
|
||
|
mode: getPluginMode(src)
|
||
|
}
|
||
|
}))
|
||
|
}
|