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/emit-file-loader.js

25 lines
735 B
JavaScript
Raw Normal View History

2016-11-16 07:04:57 +00:00
import loaderUtils from 'loader-utils'
2016-10-15 16:17:27 +00:00
module.exports = function (content, sourceMap) {
2016-10-15 16:17:27 +00:00
this.cacheable()
2016-11-16 07:04:57 +00:00
const query = loaderUtils.parseQuery(this.query)
2016-10-15 16:17:27 +00:00
const name = query.name || '[hash].[ext]'
const context = query.context || this.options.context
const regExp = query.regExp
const opts = { context, content, regExp }
2016-11-16 07:04:57 +00:00
const interpolatedName = loaderUtils.interpolateName(this, name, opts)
2016-10-15 16:17:27 +00:00
const emit = (code, map) => {
this.emitFile(interpolatedName, code, map)
this.callback(null, code, map)
}
2016-10-15 16:17:27 +00:00
if (query.transform) {
const transformed = query.transform({ content, sourceMap, interpolatedName })
return emit(transformed.content, transformed.sourceMap)
}
return emit(content, sourceMap)
2016-10-15 16:17:27 +00:00
}