Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if (map.sources) {
map.sources = map.sources.map(function (source) {
return source.replace(/\\/g, '/');
});
map.sourceRoot = '';
}
}
} else {
// Some loaders (example `"postcss-loader": "1.x.x"`) always generates source map, we should remove it
map = null;
}
processCss(content, map, {
mode: moduleMode ? "local" : "global",
from: loaderUtils.getRemainingRequest(this).split("!").pop(),
to: loaderUtils.getCurrentRequest(this).split("!").pop(),
query: query,
resolve: resolve,
minimize: this.minimize,
loaderContext: this,
sourceMap: sourceMap
}, function(err, result) {
if(err) return callback(err);
var cssAsString = JSON.stringify(result.source);
// for importing CSS
var importUrlPrefix = getImportPrefix(this, query);
var alreadyImported = {};
var importJs = result.importItems.filter(function(imp) {
if(!imp.mediaQuery) {
if (map.sources) {
map.sources = map.sources.map(function (source) {
return source.replace(/\\/g, '/');
});
map.sourceRoot = '';
}
}
} else {
// Some loaders (example `"postcss-loader": "1.x.x"`) always generates source map, we should remove it
map = null;
}
processCss(content, map, {
mode: moduleMode ? "local" : "global",
from: loaderUtils.getRemainingRequest(this).split("!").pop(),
to: loaderUtils.getCurrentRequest(this).split("!").pop(),
query: query,
resolve: resolve,
minimize: this.minimize,
loaderContext: this,
sourceMap: sourceMap
}, function(err, result) {
if(err) return callback(err);
var cssAsString = JSON.stringify(result.source);
// for importing CSS
var importUrlPrefix = getImportPrefix(this, query);
var alreadyImported = {};
var importJs = result.importItems.filter(function(imp) {
if(!imp.mediaQuery) {
if (map.sources) {
map.sources = map.sources.map(function (source) {
return source.replace(/\\/g, '/');
});
map.sourceRoot = '';
}
}
} else {
// Some loaders (example `"postcss-loader": "1.x.x"`) always generates source map, we should remove it
map = null;
}
processCss(content, map, {
mode: moduleMode ? "local" : "global",
from: loaderUtils.getRemainingRequest(this).split("!").pop(),
to: loaderUtils.getCurrentRequest(this).split("!").pop(),
query: query,
resolve: resolve,
minimize: this.minimize,
loaderContext: this,
sourceMap: sourceMap
}, function(err, result) {
if(err) return callback(err);
var cssAsString = JSON.stringify(result.source);
// for importing CSS
var importUrlPrefix = getImportPrefix(this, query);
var alreadyImported = {};
var importJs = result.importItems.filter(function(imp) {
if(!imp.mediaQuery) {
"\tvar styles = require('./"+elementName+"."+styleExtension+"');",
"\tvar el = document.createElement('div');",
"\tel.setAttribute('name', '"+elementName+"')",
"\tel.setAttribute('hidden','')",
"\tel.innerHTML = '<template><style>'+styles+'</style></template>';",
"\tdocument.body.appendChild(el);",
"})(document);"
].join('\n');
}
// support existing SourceMap
// https://github.com/mozilla/source-map#sourcenode
// https://github.com/webpack/imports-loader/blob/master/index.js#L34-L44
// https://webpack.github.io/docs/loaders.html#writing-a-loader
if (sourceMap) {
var currentRequest = loaderUtils.getCurrentRequest(this);
var SourceNode = SourceMap.SourceNode;
var SourceMapConsumer = SourceMap.SourceMapConsumer;
var sourceMapConsumer = new SourceMapConsumer(sourceMap);
var node = SourceNode.fromStringWithSourceMap(source, sourceMapConsumer);
node.prepend(inject);
var result = node.toStringWithSourceMap({
file: currentRequest
});
this.callback(null, result.code, result.map.toJSON());
return;
}
export function appendCodeAndCallback(loader: Webpack.Core.LoaderContext, source: string, inject: string, sourceMap?: SourceMap.RawSourceMap, synchronousIfPossible = false) {
inject += (!source.trim().endsWith(';')) ? ';\n' : '\n'
// support existing SourceMap
// https://github.com/mozilla/source-map#sourcenode
// https://github.com/webpack/imports-loader/blob/master/index.js#L34-L44
// https://webpack.github.io/docs/loaders.html#writing-a-loader
if (sourceMap) {
const currentRequest = loaderUtils.getCurrentRequest(loader)
const SourceNode = SourceMap.SourceNode
const SourceMapConsumer = SourceMap.SourceMapConsumer
const sourceMapConsumer = new SourceMapConsumer(sourceMap)
const node = SourceNode.fromStringWithSourceMap(source, sourceMapConsumer)
node.add(inject)
const result = node.toStringWithSourceMap({
file: currentRequest
})
loader.callback(null, result.code, result.map.toJSON())
} else {
if (synchronousIfPossible) {
return inject ? source + inject : source
} else {
module.exports = function(source) {
this.cacheable && this.cacheable();
const sourceFilename = loaderUtils.getRemainingRequest(this);
const current = loaderUtils.getCurrentRequest(this);
const query = loaderUtils.parseQuery(this.query);
// For some reason, Babel doesn't use .babelrc here; maybe because we're
// in a subfolder.
const options = _.extend({}, babelrc, {
sourceMaps: query.sourceMap,
});
const transform = babel.transform(source, options);
// NOTE(charlie): If we remove these additional transforms, we can use the
// standard babel-loader.
if (includeEditor) {
// TODO(emily): Do this with a real AST transform.
transform.code = transform.code.replace(/__EDITOR__/g, "true");
} else {
// When removing editors, we use uglifyjs to strip out dead code from
module.exports = function(content, sourceMap) {
var useStrictPrefix = '\'use strict\';\n\n';
if (this.cacheable) {
this.cacheable();
}
// source-map
var options = loaderUtils.getOptions(this) || {};
if (options.sourceMap && sourceMap) {
var currentRequest = loaderUtils.getCurrentRequest(this);
var node = SourceNode.fromStringWithSourceMap(
content,
new SourceMapConsumer(sourceMap)
);
node.prepend(useStrictPrefix);
var result = node.toStringWithSourceMap({ file: currentRequest });
this.callback(null, result.code, result.map.toJSON());
return;
}
return useStrictPrefix + content;
};
module.exports = function shimLoader(code, sourcemap) {
// cacheable loader
this.cacheable();
const shim = getShim(this);
if (typeof shim !== 'undefined') {
const [requestedModule, shimConfig] = shim;
const file = getCurrentRequest(this);
const result = transform(requestedModule, code, sourcemap, file, shimConfig);
this.callback(null, result.source, result.map);
return;
}
if (sourcemap) {
this.callback(null, code, sourcemap);
return;
}
return code;
};
function GroupCssMediaQueriesLoader(inputSource, prevMap, meta) {
const options = getOptions(this) || {};
const sourceMap =
options.sourceMap === undefined
? this.sourceMap
: Boolean(options.sourceMap);
const callback = this.async();
pipeline
.process(inputSource, {
from: getRemainingRequest(this)
.split("!")
.pop(),
to: getCurrentRequest(this)
.split("!")
.pop(),
map: sourceMap
? {
prev: prevMap,
sourcesContent: true,
inline: false,
annotation: false
}
: null
})
.then(result => {
callback(null, result.css, result.map && result.map.toJSON(), meta);
})
.catch(callback);
}
module.exports = function(source) {
var loader = this;
loader.async();
var config = loaderUtils.parseQuery(loader.query);
var loaderRequest = loaderUtils.getCurrentRequest(this);
var fileRequest = loaderUtils.getRemainingRequest(this);
config.modules = config.modules || [];
RSVP.all(config.modules.map(function(mod) {
if(moduleCache[mod]) {
return moduleCache[mod];
}
return resolve(loader, mod).then(function(res) {
moduleCache[mod] = sweet.loadNodeModule(process.cwd(), res);
return moduleCache[mod];
});
})).then(function(modules) {
if(config.readers) {
return RSVP.all(config.readers.map(function(mod) {
return resolve(loader, mod).then(function(res) {
sweet.setReadtable(res);