Skip to content

Commit 2b4f583

Browse files
committed
refactor(processRenderResponse): refine namedExports code generation
1 parent 8e9dad0 commit 2b4f583

File tree

3 files changed

+14
-22
lines changed

3 files changed

+14
-22
lines changed

src/utils/processRenderResponse.ts

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ export const processRenderResponse = (
3434
.then(
3535
(
3636
result: Partial<RollupPluginSassProcessorFnOutput>,
37-
): [string, string, Record<string, string>?] => {
37+
): [string, Record<string, unknown>, Record<string, string>?] => {
3838
if (!isObject(result)) {
39-
return [result, ''];
39+
return [result, {}];
4040
}
4141

4242
if (!isString(result.css)) {
@@ -55,18 +55,8 @@ export const processRenderResponse = (
5555
);
5656
}
5757

58-
const { css: outCss, cssModules } = result;
59-
60-
// Remove "reserved" keys to avoid to add them inside additional exports
61-
delete result.css;
62-
delete result.cssModules;
63-
64-
const namedExports = Object.keys(result).reduce(
65-
(agg, name) =>
66-
agg + `export const ${name} = ${JSON.stringify(result[name])};\n`,
67-
'',
68-
);
69-
return [outCss, namedExports, cssModules] as const;
58+
const { css, cssModules, ...namedExports } = result;
59+
return [css, namedExports, cssModules];
7060
},
7161
)
7262

@@ -99,14 +89,18 @@ export const processRenderResponse = (
9989
path.basename(fileId, path.extname(fileId)),
10090
);
10191

102-
const codeOutput = [
92+
const codeOutput: string[] = [
10393
...imports,
94+
10495
`var ${variableName} = ${defaultExport};`,
10596
`export default ${cssModules ? JSON.stringify(cssModules) : variableName};`,
106-
namedExports,
107-
].join('\n');
10897

109-
return codeOutput;
98+
...Object.entries(namedExports).map(
99+
([n, v]) => `export const ${n} = ${JSON.stringify(v)};`,
100+
),
101+
];
102+
103+
return codeOutput.join('\n');
110104
})
111105
); // @note do not `catch` here - let error propagate to rollup level
112106
};

test/snapshots/test/index.test.ts.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -371,13 +371,11 @@ Generated by [AVA](https://avajs.dev).
371371
> Final content output
372372
373373
`var style1 = "body{color:blue}body{color:#fff}body{color:red}";␊
374-
export default style1;␊
375-
`
374+
export default style1;`
376375

377376
## module stylesheets graph should be added to watch list using 'api' = 'modern'
378377

379378
> Final content output
380379
381380
`var style1 = "body{color:blue}body{color:#fff}body{color:red}";␊
382-
export default style1;␊
383-
`
381+
export default style1;`
0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)