Skip to content

Commit 57d19be

Browse files
refactor: code and tests
1 parent 4781d81 commit 57d19be

File tree

4 files changed

+1010
-3413
lines changed

4 files changed

+1010
-3413
lines changed

src/index.js

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -117,54 +117,58 @@ export default function loader(content, map, meta) {
117117
exportOnlyLocals
118118
);
119119

120-
const exports = getExports(
120+
const exportItems = getExports(
121121
messages,
122122
exportLocalsStyle,
123123
importItemReplacer
124124
);
125125

126+
const exportsCode =
127+
exportItems.length > 0
128+
? exportOnlyLocals
129+
? `module.exports = {\n${exportItems.join(',\n')}\n};`
130+
: `// Exports\nexports.locals = {\n${exportItems.join(',\n')}\n};`
131+
: '';
132+
126133
if (exportOnlyLocals) {
127-
return callback(
128-
null,
129-
exports.length > 0
130-
? `module.exports = {\n${exports.join(',\n')}\n};`
131-
: ''
132-
);
134+
return callback(null, exportsCode);
133135
}
134136

135137
let cssAsString = JSON.stringify(result.css).replace(
136138
placholderRegExps.importItemG,
137139
importItemReplacer
138140
);
139141

140-
const imports = getImports(messages, importPrefix, this, (message) => {
141-
if (message.type !== 'url') {
142-
return;
143-
}
142+
const importItems = getImports(
143+
messages,
144+
importPrefix,
145+
this,
146+
(message) => {
147+
if (message.type !== 'url') {
148+
return;
149+
}
144150

145-
const { placeholder } = message.item;
151+
const { placeholder } = message.item;
146152

147-
cssAsString = cssAsString.replace(
148-
new RegExp(placeholder, 'g'),
149-
() => `" + ${placeholder} + "`
150-
);
151-
});
153+
cssAsString = cssAsString.replace(
154+
new RegExp(placeholder, 'g'),
155+
() => `" + ${placeholder} + "`
156+
);
157+
}
158+
);
152159

153160
const runtimeCode = `exports = module.exports = require(${stringifyRequest(
154161
this,
155162
require.resolve('./runtime/api')
156163
)})(${!!sourceMap});\n`;
157164
const importCode =
158-
imports.length > 0 ? `// Imports\n${imports.join('\n')}\n\n` : '';
165+
importItems.length > 0
166+
? `// Imports\n${importItems.join('\n')}\n\n`
167+
: '';
159168
const moduleCode = `// Module\nexports.push([module.id, ${cssAsString}, ""${
160169
result.map ? `,${result.map}` : ''
161170
}]);\n\n`;
162-
const exportsCode =
163-
exports.length > 0
164-
? `// Exports\nexports.locals = {\n${exports.join(',\n')}\n};`
165-
: '';
166171

167-
// Embed runtime
168172
return callback(
169173
null,
170174
runtimeCode + importCode + moduleCode + exportsCode

0 commit comments

Comments
 (0)