@compiled/webpack-loader 0.7.5 → 0.8.2
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/css-loader/README.md +1 -1
- package/css-loader/{extract.css → compiled-css.css} +0 -0
- package/dist/__fixtures__/binding-not-found.d.ts +1 -1
- package/dist/__fixtures__/binding-not-found.js +2 -2
- package/dist/__fixtures__/binding-not-found.js.map +1 -1
- package/dist/__fixtures__/common/css-prop.js +1 -1
- package/dist/__fixtures__/common/css-prop.js.map +1 -1
- package/dist/__fixtures__/compiled-error.js +2 -2
- package/dist/__fixtures__/compiled-error.js.map +1 -1
- package/dist/__fixtures__/important-styles.js +1 -1
- package/dist/__fixtures__/important-styles.js.map +1 -1
- package/dist/__fixtures__/lib/loader-alias.js +1 -1
- package/dist/__fixtures__/lib/loader-alias.js.map +1 -1
- package/dist/__fixtures__/lib/webpack-alias.js +1 -1
- package/dist/__fixtures__/lib/webpack-alias.js.map +1 -1
- package/dist/__fixtures__/loader-alias.js +1 -1
- package/dist/__fixtures__/loader-alias.js.map +1 -1
- package/dist/__fixtures__/local-styles.js +3 -3
- package/dist/__fixtures__/local-styles.js.map +1 -1
- package/dist/__fixtures__/relative-styles.d.ts +1 -1
- package/dist/__fixtures__/relative-styles.js +4 -4
- package/dist/__fixtures__/relative-styles.js.map +1 -1
- package/dist/__fixtures__/webpack-alias.js +1 -1
- package/dist/__fixtures__/webpack-alias.js.map +1 -1
- package/dist/compiled-loader.js +23 -12
- package/dist/compiled-loader.js.map +1 -1
- package/dist/extract-plugin.js +22 -27
- package/dist/extract-plugin.js.map +1 -1
- package/dist/types.d.ts +14 -0
- package/dist/utils.d.ts +6 -3
- package/dist/utils.js +37 -15
- package/dist/utils.js.map +1 -1
- package/package.json +12 -8
- package/src/compiled-loader.tsx +18 -5
- package/src/extract-plugin.tsx +4 -7
- package/src/types.tsx +18 -0
- package/src/utils.tsx +38 -20
package/css-loader/README.md
CHANGED
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
export declare const HeaderSpacing: React.ComponentType<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & import("
|
|
2
|
+
export declare const HeaderSpacing: React.ComponentType<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & import("packages/react/src/styled").StyledProps>;
|
|
3
3
|
interface HeaderProps {
|
|
4
4
|
variant?: 'default' | 'invert';
|
|
5
5
|
children: React.ReactNode;
|
|
@@ -37,8 +37,8 @@ exports.HeaderSpacing = react_1.styled.div `
|
|
|
37
37
|
const Header = (_a) => {
|
|
38
38
|
var { children, variant = 'default' } = _a, props = __rest(_a, ["children", "variant"]);
|
|
39
39
|
const color = variant === 'default' ? 'rgba(37, 56, 88, 0.9)' : 'rgba(255, 255, 255, 0.75)';
|
|
40
|
-
return (react_1.jsx(StyledHeader, Object.assign({ variant: variant, color: color }, props),
|
|
41
|
-
react_1.jsx("a", { href: "/", css: { textDecoration: 'none', color: 'currentColor' } }, "Compiled"),
|
|
40
|
+
return ((0, react_1.jsx)(StyledHeader, Object.assign({ variant: variant, color: color }, props),
|
|
41
|
+
(0, react_1.jsx)("a", { href: "/", css: { textDecoration: 'none', color: 'currentColor' } }, "Compiled"),
|
|
42
42
|
children));
|
|
43
43
|
};
|
|
44
44
|
exports.Header = Header;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding-not-found.js","sourceRoot":"","sources":["../../src/__fixtures__/binding-not-found.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,eAAe;AACf,2CAA8C;AAG9C,MAAM,MAAM,GAAG,MAAM,CAAC;AAEtB,MAAM,YAAY,GAAG,cAAM,CAAC,MAAM,CAGhC;YACU,MAAM;;;;;;;;;;;;MAYZ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,aAAa,CAAC;WAChF,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK;CAChC,CAAC;AAEW,QAAA,aAAa,GAAG,cAAM,CAAC,GAAG,CAAA;YAC3B,MAAM;CACjB,CAAC;AAOK,MAAM,MAAM,GAAG,CAAC,EAAwD,EAAe,EAAE;QAAzE,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,OAAyB,EAApB,KAAK,cAAzC,uBAA2C,CAAF;IAC9D,MAAM,KAAK,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,2BAA2B,CAAC;IAE5F,OAAO,CACL,
|
|
1
|
+
{"version":3,"file":"binding-not-found.js","sourceRoot":"","sources":["../../src/__fixtures__/binding-not-found.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,eAAe;AACf,2CAA8C;AAG9C,MAAM,MAAM,GAAG,MAAM,CAAC;AAEtB,MAAM,YAAY,GAAG,cAAM,CAAC,MAAM,CAGhC;YACU,MAAM;;;;;;;;;;;;MAYZ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,aAAa,CAAC;WAChF,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK;CAChC,CAAC;AAEW,QAAA,aAAa,GAAG,cAAM,CAAC,GAAG,CAAA;YAC3B,MAAM;CACjB,CAAC;AAOK,MAAM,MAAM,GAAG,CAAC,EAAwD,EAAe,EAAE;QAAzE,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,OAAyB,EAApB,KAAK,cAAzC,uBAA2C,CAAF;IAC9D,MAAM,KAAK,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,2BAA2B,CAAC;IAE5F,OAAO,CACL,iBAAC,YAAY,kBAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,IAAM,KAAK;QACrD,wBAAG,IAAI,EAAC,GAAG,EAAC,GAAG,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,eAE9D;QACH,QAAQ,CACI,CAChB,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,MAAM,UAWjB"}
|
|
@@ -4,6 +4,6 @@ exports.Coral = void 0;
|
|
|
4
4
|
/** @jsx jsx */
|
|
5
5
|
const react_1 = require("@compiled/react");
|
|
6
6
|
const colors_1 = require("./colors");
|
|
7
|
-
const Coral = () => (react_1.jsx("div", { css: { color: colors_1.coral, border: `2px solid ${colors_1.coral}` } }));
|
|
7
|
+
const Coral = () => ((0, react_1.jsx)("div", { css: { color: colors_1.coral, border: `2px solid ${colors_1.coral}` } }));
|
|
8
8
|
exports.Coral = Coral;
|
|
9
9
|
//# sourceMappingURL=css-prop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-prop.js","sourceRoot":"","sources":["../../../src/__fixtures__/common/css-prop.tsx"],"names":[],"mappings":";;;AAAA,eAAe;AACf,2CAAsC;AAEtC,qCAAiC;AAE1B,MAAM,KAAK,GAAG,GAAgB,EAAE,CAAC,CACtC,
|
|
1
|
+
{"version":3,"file":"css-prop.js","sourceRoot":"","sources":["../../../src/__fixtures__/common/css-prop.tsx"],"names":[],"mappings":";;;AAAA,eAAe;AACf,2CAAsC;AAEtC,qCAAiC;AAE1B,MAAM,KAAK,GAAG,GAAgB,EAAE,CAAC,CACtC,0BAAK,GAAG,EAAE,EAAE,KAAK,EAAE,cAAK,EAAE,MAAM,EAAE,aAAa,cAAK,EAAE,EAAE,GAAI,CAC7D,CAAC;AAFW,QAAA,KAAK,SAEhB"}
|
|
@@ -4,7 +4,7 @@ exports.App = void 0;
|
|
|
4
4
|
/** @jsx jsx */
|
|
5
5
|
const react_1 = require("@compiled/react");
|
|
6
6
|
// @ts-expect-error
|
|
7
|
-
const styles = react_1.css(false);
|
|
8
|
-
const App = () => react_1.jsx("div", { css: styles });
|
|
7
|
+
const styles = (0, react_1.css)(false);
|
|
8
|
+
const App = () => (0, react_1.jsx)("div", { css: styles });
|
|
9
9
|
exports.App = App;
|
|
10
10
|
//# sourceMappingURL=compiled-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiled-error.js","sourceRoot":"","sources":["../../src/__fixtures__/compiled-error.tsx"],"names":[],"mappings":";;;AAAA,eAAe;AACf,2CAA2C;AAE3C,mBAAmB;AACnB,MAAM,MAAM,GAAG,WAAG,
|
|
1
|
+
{"version":3,"file":"compiled-error.js","sourceRoot":"","sources":["../../src/__fixtures__/compiled-error.tsx"],"names":[],"mappings":";;;AAAA,eAAe;AACf,2CAA2C;AAE3C,mBAAmB;AACnB,MAAM,MAAM,GAAG,IAAA,WAAG,EAAC,KAAK,CAAC,CAAC;AAEnB,MAAM,GAAG,GAAG,GAAgB,EAAE,CAAC,0BAAK,GAAG,EAAE,MAAM,GAAI,CAAC;AAA9C,QAAA,GAAG,OAA2C"}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
/** @jsx jsx */
|
|
4
4
|
const react_1 = require("@compiled/react");
|
|
5
|
-
const Component = () => react_1.jsx("div", { css: { fontSize: '12!important', color: 'blue' } });
|
|
5
|
+
const Component = () => (0, react_1.jsx)("div", { css: { fontSize: '12!important', color: 'blue' } });
|
|
6
6
|
exports.default = Component;
|
|
7
7
|
//# sourceMappingURL=important-styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"important-styles.js","sourceRoot":"","sources":["../../src/__fixtures__/important-styles.tsx"],"names":[],"mappings":";;AAAA,eAAe;AACf,2CAAsC;AAEtC,MAAM,SAAS,GAAG,GAAgB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"important-styles.js","sourceRoot":"","sources":["../../src/__fixtures__/important-styles.tsx"],"names":[],"mappings":";;AAAA,eAAe;AACf,2CAAsC;AAEtC,MAAM,SAAS,GAAG,GAAgB,EAAE,CAAC,0BAAK,GAAG,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAI,CAAC;AAE/F,kBAAe,SAAS,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.styles = void 0;
|
|
4
4
|
const react_1 = require("@compiled/react");
|
|
5
|
-
exports.styles = react_1.css({
|
|
5
|
+
exports.styles = (0, react_1.css)({
|
|
6
6
|
color: 'indigo',
|
|
7
7
|
});
|
|
8
8
|
//# sourceMappingURL=loader-alias.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader-alias.js","sourceRoot":"","sources":["../../../src/__fixtures__/lib/loader-alias.ts"],"names":[],"mappings":";;;AAAA,2CAAsC;AAEzB,QAAA,MAAM,GAAG,WAAG,
|
|
1
|
+
{"version":3,"file":"loader-alias.js","sourceRoot":"","sources":["../../../src/__fixtures__/lib/loader-alias.ts"],"names":[],"mappings":";;;AAAA,2CAAsC;AAEzB,QAAA,MAAM,GAAG,IAAA,WAAG,EAAC;IACxB,KAAK,EAAE,QAAQ;CAChB,CAAC,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.styles = void 0;
|
|
4
4
|
const react_1 = require("@compiled/react");
|
|
5
|
-
exports.styles = react_1.css({
|
|
5
|
+
exports.styles = (0, react_1.css)({
|
|
6
6
|
color: 'blue',
|
|
7
7
|
});
|
|
8
8
|
//# sourceMappingURL=webpack-alias.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpack-alias.js","sourceRoot":"","sources":["../../../src/__fixtures__/lib/webpack-alias.ts"],"names":[],"mappings":";;;AAAA,2CAAsC;AAEzB,QAAA,MAAM,GAAG,WAAG,
|
|
1
|
+
{"version":3,"file":"webpack-alias.js","sourceRoot":"","sources":["../../../src/__fixtures__/lib/webpack-alias.ts"],"names":[],"mappings":";;;AAAA,2CAAsC;AAEzB,QAAA,MAAM,GAAG,IAAA,WAAG,EAAC;IACxB,KAAK,EAAE,MAAM;CACd,CAAC,CAAC"}
|
|
@@ -7,6 +7,6 @@ exports.App = void 0;
|
|
|
7
7
|
const react_1 = require("@compiled/react");
|
|
8
8
|
// @ts-expect-error
|
|
9
9
|
const loader_alias_1 = require("loader-alias");
|
|
10
|
-
const App = () => react_1.jsx("div", { css: loader_alias_1.styles });
|
|
10
|
+
const App = () => (0, react_1.jsx)("div", { css: loader_alias_1.styles });
|
|
11
11
|
exports.App = App;
|
|
12
12
|
//# sourceMappingURL=loader-alias.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader-alias.js","sourceRoot":"","sources":["../../src/__fixtures__/loader-alias.tsx"],"names":[],"mappings":";;;AAAA,eAAe;AACf,iFAAiF;AACjF,6DAA6D;AAC7D,2CAA2C;AAC3C,mBAAmB;AACnB,+CAAsC;AAE/B,MAAM,GAAG,GAAG,GAAgB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"loader-alias.js","sourceRoot":"","sources":["../../src/__fixtures__/loader-alias.tsx"],"names":[],"mappings":";;;AAAA,eAAe;AACf,iFAAiF;AACjF,6DAA6D;AAC7D,2CAA2C;AAC3C,mBAAmB;AACnB,+CAAsC;AAE/B,MAAM,GAAG,GAAG,GAAgB,EAAE,CAAC,0BAAK,GAAG,EAAE,qBAAM,GAAI,CAAC;AAA9C,QAAA,GAAG,OAA2C"}
|
|
@@ -7,8 +7,8 @@ const react_2 = require("react");
|
|
|
7
7
|
const Styled = react_1.styled.div({
|
|
8
8
|
color: 'blue',
|
|
9
9
|
});
|
|
10
|
-
const App = () => (react_1.jsx(react_2.Fragment, null,
|
|
11
|
-
react_1.jsx("div", { css: { fontSize: 14 } }),
|
|
12
|
-
react_1.jsx(Styled, null)));
|
|
10
|
+
const App = () => ((0, react_1.jsx)(react_2.Fragment, null,
|
|
11
|
+
(0, react_1.jsx)("div", { css: { fontSize: 14 } }),
|
|
12
|
+
(0, react_1.jsx)(Styled, null)));
|
|
13
13
|
exports.App = App;
|
|
14
14
|
//# sourceMappingURL=local-styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-styles.js","sourceRoot":"","sources":["../../src/__fixtures__/local-styles.tsx"],"names":[],"mappings":";;;AAAA,eAAe;AACf,2CAA8C;AAC9C,iCAAiC;AAEjC,MAAM,MAAM,GAAG,cAAM,CAAC,GAAG,CAAC;IACxB,KAAK,EAAE,MAAM;CACd,CAAC,CAAC;AAEI,MAAM,GAAG,GAAG,GAAgB,EAAE,CAAC,CACpC,
|
|
1
|
+
{"version":3,"file":"local-styles.js","sourceRoot":"","sources":["../../src/__fixtures__/local-styles.tsx"],"names":[],"mappings":";;;AAAA,eAAe;AACf,2CAA8C;AAC9C,iCAAiC;AAEjC,MAAM,MAAM,GAAG,cAAM,CAAC,GAAG,CAAC;IACxB,KAAK,EAAE,MAAM;CACd,CAAC,CAAC;AAEI,MAAM,GAAG,GAAG,GAAgB,EAAE,CAAC,CACpC,iBAAC,gBAAQ;IACP,0BAAK,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAI;IAC9B,iBAAC,MAAM,OAAG,CACD,CACZ,CAAC;AALW,QAAA,GAAG,OAKd"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
export declare const Styled: import("react").ComponentType<import("react").ClassAttributes<HTMLSpanElement> & import("react").HTMLAttributes<HTMLSpanElement> & import("
|
|
2
|
+
export declare const Styled: import("react").ComponentType<import("react").ClassAttributes<HTMLSpanElement> & import("react").HTMLAttributes<HTMLSpanElement> & import("packages/react/src/styled").StyledProps>;
|
|
3
3
|
export declare const App: () => JSX.Element;
|
|
@@ -16,7 +16,7 @@ exports.Styled = react_1.styled.span `
|
|
|
16
16
|
color: ${colors_1.blue};
|
|
17
17
|
}
|
|
18
18
|
`;
|
|
19
|
-
const styles = react_1.css `
|
|
19
|
+
const styles = (0, react_1.css) `
|
|
20
20
|
color: ${colors_1.red};
|
|
21
21
|
|
|
22
22
|
:focus {
|
|
@@ -27,8 +27,8 @@ const styles = react_1.css `
|
|
|
27
27
|
color: ${colors_1.yellow};
|
|
28
28
|
}
|
|
29
29
|
`;
|
|
30
|
-
const App = () => (react_1.jsx(react_2.Fragment, null,
|
|
31
|
-
react_1.jsx("div", { css: styles }),
|
|
32
|
-
react_1.jsx(exports.Styled, null)));
|
|
30
|
+
const App = () => ((0, react_1.jsx)(react_2.Fragment, null,
|
|
31
|
+
(0, react_1.jsx)("div", { css: styles }),
|
|
32
|
+
(0, react_1.jsx)(exports.Styled, null)));
|
|
33
33
|
exports.App = App;
|
|
34
34
|
//# sourceMappingURL=relative-styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relative-styles.js","sourceRoot":"","sources":["../../src/__fixtures__/relative-styles.tsx"],"names":[],"mappings":";;;AAAA,eAAe;AACf,2CAAmD;AACnD,iCAAiC;AAEjC,4CAAgF;AAKnE,QAAA,MAAM,GAAG,cAAM,CAAC,IAAI,CAAA;WACtB,mBAAU;;;aAGR,eAAM;;;;aAIN,aAAI;;CAEhB,CAAC;AAEF,MAAM,MAAM,GAAG,WAAG,
|
|
1
|
+
{"version":3,"file":"relative-styles.js","sourceRoot":"","sources":["../../src/__fixtures__/relative-styles.tsx"],"names":[],"mappings":";;;AAAA,eAAe;AACf,2CAAmD;AACnD,iCAAiC;AAEjC,4CAAgF;AAKnE,QAAA,MAAM,GAAG,cAAM,CAAC,IAAI,CAAA;WACtB,mBAAU;;;aAGR,eAAM;;;;aAIN,aAAI;;CAEhB,CAAC;AAEF,MAAM,MAAM,GAAG,IAAA,WAAG,EAAA;WACP,YAAG;;;aAGD,eAAM;;;;aAIN,eAAM;;CAElB,CAAC;AAEK,MAAM,GAAG,GAAG,GAAgB,EAAE,CAAC,CACpC,iBAAC,gBAAQ;IACP,0BAAK,GAAG,EAAE,MAAM,GAAI;IACpB,iBAAC,cAAM,OAAG,CACD,CACZ,CAAC;AALW,QAAA,GAAG,OAKd"}
|
|
@@ -7,6 +7,6 @@ exports.App = void 0;
|
|
|
7
7
|
const react_1 = require("@compiled/react");
|
|
8
8
|
// @ts-expect-error
|
|
9
9
|
const webpack_alias_1 = require("webpack-alias");
|
|
10
|
-
const App = () => react_1.jsx("div", { css: webpack_alias_1.styles });
|
|
10
|
+
const App = () => (0, react_1.jsx)("div", { css: webpack_alias_1.styles });
|
|
11
11
|
exports.App = App;
|
|
12
12
|
//# sourceMappingURL=webpack-alias.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpack-alias.js","sourceRoot":"","sources":["../../src/__fixtures__/webpack-alias.tsx"],"names":[],"mappings":";;;AAAA,eAAe;AACf,uFAAuF;AACvF,6DAA6D;AAC7D,2CAA2C;AAC3C,mBAAmB;AACnB,iDAAuC;AAEhC,MAAM,GAAG,GAAG,GAAgB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"webpack-alias.js","sourceRoot":"","sources":["../../src/__fixtures__/webpack-alias.tsx"],"names":[],"mappings":";;;AAAA,eAAe;AACf,uFAAuF;AACvF,6DAA6D;AAC7D,2CAA2C;AAC3C,mBAAmB;AACnB,iDAAuC;AAEhC,MAAM,GAAG,GAAG,GAAgB,EAAE,CAAC,0BAAK,GAAG,EAAE,sBAAM,GAAI,CAAC;AAA9C,QAAA,GAAG,OAA2C"}
|
package/dist/compiled-loader.js
CHANGED
|
@@ -31,9 +31,9 @@ let hasErrored = false;
|
|
|
31
31
|
* @returns
|
|
32
32
|
*/
|
|
33
33
|
function getLoaderOptions(context) {
|
|
34
|
-
const { bake = true, extract = false, importReact = undefined, nonce = undefined, resolve = {}, } = typeof context.getOptions === 'undefined'
|
|
34
|
+
const { bake = true, extract = false, importReact = undefined, nonce = undefined, resolve = {}, extensions = undefined, babelPlugins = [], [extract_plugin_1.pluginName]: isPluginEnabled = false, } = typeof context.getOptions === 'undefined'
|
|
35
35
|
? // Webpack v4 flow
|
|
36
|
-
loader_utils_1.getOptions(context)
|
|
36
|
+
(0, loader_utils_1.getOptions)(context)
|
|
37
37
|
: // Webpack v5 flow
|
|
38
38
|
context.getOptions({
|
|
39
39
|
type: 'object',
|
|
@@ -53,6 +53,15 @@ function getLoaderOptions(context) {
|
|
|
53
53
|
resolve: {
|
|
54
54
|
type: 'object',
|
|
55
55
|
},
|
|
56
|
+
extensions: {
|
|
57
|
+
type: 'array',
|
|
58
|
+
},
|
|
59
|
+
babelPlugins: {
|
|
60
|
+
type: 'array',
|
|
61
|
+
},
|
|
62
|
+
[extract_plugin_1.pluginName]: {
|
|
63
|
+
type: 'boolean',
|
|
64
|
+
},
|
|
56
65
|
},
|
|
57
66
|
});
|
|
58
67
|
return {
|
|
@@ -61,6 +70,9 @@ function getLoaderOptions(context) {
|
|
|
61
70
|
importReact,
|
|
62
71
|
nonce,
|
|
63
72
|
resolve,
|
|
73
|
+
extensions,
|
|
74
|
+
babelPlugins,
|
|
75
|
+
[extract_plugin_1.pluginName]: isPluginEnabled,
|
|
64
76
|
};
|
|
65
77
|
}
|
|
66
78
|
/**
|
|
@@ -81,7 +93,7 @@ async function compiledLoader(code) {
|
|
|
81
93
|
const foundCSSRules = [];
|
|
82
94
|
const _d = getLoaderOptions(this), { resolve } = _d, options = __rest(_d, ["resolve"]);
|
|
83
95
|
// Transform to an AST using the local babel config.
|
|
84
|
-
const ast = await core_1.parseAsync(code, {
|
|
96
|
+
const ast = await (0, core_1.parseAsync)(code, {
|
|
85
97
|
filename: this.resourcePath,
|
|
86
98
|
caller: { name: 'compiled' },
|
|
87
99
|
rootMode: 'upward-optional',
|
|
@@ -95,7 +107,7 @@ async function compiledLoader(code) {
|
|
|
95
107
|
// This makes the resolver invoke the callback synchronously
|
|
96
108
|
useSyncFileSystemCalls: true }));
|
|
97
109
|
// Transform using the Compiled Babel Plugin - we deliberately turn off using the local config.
|
|
98
|
-
const result = await core_1.transformFromAstAsync(ast, code, {
|
|
110
|
+
const result = await (0, core_1.transformFromAstAsync)(ast, code, {
|
|
99
111
|
babelrc: false,
|
|
100
112
|
configFile: false,
|
|
101
113
|
sourceMaps: true,
|
|
@@ -110,14 +122,14 @@ async function compiledLoader(code) {
|
|
|
110
122
|
Object.assign(Object.assign({}, options), { onIncludedFiles: (files) => includedFiles.push(...files), resolver: {
|
|
111
123
|
// The resolver needs to be synchronous, as babel plugins must be synchronous
|
|
112
124
|
resolveSync: (context, request) => {
|
|
113
|
-
return resolver.resolveSync({}, path_1.dirname(context), request);
|
|
125
|
+
return resolver.resolveSync({}, (0, path_1.dirname)(context), request);
|
|
114
126
|
},
|
|
115
127
|
} }),
|
|
116
128
|
],
|
|
117
129
|
].filter(utils_1.toBoolean),
|
|
118
130
|
});
|
|
119
131
|
includedFiles.forEach((file) => {
|
|
120
|
-
this.addDependency(path_1.normalize(file));
|
|
132
|
+
this.addDependency((0, path_1.normalize)(file));
|
|
121
133
|
});
|
|
122
134
|
let output = (result === null || result === void 0 ? void 0 : result.code) || '';
|
|
123
135
|
if (options.extract && foundCSSRules.length) {
|
|
@@ -126,11 +138,11 @@ async function compiledLoader(code) {
|
|
|
126
138
|
// The benefit is two fold:
|
|
127
139
|
// (1) thread safe collection of styles
|
|
128
140
|
// (2) caching -- resulting in faster builds (one import per rule!)
|
|
129
|
-
const params = utils_2.toURIComponent(rule);
|
|
141
|
+
const params = (0, utils_2.toURIComponent)(rule);
|
|
130
142
|
// We use require instead of import so it works with both ESM and CJS source.
|
|
131
143
|
// If we used ESM it would blow up with CJS source, unfortunately.
|
|
132
144
|
output = `
|
|
133
|
-
require("@compiled/webpack-loader/css-loader!@compiled/webpack-loader/css-loader
|
|
145
|
+
require("@compiled/webpack-loader/css-loader!@compiled/webpack-loader/css-loader/${extract_plugin_1.styleSheetName}.css?style=${params}");
|
|
134
146
|
${output}`;
|
|
135
147
|
});
|
|
136
148
|
}
|
|
@@ -138,16 +150,15 @@ async function compiledLoader(code) {
|
|
|
138
150
|
}
|
|
139
151
|
catch (e) {
|
|
140
152
|
// @ts-expect-error Not checking for error type
|
|
141
|
-
const error = utils_1.createError('compiled-loader', 'Unhandled exception')(e.stack);
|
|
153
|
+
const error = (0, utils_1.createError)('compiled-loader', 'Unhandled exception')(e.stack);
|
|
142
154
|
callback(error);
|
|
143
155
|
}
|
|
144
156
|
}
|
|
145
157
|
exports.default = compiledLoader;
|
|
146
158
|
function pitch() {
|
|
147
159
|
const options = getLoaderOptions(this);
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
this.emitError(utils_1.createError('webpack-loader')(`You forgot to add the 'CompiledExtractPlugin' plugin (i.e \`{ plugins: [new CompiledExtractPlugin()] }\`), please read https://compiledcssinjs.com/docs/css-extraction-webpack`));
|
|
160
|
+
if (!hasErrored && options.extract && !options[extract_plugin_1.pluginName]) {
|
|
161
|
+
this.emitError((0, utils_1.createError)('webpack-loader')(`You forgot to add the 'CompiledExtractPlugin' plugin (i.e \`{ plugins: [new CompiledExtractPlugin()] }\`), please read https://compiledcssinjs.com/docs/css-extraction-webpack`));
|
|
151
162
|
// We only want to error once, if we didn't do this you'd get an error for every file found.
|
|
152
163
|
hasErrored = true;
|
|
153
164
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiled-loader.js","sourceRoot":"","sources":["../src/compiled-loader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,+BAA0C;AAE1C,sCAAgE;AAChE,2CAAyD;AACzD,uDAA0E;AAC1E,+CAA0C;AAG1C,
|
|
1
|
+
{"version":3,"file":"compiled-loader.js","sourceRoot":"","sources":["../src/compiled-loader.tsx"],"names":[],"mappings":"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"}
|
package/dist/extract-plugin.js
CHANGED
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver,
|
|
3
|
-
if (
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
return value;
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
8
7
|
};
|
|
9
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver,
|
|
10
|
-
if (!
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return privateMap.get(receiver);
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
14
12
|
};
|
|
15
|
-
var
|
|
13
|
+
var _CompiledExtractPlugin_options;
|
|
16
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
15
|
exports.CompiledExtractPlugin = exports.styleSheetName = exports.pluginName = void 0;
|
|
18
16
|
const css_1 = require("@compiled/css");
|
|
@@ -48,7 +46,7 @@ const forceCSSIntoOneStyleSheet = (compiler) => {
|
|
|
48
46
|
type: 'css/mini-extract',
|
|
49
47
|
chunks: 'all',
|
|
50
48
|
// We merge only CSS from Compiled.
|
|
51
|
-
test: /css-loader\/
|
|
49
|
+
test: /css-loader\/compiled-css\.css$/,
|
|
52
50
|
enforce: true,
|
|
53
51
|
},
|
|
54
52
|
};
|
|
@@ -73,7 +71,7 @@ const forceCSSIntoOneStyleSheet = (compiler) => {
|
|
|
73
71
|
*/
|
|
74
72
|
const pushNodeModulesExtractLoader = (compiler, options) => {
|
|
75
73
|
if (!compiler.options.module) {
|
|
76
|
-
throw utils_1.createError('webpack-loader')('module options not defined');
|
|
74
|
+
throw (0, utils_1.createError)('webpack-loader')('module options not defined');
|
|
77
75
|
}
|
|
78
76
|
compiler.options.module.rules.push({
|
|
79
77
|
test: { and: [/node_modules.+\.js$/, options.nodeModulesTest].filter(utils_1.toBoolean) },
|
|
@@ -85,6 +83,7 @@ const pushNodeModulesExtractLoader = (compiler, options) => {
|
|
|
85
83
|
// We turn off baking as we're only interested in extracting from node modules (they're already baked)!
|
|
86
84
|
bake: false,
|
|
87
85
|
extract: true,
|
|
86
|
+
[exports.pluginName]: true,
|
|
88
87
|
},
|
|
89
88
|
},
|
|
90
89
|
});
|
|
@@ -96,32 +95,28 @@ const pushNodeModulesExtractLoader = (compiler, options) => {
|
|
|
96
95
|
*/
|
|
97
96
|
class CompiledExtractPlugin {
|
|
98
97
|
constructor(options = {}) {
|
|
99
|
-
|
|
100
|
-
__classPrivateFieldSet(this,
|
|
98
|
+
_CompiledExtractPlugin_options.set(this, void 0);
|
|
99
|
+
__classPrivateFieldSet(this, _CompiledExtractPlugin_options, options, "f");
|
|
101
100
|
}
|
|
102
101
|
apply(compiler) {
|
|
103
|
-
const { RawSource } = utils_2.getSources(compiler);
|
|
104
|
-
pushNodeModulesExtractLoader(compiler, __classPrivateFieldGet(this,
|
|
102
|
+
const { RawSource } = (0, utils_2.getSources)(compiler);
|
|
103
|
+
pushNodeModulesExtractLoader(compiler, __classPrivateFieldGet(this, _CompiledExtractPlugin_options, "f"));
|
|
105
104
|
forceCSSIntoOneStyleSheet(compiler);
|
|
106
105
|
compiler.hooks.compilation.tap(exports.pluginName, (compilation) => {
|
|
107
|
-
utils_2.
|
|
108
|
-
|
|
109
|
-
// Bundling will throw if this is missing (i.e. consumers did not setup correctly).
|
|
110
|
-
loaderContext[exports.pluginName] = true;
|
|
111
|
-
});
|
|
112
|
-
utils_2.getOptimizeAssetsHook(compiler, compilation).tap(exports.pluginName, (assets) => {
|
|
106
|
+
(0, utils_2.setPluginConfiguredOption)(compilation.options.module.rules, exports.pluginName);
|
|
107
|
+
(0, utils_2.getOptimizeAssetsHook)(compiler, compilation).tap(exports.pluginName, (assets) => {
|
|
113
108
|
const cssAssets = getCSSAssets(assets);
|
|
114
109
|
if (cssAssets.length === 0) {
|
|
115
110
|
return;
|
|
116
111
|
}
|
|
117
112
|
const [asset] = cssAssets;
|
|
118
|
-
const contents = utils_2.getAssetSourceContents(asset.source);
|
|
119
|
-
const newSource = new RawSource(css_1.sort(contents));
|
|
113
|
+
const contents = (0, utils_2.getAssetSourceContents)(asset.source);
|
|
114
|
+
const newSource = new RawSource((0, css_1.sort)(contents));
|
|
120
115
|
compilation.updateAsset(asset.name, newSource, asset.info);
|
|
121
116
|
});
|
|
122
117
|
});
|
|
123
118
|
}
|
|
124
119
|
}
|
|
125
120
|
exports.CompiledExtractPlugin = CompiledExtractPlugin;
|
|
126
|
-
|
|
121
|
+
_CompiledExtractPlugin_options = new WeakMap();
|
|
127
122
|
//# sourceMappingURL=extract-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-plugin.js","sourceRoot":"","sources":["../src/extract-plugin.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extract-plugin.js","sourceRoot":"","sources":["../src/extract-plugin.tsx"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import type { ParserPlugin } from '@babel/parser';
|
|
1
2
|
import type { ResolveOptions, RuleSetCondition } from 'webpack';
|
|
3
|
+
import type { pluginName } from './extract-plugin';
|
|
2
4
|
export type { ResolveOptions };
|
|
3
5
|
export interface CompiledLoaderOptions {
|
|
4
6
|
/**
|
|
@@ -25,6 +27,18 @@ export interface CompiledLoaderOptions {
|
|
|
25
27
|
* Override the default `resolve` passed into webpack, which is used to statically evaluate import declarations
|
|
26
28
|
*/
|
|
27
29
|
resolve?: ResolveOptions;
|
|
30
|
+
/**
|
|
31
|
+
* List of file extensions to traverse as code
|
|
32
|
+
*/
|
|
33
|
+
extensions?: string[];
|
|
34
|
+
/**
|
|
35
|
+
* List of babel plugins to be applied to evaluated files
|
|
36
|
+
*/
|
|
37
|
+
babelPlugins?: ParserPlugin[];
|
|
38
|
+
/**
|
|
39
|
+
* Set to true if CompiledExtractPlugin has been set up correctly
|
|
40
|
+
*/
|
|
41
|
+
[pluginName]?: boolean;
|
|
28
42
|
}
|
|
29
43
|
export interface CompiledExtractPluginOptions {
|
|
30
44
|
/**
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import type { Compilation as CompilationType, Compiler, sources } from 'webpack';
|
|
1
|
+
import type { Compilation as CompilationType, Compiler, sources, RuleSetRule } from 'webpack';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Sets an option on the plugin config to tell loaders that the plugin has been configured.
|
|
4
|
+
* Bundling will throw if this option is missing (i.e. consumers did not setup correctly).
|
|
4
5
|
*
|
|
6
|
+
* @param rules
|
|
7
|
+
* @param pluginName
|
|
5
8
|
* @returns
|
|
6
9
|
*/
|
|
7
|
-
export declare const
|
|
10
|
+
export declare const setPluginConfiguredOption: (rules: (RuleSetRule | '...')[], pluginName: string) => void;
|
|
8
11
|
/**
|
|
9
12
|
* Returns the string representation of an assets source.
|
|
10
13
|
*
|
package/dist/utils.js
CHANGED
|
@@ -1,25 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.toURIComponent = exports.getSources = exports.getOptimizeAssetsHook = exports.getAssetSourceContents = exports.
|
|
3
|
+
exports.toURIComponent = exports.getSources = exports.getOptimizeAssetsHook = exports.getAssetSourceContents = exports.setPluginConfiguredOption = void 0;
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Sets an option on the plugin config to tell loaders that the plugin has been configured.
|
|
6
|
+
* Bundling will throw if this option is missing (i.e. consumers did not setup correctly).
|
|
6
7
|
*
|
|
8
|
+
* @param rules
|
|
9
|
+
* @param pluginName
|
|
7
10
|
* @returns
|
|
8
11
|
*/
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
const setPluginConfiguredOption = (rules, pluginName) => {
|
|
13
|
+
for (const rule of rules) {
|
|
14
|
+
const use = rule.use;
|
|
15
|
+
if (!use || typeof use === 'string') {
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
if (Array.isArray(use)) {
|
|
19
|
+
if (!use.length) {
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
for (const nestedUse of use) {
|
|
23
|
+
if (typeof nestedUse !== 'object' || nestedUse.loader !== '@compiled/webpack-loader') {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
const { options } = nestedUse;
|
|
27
|
+
if (!options || typeof options !== 'object' || !options.extract) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
options[pluginName] = true;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
if (typeof use === 'object' && use.loader === '@compiled/webpack-loader') {
|
|
35
|
+
const { options } = use;
|
|
36
|
+
if (!options || typeof options !== 'object' || !options.extract) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
options[pluginName] = true;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
21
43
|
};
|
|
22
|
-
exports.
|
|
44
|
+
exports.setPluginConfiguredOption = setPluginConfiguredOption;
|
|
23
45
|
/**
|
|
24
46
|
* Returns the string representation of an assets source.
|
|
25
47
|
*
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.tsx"],"names":[],"mappings":";;;AAEA
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@compiled/webpack-loader",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.2",
|
|
4
4
|
"description": "A familiar and performant compile time CSS-in-JS library for React.",
|
|
5
5
|
"homepage": "https://compiledcssinjs.com/docs/pkg-webpack-loader",
|
|
6
6
|
"bugs": "https://github.com/atlassian-labs/compiled/issues/new?assignees=&labels=bug&template=bug_report.md",
|
|
@@ -20,10 +20,11 @@
|
|
|
20
20
|
"src"
|
|
21
21
|
],
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@babel/core": "^7.
|
|
24
|
-
"@compiled/babel-plugin": "^0.
|
|
25
|
-
"@compiled/babel-plugin-strip-runtime": "^0.11.
|
|
26
|
-
"@compiled/css": "^0.8.
|
|
23
|
+
"@babel/core": "^7.17.5",
|
|
24
|
+
"@compiled/babel-plugin": "^0.12.1",
|
|
25
|
+
"@compiled/babel-plugin-strip-runtime": "^0.11.4",
|
|
26
|
+
"@compiled/css": "^0.8.1",
|
|
27
|
+
"@compiled/react": "0.10.2",
|
|
27
28
|
"@compiled/utils": "^0.6.14",
|
|
28
29
|
"enhanced-resolve": "^5.8.3",
|
|
29
30
|
"loader-utils": "^2.0.2",
|
|
@@ -32,9 +33,12 @@
|
|
|
32
33
|
"devDependencies": {
|
|
33
34
|
"babel-loader": "^8.2.3",
|
|
34
35
|
"css-loader": "^5.2.7",
|
|
35
|
-
"memfs": "^3.
|
|
36
|
-
"mini-css-extract-plugin": "^1.
|
|
37
|
-
"
|
|
36
|
+
"memfs": "^3.4.1",
|
|
37
|
+
"mini-css-extract-plugin": "^1.6.2",
|
|
38
|
+
"react": "^17.0.2",
|
|
39
|
+
"ts-node": "^10.4.0",
|
|
40
|
+
"tsconfig-paths": "^3.12.0",
|
|
41
|
+
"webpack": "^5.66.0"
|
|
38
42
|
},
|
|
39
43
|
"peerDependencies": {
|
|
40
44
|
"webpack": ">= 4.46.0"
|
package/src/compiled-loader.tsx
CHANGED
|
@@ -7,7 +7,7 @@ import { CachedInputFileSystem, ResolverFactory } from 'enhanced-resolve';
|
|
|
7
7
|
import { getOptions } from 'loader-utils';
|
|
8
8
|
import type { LoaderContext } from 'webpack';
|
|
9
9
|
|
|
10
|
-
import { pluginName } from './extract-plugin';
|
|
10
|
+
import { pluginName, styleSheetName } from './extract-plugin';
|
|
11
11
|
import type { CompiledLoaderOptions } from './types';
|
|
12
12
|
import { toURIComponent } from './utils';
|
|
13
13
|
|
|
@@ -26,6 +26,9 @@ function getLoaderOptions(context: LoaderContext<CompiledLoaderOptions>) {
|
|
|
26
26
|
importReact = undefined,
|
|
27
27
|
nonce = undefined,
|
|
28
28
|
resolve = {},
|
|
29
|
+
extensions = undefined,
|
|
30
|
+
babelPlugins = [],
|
|
31
|
+
[pluginName]: isPluginEnabled = false,
|
|
29
32
|
}: CompiledLoaderOptions = typeof context.getOptions === 'undefined'
|
|
30
33
|
? // Webpack v4 flow
|
|
31
34
|
getOptions(context)
|
|
@@ -48,6 +51,15 @@ function getLoaderOptions(context: LoaderContext<CompiledLoaderOptions>) {
|
|
|
48
51
|
resolve: {
|
|
49
52
|
type: 'object',
|
|
50
53
|
},
|
|
54
|
+
extensions: {
|
|
55
|
+
type: 'array',
|
|
56
|
+
},
|
|
57
|
+
babelPlugins: {
|
|
58
|
+
type: 'array',
|
|
59
|
+
},
|
|
60
|
+
[pluginName]: {
|
|
61
|
+
type: 'boolean',
|
|
62
|
+
},
|
|
51
63
|
},
|
|
52
64
|
});
|
|
53
65
|
|
|
@@ -57,6 +69,9 @@ function getLoaderOptions(context: LoaderContext<CompiledLoaderOptions>) {
|
|
|
57
69
|
importReact,
|
|
58
70
|
nonce,
|
|
59
71
|
resolve,
|
|
72
|
+
extensions,
|
|
73
|
+
babelPlugins,
|
|
74
|
+
[pluginName]: isPluginEnabled,
|
|
60
75
|
};
|
|
61
76
|
}
|
|
62
77
|
|
|
@@ -145,7 +160,7 @@ export default async function compiledLoader(
|
|
|
145
160
|
// We use require instead of import so it works with both ESM and CJS source.
|
|
146
161
|
// If we used ESM it would blow up with CJS source, unfortunately.
|
|
147
162
|
output = `
|
|
148
|
-
require("@compiled/webpack-loader/css-loader!@compiled/webpack-loader/css-loader
|
|
163
|
+
require("@compiled/webpack-loader/css-loader!@compiled/webpack-loader/css-loader/${styleSheetName}.css?style=${params}");
|
|
149
164
|
${output}`;
|
|
150
165
|
});
|
|
151
166
|
}
|
|
@@ -160,9 +175,7 @@ export default async function compiledLoader(
|
|
|
160
175
|
|
|
161
176
|
export function pitch(this: LoaderContext<CompiledLoaderOptions>): void {
|
|
162
177
|
const options = getLoaderOptions(this);
|
|
163
|
-
|
|
164
|
-
// @ts-expect-error No definitions for this[pluginName]
|
|
165
|
-
if (!hasErrored && options.extract && !this[pluginName]) {
|
|
178
|
+
if (!hasErrored && options.extract && !options[pluginName]) {
|
|
166
179
|
this.emitError(
|
|
167
180
|
createError('webpack-loader')(
|
|
168
181
|
`You forgot to add the 'CompiledExtractPlugin' plugin (i.e \`{ plugins: [new CompiledExtractPlugin()] }\`), please read https://compiledcssinjs.com/docs/css-extraction-webpack`
|
package/src/extract-plugin.tsx
CHANGED
|
@@ -5,9 +5,9 @@ import type { Compilation, Compiler } from 'webpack';
|
|
|
5
5
|
import type { CompiledExtractPluginOptions } from './types';
|
|
6
6
|
import {
|
|
7
7
|
getAssetSourceContents,
|
|
8
|
-
getNormalModuleHook,
|
|
9
8
|
getOptimizeAssetsHook,
|
|
10
9
|
getSources,
|
|
10
|
+
setPluginConfiguredOption,
|
|
11
11
|
} from './utils';
|
|
12
12
|
|
|
13
13
|
export const pluginName = 'CompiledExtractPlugin';
|
|
@@ -42,7 +42,7 @@ const forceCSSIntoOneStyleSheet = (compiler: Compiler) => {
|
|
|
42
42
|
type: 'css/mini-extract',
|
|
43
43
|
chunks: 'all',
|
|
44
44
|
// We merge only CSS from Compiled.
|
|
45
|
-
test: /css-loader\/
|
|
45
|
+
test: /css-loader\/compiled-css\.css$/,
|
|
46
46
|
enforce: true,
|
|
47
47
|
},
|
|
48
48
|
};
|
|
@@ -88,6 +88,7 @@ const pushNodeModulesExtractLoader = (
|
|
|
88
88
|
// We turn off baking as we're only interested in extracting from node modules (they're already baked)!
|
|
89
89
|
bake: false,
|
|
90
90
|
extract: true,
|
|
91
|
+
[pluginName]: true,
|
|
91
92
|
},
|
|
92
93
|
},
|
|
93
94
|
});
|
|
@@ -112,11 +113,7 @@ export class CompiledExtractPlugin {
|
|
|
112
113
|
forceCSSIntoOneStyleSheet(compiler);
|
|
113
114
|
|
|
114
115
|
compiler.hooks.compilation.tap(pluginName, (compilation) => {
|
|
115
|
-
|
|
116
|
-
// We add some information here to tell loaders that the plugin has been configured.
|
|
117
|
-
// Bundling will throw if this is missing (i.e. consumers did not setup correctly).
|
|
118
|
-
(loaderContext as any)[pluginName] = true;
|
|
119
|
-
});
|
|
116
|
+
setPluginConfiguredOption(compilation.options.module.rules, pluginName);
|
|
120
117
|
|
|
121
118
|
getOptimizeAssetsHook(compiler, compilation).tap(pluginName, (assets) => {
|
|
122
119
|
const cssAssets = getCSSAssets(assets);
|
package/src/types.tsx
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import type { ParserPlugin } from '@babel/parser';
|
|
1
2
|
import type { ResolveOptions, RuleSetCondition } from 'webpack';
|
|
2
3
|
|
|
4
|
+
import type { pluginName } from './extract-plugin';
|
|
5
|
+
|
|
3
6
|
export type { ResolveOptions };
|
|
4
7
|
|
|
5
8
|
export interface CompiledLoaderOptions {
|
|
@@ -31,6 +34,21 @@ export interface CompiledLoaderOptions {
|
|
|
31
34
|
* Override the default `resolve` passed into webpack, which is used to statically evaluate import declarations
|
|
32
35
|
*/
|
|
33
36
|
resolve?: ResolveOptions;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* List of file extensions to traverse as code
|
|
40
|
+
*/
|
|
41
|
+
extensions?: string[];
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* List of babel plugins to be applied to evaluated files
|
|
45
|
+
*/
|
|
46
|
+
babelPlugins?: ParserPlugin[];
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Set to true if CompiledExtractPlugin has been set up correctly
|
|
50
|
+
*/
|
|
51
|
+
[pluginName]?: boolean;
|
|
34
52
|
}
|
|
35
53
|
|
|
36
54
|
export interface CompiledExtractPluginOptions {
|
package/src/utils.tsx
CHANGED
|
@@ -1,28 +1,46 @@
|
|
|
1
|
-
import type { Compilation as CompilationType, Compiler, sources } from 'webpack';
|
|
1
|
+
import type { Compilation as CompilationType, Compiler, sources, RuleSetRule } from 'webpack';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Sets an option on the plugin config to tell loaders that the plugin has been configured.
|
|
5
|
+
* Bundling will throw if this option is missing (i.e. consumers did not setup correctly).
|
|
5
6
|
*
|
|
7
|
+
* @param rules
|
|
8
|
+
* @param pluginName
|
|
6
9
|
* @returns
|
|
7
10
|
*/
|
|
8
|
-
export const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
):
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
11
|
+
export const setPluginConfiguredOption = (
|
|
12
|
+
rules: (RuleSetRule | '...')[],
|
|
13
|
+
pluginName: string
|
|
14
|
+
): void => {
|
|
15
|
+
for (const rule of rules) {
|
|
16
|
+
const use = (rule as RuleSetRule).use;
|
|
17
|
+
if (!use || typeof use === 'string') {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
if (Array.isArray(use)) {
|
|
21
|
+
if (!use.length) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
for (const nestedUse of use) {
|
|
25
|
+
if (typeof nestedUse !== 'object' || nestedUse.loader !== '@compiled/webpack-loader') {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
const { options } = nestedUse;
|
|
29
|
+
if (!options || typeof options !== 'object' || !options.extract) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
options[pluginName] = true;
|
|
33
|
+
}
|
|
34
|
+
} else {
|
|
35
|
+
if (typeof use === 'object' && use.loader === '@compiled/webpack-loader') {
|
|
36
|
+
const { options } = use;
|
|
37
|
+
if (!options || typeof options !== 'object' || !options.extract) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
options[pluginName] = true;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
26
44
|
};
|
|
27
45
|
|
|
28
46
|
/**
|