Skip to content

Commit 97a5b1e

Browse files
lunsdorftivac
authored andcommitted
feat: option to suppress value export (#673)
Fixes #672
1 parent ac8ea56 commit 97a5b1e

File tree

4 files changed

+74
-9
lines changed

4 files changed

+74
-9
lines changed

packages/processor/README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,18 @@ new Processor({
224224
*/
225225
```
226226

227+
### `exportValues`
228+
229+
Enable exporting `@value` identifiers.
230+
231+
**Default**: `true`
232+
233+
```js
234+
new Processor({
235+
exportValues : false
236+
});
237+
```
238+
227239
## Properties
228240

229241
### `.files`

packages/processor/processor.js

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,14 @@ class Processor {
3737
const options = Object.assign(
3838
Object.create(null),
3939
{
40-
cwd : process.cwd(),
41-
map : false,
42-
rewrite : true,
43-
verbose : false,
44-
resolvers : [],
45-
postcss : {},
46-
dupewarn : true,
40+
cwd : process.cwd(),
41+
dupewarn : true,
42+
exportValues : true,
43+
map : false,
44+
postcss : {},
45+
resolvers : [],
46+
rewrite : true,
47+
verbose : false,
4748
},
4849
opts
4950
);
@@ -379,8 +380,11 @@ class Processor {
379380

380381
file.exports = Object.assign(
381382
Object.create(null),
382-
// export @value entries
383-
mapValues(file.values, ({ value }) => value),
383+
384+
// optionally export @value entries
385+
this._options.exportValues ?
386+
mapValues(file.values, ({ value }) => value) :
387+
null,
384388

385389
// export classes
386390
message(result, "classes"),

packages/processor/test/__snapshots__/options.test.js.snap

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,23 @@ Object {
88
}
99
`;
1010

11+
exports[`/processor.js options exportValues should not export @values by default 1`] = `
12+
Object {
13+
"a": "#F00",
14+
"b": Array [
15+
"mc61ce7a4a_b",
16+
],
17+
}
18+
`;
19+
20+
exports[`/processor.js options exportValues should not export @values when exportValues is false 1`] = `
21+
Object {
22+
"b": Array [
23+
"mc8df92ddf_b",
24+
],
25+
}
26+
`;
27+
1128
exports[`/processor.js options lifecycle options after should run async postcss plugins 1`] = `
1229
"/* packages/processor/test/specimens/relative.css */
1330
.wooga {

packages/processor/test/options.test.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,38 @@ describe("/processor.js", () => {
146146
});
147147
});
148148

149+
describe("exportValues", () => {
150+
it("should export @values by default", async () => {
151+
const processor = new Processor({});
152+
153+
const { exports } = await processor.string(
154+
"./exportValues.css",
155+
dedent(`
156+
@value a: #F00;
157+
.b {}
158+
`)
159+
);
160+
161+
expect(exports).toMatchSnapshot();
162+
});
163+
164+
it("should not export @values when exportValues is false", async () => {
165+
const processor = new Processor({
166+
exportValues : false,
167+
});
168+
169+
const { exports } = await processor.string(
170+
"./exportGlobals.css",
171+
dedent(`
172+
@value a: #F00;
173+
.b {}
174+
`)
175+
);
176+
177+
expect(exports).toMatchSnapshot();
178+
});
179+
});
180+
149181
describe("rewrite", () => {
150182
it("should rewrite url() references by default", async () => {
151183
const processor = new Processor();

0 commit comments

Comments
 (0)