1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00
next.js/server/build/loaders/hot-self-accept-loader.js

24 lines
605 B
JavaScript
Raw Normal View History

2016-10-17 14:35:31 +00:00
import { resolve, relative } from 'path'
2016-10-14 15:05:08 +00:00
module.exports = function (content) {
this.cacheable()
2016-10-17 14:35:31 +00:00
const route = getRoute(this)
2016-10-14 15:05:08 +00:00
return content + `
if (module.hot) {
module.hot.accept()
if ('idle' !== module.hot.status()) {
const Component = module.exports.default || module.exports
2016-10-17 14:35:31 +00:00
next.router.update('${route}', Component)
2016-10-14 15:05:08 +00:00
}
}
`
}
2016-10-17 14:35:31 +00:00
function getRoute (loaderContext) {
const pagesDir = resolve(loaderContext.options.context, 'pages')
const path = loaderContext.resourcePath
return '/' + relative(pagesDir, path).replace(/((^|\/)index)?\.js$/, '')
}