@compiled/parcel-transformer 0.12.1 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -17,13 +17,14 @@ const configFiles = [
17
17
  'compiledcss.js',
18
18
  'compiledcss.config.js',
19
19
  ];
20
+ const packageKey = '@compiled/parcel-transformer';
20
21
  /**
21
22
  * Compiled parcel transformer.
22
23
  */
23
24
  exports.default = new plugin_1.Transformer({
24
25
  async loadConfig({ config, options }) {
25
26
  const conf = await config.getConfigFrom((0, path_1.join)(options.projectRoot, 'index'), configFiles, {
26
- packageKey: '@compiled/parcel-transformer',
27
+ packageKey,
27
28
  });
28
29
  const contents = {
29
30
  extract: false,
@@ -34,6 +35,20 @@ exports.default = new plugin_1.Transformer({
34
35
  if (conf.filePath.endsWith('.js')) {
35
36
  config.invalidateOnStartup();
36
37
  }
38
+ // Use `classNameCompressionMapFilePath` to get classNameCompressionMap
39
+ // Note `classNameCompressionMap` and `classNameCompressionMapFilePath` are mutually exclusive.
40
+ // If both are provided, classNameCompressionMap takes precedence.
41
+ if (!conf.contents.classNameCompressionMap && conf.contents.classNameCompressionMapFilePath) {
42
+ // Use `getConfigFrom` from Parcel so the contents are cached at `.parcel-cache`
43
+ const configClassNameCompressionMap = await config.getConfigFrom((0, path_1.join)(options.projectRoot, 'index'), [conf.contents.classNameCompressionMapFilePath], {
44
+ packageKey,
45
+ });
46
+ if (configClassNameCompressionMap === null || configClassNameCompressionMap === void 0 ? void 0 : configClassNameCompressionMap.contents) {
47
+ Object.assign(contents, {
48
+ classNameCompressionMap: configClassNameCompressionMap === null || configClassNameCompressionMap === void 0 ? void 0 : configClassNameCompressionMap.contents,
49
+ });
50
+ }
51
+ }
37
52
  Object.assign(contents, conf.contents);
38
53
  }
39
54
  return contents;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -41,5 +41,13 @@ export interface ParcelTransformerOpts extends BabelPluginOpts {
41
41
  classNameCompressionMap?: {
42
42
  [index: string]: string;
43
43
  };
44
+ /**
45
+ * File path to classNameCompressionMap. It's relative to project root.
46
+ * Note `classNameCompressionMap` and `classNameCompressionMapFilePath` are mutually exclusive.
47
+ * If both are provided, classNameCompressionMap takes precedence.
48
+ *
49
+ * Default to `undefined`
50
+ */
51
+ classNameCompressionMapFilePath?: string;
44
52
  }
45
53
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@compiled/parcel-transformer",
3
- "version": "0.12.1",
3
+ "version": "0.13.0",
4
4
  "description": "A familiar and performant compile time CSS-in-JS library for React.",
5
5
  "homepage": "https://compiledcssinjs.com/docs/pkg-parcel-transformer",
6
6
  "bugs": "https://github.com/atlassian-labs/compiled/issues/new?assignees=&labels=bug&template=bug_report.md",
@@ -20,11 +20,11 @@
20
20
  "src"
21
21
  ],
22
22
  "dependencies": {
23
- "@babel/core": "^7.21.0",
24
- "@babel/generator": "^7.21.1",
25
- "@compiled/babel-plugin": "^0.18.1",
26
- "@compiled/babel-plugin-strip-runtime": "^0.18.0",
27
- "@compiled/utils": "^0.7.0",
23
+ "@babel/core": "^7.21.4",
24
+ "@babel/generator": "^7.21.4",
25
+ "@compiled/babel-plugin": "^0.19.0",
26
+ "@compiled/babel-plugin-strip-runtime": "^0.19.0",
27
+ "@compiled/utils": "^0.8.0",
28
28
  "@parcel/plugin": "^2.8.3",
29
29
  "@parcel/source-map": "^2.1.1",
30
30
  "enhanced-resolve": "^5.12.0"
@@ -7,6 +7,10 @@ import { format } from 'prettier';
7
7
  const rootPath = join(__dirname, '..', '..', '..', '..');
8
8
  const fixtureRoot = join(rootPath, 'fixtures/parcel-transformer-test-app');
9
9
  const extractionFixtureRoot = join(rootPath, 'fixtures/parcel-transformer-test-extract-app');
10
+ const compressingClassNameFixtureRoot = join(
11
+ rootPath,
12
+ 'fixtures/parcel-transformer-test-compress-class-name-app'
13
+ );
10
14
  const customResolverFixtureRoot = join(
11
15
  rootPath,
12
16
  'fixtures/parcel-transformer-test-custom-resolver-app'
@@ -205,3 +209,36 @@ it('transforms assets with compiled and extraction babel plugins', async () => {
205
209
  }"
206
210
  `);
207
211
  }, 50000);
212
+
213
+ it('transforms assets with class name compression enabled', async () => {
214
+ const parcel = getParcelInstance(compressingClassNameFixtureRoot);
215
+ const { changedAssets, bundleGraph } = await parcel.run();
216
+
217
+ const htmlAsset = Array.from(changedAssets.values()).find(
218
+ (asset) => asset.filePath === join(compressingClassNameFixtureRoot, '/src/index.html')
219
+ );
220
+
221
+ const outputHtml = await outputFS.readFile(
222
+ bundleGraph.getBundlesWithAsset(htmlAsset!)[0].filePath,
223
+ 'utf8'
224
+ );
225
+
226
+ const css = /<style>(.*?)<\/style>/.exec(outputHtml)?.pop();
227
+
228
+ if (!css) throw new Error('No CSS is found.');
229
+
230
+ expect(
231
+ format(css, {
232
+ parser: 'css',
233
+ singleQuote: true,
234
+ })
235
+ ).toMatchInlineSnapshot(`
236
+ ".a {
237
+ font-size: 50px;
238
+ }
239
+ .b {
240
+ color: red;
241
+ }
242
+ "
243
+ `);
244
+ }, 50000);
package/src/index.ts CHANGED
@@ -22,16 +22,22 @@ const configFiles = [
22
22
  'compiledcss.config.js',
23
23
  ];
24
24
 
25
+ const packageKey = '@compiled/parcel-transformer';
26
+
25
27
  /**
26
28
  * Compiled parcel transformer.
27
29
  */
28
30
  export default new Transformer<ParcelTransformerOpts>({
29
31
  async loadConfig({ config, options }) {
30
- const conf = await config.getConfigFrom(join(options.projectRoot, 'index'), configFiles, {
31
- packageKey: '@compiled/parcel-transformer',
32
- });
32
+ const conf = await config.getConfigFrom<ParcelTransformerOpts>(
33
+ join(options.projectRoot, 'index'),
34
+ configFiles,
35
+ {
36
+ packageKey,
37
+ }
38
+ );
33
39
 
34
- const contents = {
40
+ const contents: ParcelTransformerOpts = {
35
41
  extract: false,
36
42
  importReact: true,
37
43
  ssr: false,
@@ -42,6 +48,26 @@ export default new Transformer<ParcelTransformerOpts>({
42
48
  config.invalidateOnStartup();
43
49
  }
44
50
 
51
+ // Use `classNameCompressionMapFilePath` to get classNameCompressionMap
52
+ // Note `classNameCompressionMap` and `classNameCompressionMapFilePath` are mutually exclusive.
53
+ // If both are provided, classNameCompressionMap takes precedence.
54
+ if (!conf.contents.classNameCompressionMap && conf.contents.classNameCompressionMapFilePath) {
55
+ // Use `getConfigFrom` from Parcel so the contents are cached at `.parcel-cache`
56
+ const configClassNameCompressionMap = await config.getConfigFrom(
57
+ join(options.projectRoot, 'index'),
58
+ [conf.contents.classNameCompressionMapFilePath],
59
+ {
60
+ packageKey,
61
+ }
62
+ );
63
+
64
+ if (configClassNameCompressionMap?.contents) {
65
+ Object.assign(contents, {
66
+ classNameCompressionMap: configClassNameCompressionMap?.contents,
67
+ });
68
+ }
69
+ }
70
+
45
71
  Object.assign(contents, conf.contents);
46
72
  }
47
73
 
package/src/types.ts CHANGED
@@ -47,4 +47,13 @@ export interface ParcelTransformerOpts extends BabelPluginOpts {
47
47
  * Default to `undefined`
48
48
  */
49
49
  classNameCompressionMap?: { [index: string]: string };
50
+
51
+ /**
52
+ * File path to classNameCompressionMap. It's relative to project root.
53
+ * Note `classNameCompressionMap` and `classNameCompressionMapFilePath` are mutually exclusive.
54
+ * If both are provided, classNameCompressionMap takes precedence.
55
+ *
56
+ * Default to `undefined`
57
+ */
58
+ classNameCompressionMapFilePath?: string;
50
59
  }