-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathutils.js
33 lines (26 loc) · 1.08 KB
/
utils.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
exports.getImportCode = function(imports) {
let code = "";
for (const item of imports) {
const { importName, url } = item;
code += `import ${importName} from ${url};\n`;
}
return code ? `// Imports\n${code}` : "";
}
exports.getModuleCode = function(result, api, replacements) {
let code = JSON.stringify(result.css);
let beforeCode = `var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});\n`;
for (const item of api) {
beforeCode += `___CSS_LOADER_EXPORT___.i(${item.importName});\n`;
}
for (const item of replacements) {
const { replacementName, importName } = item;
beforeCode += `var ${replacementName} = ___CSS_LOADER_GET_URL_IMPORT___(${importName});\n`;
code = code.replace(new RegExp(replacementName, "g"), () => `" + ${replacementName} + "`);
}
return `${beforeCode}// Module\n___CSS_LOADER_EXPORT___.push([module.id, ${code}, ""]);\n`;
}
exports.getExportCode = function() {
let code = "// Exports\n";
code += `export default ___CSS_LOADER_EXPORT___;\n`;
return code;
}