Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const TemplateLoader: webpack.loader.Loader = function(source, inMap) {
source = String(source)
const loaderContext = this
// although this is not the main vue-loader, we can get access to the same
// vue-loader options because we've set an ident in the plugin and used that
// ident to create the request for this loader in the pitcher.
const options = (loaderUtils.getOptions(loaderContext) ||
{}) as VueLoaderOptions
// const isServer = loaderContext.target === 'node'
// const isProduction = options.productionMode || loaderContext.minimize || process.env.NODE_ENV === 'production'
const query = qs.parse(loaderContext.resourceQuery.slice(1))
const scopeId = query.scoped ? `data-v-${query.id}` : null
const compiled = compileTemplate({
source,
inMap,
filename: loaderContext.resourcePath,
compiler: options.compiler,
compilerOptions: {
...options.compilerOptions,
scopeId
},
transformAssetUrls: options.transformAssetUrls || true
})
// tips
if (compiled.tips.length) {
compiled.tips.forEach(tip => {
loaderContext.emitWarning(tip)
})
target,
sourceMap,
rootContext,
resourcePath,
resourceQuery
} = loaderContext
const rawQuery = resourceQuery.slice(1)
const incomingQuery = qs.parse(rawQuery)
const options = (loaderUtils.getOptions(loaderContext) ||
{}) as VueLoaderOptions
const isServer = target === 'node'
const isProduction = mode === 'production'
const { descriptor, errors } = parse(source, {
filename: resourcePath,
sourceMap
})
if (errors.length) {
errors.forEach(err => {
formatError(err, source, resourcePath)
loaderContext.emitError(err)
})
return ``
}
// if the query has a type field, this is a language block request
// e.g. foo.vue?type=template&id=xxxxx
// and we will return early
if (incomingQuery.type) {