29 lines
682 B
JavaScript
29 lines
682 B
JavaScript
|
import { resolve } from 'node:path'
|
||
|
import { readFile } from 'node:fs/promises'
|
||
|
|
||
|
const target = 'node_modules/msw/lib/mockServiceWorker.js'
|
||
|
|
||
|
const mswPlugin = () => {
|
||
|
let projectRoot
|
||
|
return {
|
||
|
name: 'msw-plugin',
|
||
|
apply: 'serve',
|
||
|
configResolved (conf) {
|
||
|
projectRoot = conf.root
|
||
|
},
|
||
|
configureServer (server) {
|
||
|
server.middlewares.use(async (req, res, next) => {
|
||
|
if (req.path === '/mockServiceWorker.js') {
|
||
|
const file = await readFile(resolve(projectRoot, target))
|
||
|
res.set('Content-Type', 'text/javascript')
|
||
|
res.send(file)
|
||
|
} else {
|
||
|
next()
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export default mswPlugin
|