@compiled/parcel-transformer 0.9.1 → 0.10.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.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Transformer } from '@parcel/plugin';
2
2
  import type { ParcelTransformerOpts } from './types';
3
- declare const _default: Transformer<ParcelTransformerOpts>;
4
3
  /**
5
4
  * Compiled parcel transformer.
6
5
  */
6
+ declare const _default: Transformer<ParcelTransformerOpts>;
7
7
  export default _default;
package/dist/index.js CHANGED
@@ -3,12 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = __importDefault(require("fs"));
6
7
  const path_1 = require("path");
7
8
  const core_1 = require("@babel/core");
8
9
  const generator_1 = __importDefault(require("@babel/generator"));
9
10
  const utils_1 = require("@compiled/utils");
10
11
  const plugin_1 = require("@parcel/plugin");
11
12
  const source_map_1 = __importDefault(require("@parcel/source-map"));
13
+ const enhanced_resolve_1 = require("enhanced-resolve");
12
14
  const configFiles = [
13
15
  '.compiledcssrc',
14
16
  '.compiledcssrc.json',
@@ -66,7 +68,7 @@ exports.default = new plugin_1.Transformer({
66
68
  };
67
69
  },
68
70
  async transform({ asset, config }) {
69
- var _a, _b;
71
+ var _a, _b, _c;
70
72
  const ast = await asset.getAST();
71
73
  if (!ast) {
72
74
  // We will only receive ASTs for assets we're interested in.
@@ -75,6 +77,11 @@ exports.default = new plugin_1.Transformer({
75
77
  }
76
78
  const includedFiles = [];
77
79
  const code = asset.isASTDirty() ? undefined : await asset.getCode();
80
+ const resolver = enhanced_resolve_1.ResolverFactory.createResolver(Object.assign(Object.assign(Object.assign({ fileSystem: new enhanced_resolve_1.CachedInputFileSystem(fs_1.default, 4000) }, (config.extensions && {
81
+ extensions: config.extensions,
82
+ })), ((_a = config.resolve) !== null && _a !== void 0 ? _a : {})), {
83
+ // This makes the resolver invoke the callback synchronously
84
+ useSyncFileSystemCalls: true }));
78
85
  const result = await (0, core_1.transformFromAstAsync)(ast.program, code, {
79
86
  code: true,
80
87
  ast: false,
@@ -83,13 +90,18 @@ exports.default = new plugin_1.Transformer({
83
90
  configFile: false,
84
91
  sourceMaps: true,
85
92
  parserOpts: {
86
- plugins: (_a = config.parserBabelPlugins) !== null && _a !== void 0 ? _a : undefined,
93
+ plugins: (_b = config.parserBabelPlugins) !== null && _b !== void 0 ? _b : undefined,
87
94
  },
88
95
  plugins: [
89
- ...((_b = config.transformerBabelPlugins) !== null && _b !== void 0 ? _b : []),
96
+ ...((_c = config.transformerBabelPlugins) !== null && _c !== void 0 ? _c : []),
90
97
  asset.isSource && [
91
98
  '@compiled/babel-plugin',
92
- Object.assign(Object.assign({}, config), { onIncludedFiles: (files) => includedFiles.push(...files), cache: false }),
99
+ Object.assign(Object.assign({}, config), { onIncludedFiles: (files) => includedFiles.push(...files), resolver: {
100
+ // The resolver needs to be synchronous, as babel plugins must be synchronous
101
+ resolveSync: (context, request) => {
102
+ return resolver.resolveSync({}, (0, path_1.dirname)(context), request);
103
+ },
104
+ }, cache: false }),
93
105
  ],
94
106
  config.extract && [
95
107
  '@compiled/babel-plugin-strip-runtime',
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
@@ -1,6 +1,7 @@
1
1
  import type { PluginItem } from '@babel/core';
2
2
  import type { PluginOptions } from '@compiled/babel-plugin';
3
- declare type BabelPluginOpts = Omit<PluginOptions, 'cache' | 'onIncludedFiles'>;
3
+ import type { ResolveOptions } from 'enhanced-resolve';
4
+ declare type BabelPluginOpts = Omit<PluginOptions, 'cache' | 'onIncludedFiles' | 'resolver'>;
4
5
  export interface ParcelTransformerOpts extends BabelPluginOpts {
5
6
  extract?: boolean;
6
7
  stylesheetPath?: string;
@@ -15,5 +16,15 @@ export interface ParcelTransformerOpts extends BabelPluginOpts {
15
16
  * Defaults to `false`.
16
17
  */
17
18
  ssr?: boolean;
19
+ /**
20
+ * Will run additional cssnano plugins to normalize CSS during build.
21
+ *
22
+ * Default to `true`.
23
+ */
24
+ optimizeCss?: boolean;
25
+ /**
26
+ * Override the default `resolve` used by @compiled/babel-plugin, which is used to statically evaluate import declarations
27
+ */
28
+ resolve?: ResolveOptions;
18
29
  }
19
30
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@compiled/parcel-transformer",
3
- "version": "0.9.1",
3
+ "version": "0.10.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",
@@ -22,11 +22,12 @@
22
22
  "dependencies": {
23
23
  "@babel/core": "^7.17.10",
24
24
  "@babel/generator": "^7.17.10",
25
- "@compiled/babel-plugin": "^0.16.0",
25
+ "@compiled/babel-plugin": "^0.16.5",
26
26
  "@compiled/babel-plugin-strip-runtime": "^0.16.0",
27
27
  "@compiled/utils": "^0.6.16",
28
28
  "@parcel/plugin": "^2.3.2",
29
- "@parcel/source-map": "^2.0.2"
29
+ "@parcel/source-map": "^2.0.2",
30
+ "enhanced-resolve": "^5.10.0"
30
31
  },
31
32
  "devDependencies": {
32
33
  "@parcel/core": "^2.3.1",
@@ -6,6 +6,10 @@ import { MemoryFS } from '@parcel/fs';
6
6
  const rootPath = join(__dirname, '..', '..', '..', '..');
7
7
  const fixtureRoot = join(rootPath, 'fixtures/parcel-transformer-test-app');
8
8
  const extractionFixtureRoot = join(rootPath, 'fixtures/parcel-transformer-test-extract-app');
9
+ const customResolverFixtureRoot = join(
10
+ rootPath,
11
+ 'fixtures/parcel-transformer-test-custom-resolver-app'
12
+ );
9
13
  const babelComponentFixture = join(rootPath, 'fixtures/babel-component');
10
14
 
11
15
  const workerFarm = createWorkerFarm();
@@ -68,6 +72,19 @@ it('transforms assets with babel plugin', async () => {
68
72
  `);
69
73
  }, 50000);
70
74
 
75
+ it('transforms assets with custom resolver and statically evaluates imports', async () => {
76
+ const parcel = getParcelInstance(customResolverFixtureRoot);
77
+ const { changedAssets } = await parcel.run();
78
+
79
+ const asset = Array.from(changedAssets.values()).find(
80
+ (asset) => asset.filePath === join(customResolverFixtureRoot, 'src/index.jsx')
81
+ );
82
+
83
+ const code = await asset?.getCode();
84
+
85
+ expect(code).toInclude('color:red');
86
+ }, 50000);
87
+
71
88
  it('transforms assets with compiled and extraction babel plugins', async () => {
72
89
  const parcel = getParcelInstance(extractionFixtureRoot);
73
90
  const { changedAssets } = await parcel.run();
@@ -121,10 +138,10 @@ it('transforms assets with compiled and extraction babel plugins', async () => {
121
138
  expect(extractedCss).toMatchInlineSnapshot(`
122
139
  "/* index.jsx generated by @compiled/babel-plugin v0.0.0 */ \\"use strict\\";
123
140
  require(\\"compiled-css!?style=._19pk1ul9%7Bmargin-top%3A30px%7D\\");
124
- require(\\"compiled-css!?style=._19bvftgi%7Bpadding-left%3A8px%7D\\");
125
- require(\\"compiled-css!?style=._n3tdftgi%7Bpadding-bottom%3A8px%7D\\");
126
- require(\\"compiled-css!?style=._u5f3ftgi%7Bpadding-right%3A8px%7D\\");
127
- require(\\"compiled-css!?style=._ca0qftgi%7Bpadding-top%3A8px%7D\\");
141
+ require(\\"compiled-css!?style=._19bv1vi7%7Bpadding-left%3A32px%7D\\");
142
+ require(\\"compiled-css!?style=._n3td1vi7%7Bpadding-bottom%3A32px%7D\\");
143
+ require(\\"compiled-css!?style=._u5f31vi7%7Bpadding-right%3A32px%7D\\");
144
+ require(\\"compiled-css!?style=._ca0q1vi7%7Bpadding-top%3A32px%7D\\");
128
145
  require(\\"compiled-css!?style=._19itlf8h%7Bborder%3A2px%20solid%20blue%7D\\");
129
146
  require(\\"compiled-css!?style=._1wyb1ul9%7Bfont-size%3A30px%7D\\");
130
147
  require(\\"compiled-css!?style=._syaz13q2%7Bcolor%3Ablue%7D\\");
@@ -137,16 +154,16 @@ it('transforms assets with compiled and extraction babel plugins', async () => {
137
154
  ?.slice(babelComponentCode.indexOf('var Button'))
138
155
  .trim();
139
156
  expect(extractedComponent).toMatchInlineSnapshot(`
140
- "var Button = (0, _react.forwardRef)(function(_ref, ref) {
141
- var _ref$as = _ref.as, C = _ref$as === void 0 ? \\"button\\" : _ref$as, style = _ref.style, props = _objectWithoutProperties(_ref, _excluded);
157
+ "var Button = (0, _react.forwardRef)(function(_ref, __cmplr) {
158
+ var _ref$as = _ref.as, C = _ref$as === void 0 ? \\"button\\" : _ref$as, __cmpls = _ref.style, __cmplp = _objectWithoutProperties(_ref, _excluded);
142
159
  return (0, _jsxRuntime.jsx)(C, _objectSpread(_objectSpread({
143
- }, props), {
160
+ }, __cmplp), {
144
161
  }, {
145
- style: style,
146
- ref: ref,
162
+ style: __cmpls,
163
+ ref: __cmplr,
147
164
  className: (0, _runtime.ax)([
148
- \\"_syaz13q2 _1wyb1ul9 _19itlf8h _ca0qftgi _u5f3ftgi _n3tdftgi _19bvftgi\\",
149
- props.className
165
+ \\"_syaz13q2 _1wyb1ul9 _19itlf8h _ca0q1vi7 _u5f31vi7 _n3td1vi7 _19bv1vi7\\",
166
+ __cmplp.className
150
167
  ])
151
168
  }));
152
169
  });
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { join } from 'path';
1
+ import fs from 'fs';
2
+ import { join, dirname } from 'path';
2
3
 
3
4
  import { parseAsync, transformFromAstAsync } from '@babel/core';
4
5
  import generate from '@babel/generator';
@@ -7,6 +8,7 @@ import type { PluginOptions as BabelStripRuntimePluginOptions } from '@compiled/
7
8
  import { toBoolean } from '@compiled/utils';
8
9
  import { Transformer } from '@parcel/plugin';
9
10
  import SourceMap from '@parcel/source-map';
11
+ import { CachedInputFileSystem, ResolverFactory } from 'enhanced-resolve';
10
12
 
11
13
  import type { ParcelTransformerOpts } from './types';
12
14
 
@@ -86,6 +88,16 @@ export default new Transformer<ParcelTransformerOpts>({
86
88
  const includedFiles: string[] = [];
87
89
  const code = asset.isASTDirty() ? undefined : await asset.getCode();
88
90
 
91
+ const resolver = ResolverFactory.createResolver({
92
+ fileSystem: new CachedInputFileSystem(fs, 4000),
93
+ ...(config.extensions && {
94
+ extensions: config.extensions,
95
+ }),
96
+ ...(config.resolve ?? {}),
97
+ // This makes the resolver invoke the callback synchronously
98
+ useSyncFileSystemCalls: true,
99
+ });
100
+
89
101
  const result = await transformFromAstAsync(ast.program, code, {
90
102
  code: true,
91
103
  ast: false,
@@ -103,6 +115,12 @@ export default new Transformer<ParcelTransformerOpts>({
103
115
  {
104
116
  ...config,
105
117
  onIncludedFiles: (files: string[]) => includedFiles.push(...files),
118
+ resolver: {
119
+ // The resolver needs to be synchronous, as babel plugins must be synchronous
120
+ resolveSync: (context: string, request: string) => {
121
+ return resolver.resolveSync({}, dirname(context), request);
122
+ },
123
+ },
106
124
  cache: false,
107
125
  } as BabelPluginOptions,
108
126
  ],
package/src/types.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import type { PluginItem } from '@babel/core';
2
2
  import type { PluginOptions } from '@compiled/babel-plugin';
3
+ import type { ResolveOptions } from 'enhanced-resolve';
3
4
 
4
- type BabelPluginOpts = Omit<PluginOptions, 'cache' | 'onIncludedFiles'>;
5
+ type BabelPluginOpts = Omit<PluginOptions, 'cache' | 'onIncludedFiles' | 'resolver'>;
5
6
 
6
7
  export interface ParcelTransformerOpts extends BabelPluginOpts {
7
8
  extract?: boolean;
@@ -19,4 +20,16 @@ export interface ParcelTransformerOpts extends BabelPluginOpts {
19
20
  * Defaults to `false`.
20
21
  */
21
22
  ssr?: boolean;
23
+
24
+ /**
25
+ * Will run additional cssnano plugins to normalize CSS during build.
26
+ *
27
+ * Default to `true`.
28
+ */
29
+ optimizeCss?: boolean;
30
+
31
+ /**
32
+ * Override the default `resolve` used by @compiled/babel-plugin, which is used to statically evaluate import declarations
33
+ */
34
+ resolve?: ResolveOptions;
22
35
  }