happy-css-modules 0.2.0 → 0.2.1
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/loader/index.js +10 -2
- package/dist/loader/index.js.map +1 -1
- package/dist/transformer/index.d.ts +5 -0
- package/dist/transformer/index.js.map +1 -1
- package/dist/transformer/less-transformer.js +1 -2
- package/dist/transformer/less-transformer.js.map +1 -1
- package/dist/transformer/less-transformer.test.js +4 -3
- package/dist/transformer/less-transformer.test.js.map +1 -1
- package/package.json +1 -1
- package/src/loader/index.ts +14 -6
- package/src/transformer/index.ts +5 -0
- package/src/transformer/less-transformer.test.ts +4 -3
- package/src/transformer/less-transformer.ts +1 -2
package/dist/loader/index.js
CHANGED
|
@@ -65,18 +65,26 @@ export class Loader {
|
|
|
65
65
|
const css = await readFile(filePath, 'utf-8');
|
|
66
66
|
if (!this.transformer)
|
|
67
67
|
return { css, map: undefined, dependencies: [] };
|
|
68
|
-
const result = await this.transformer(css, { from: filePath, resolver: this.resolver });
|
|
68
|
+
const result = await this.transformer(css, { from: filePath, resolver: this.resolver, isIgnoredSpecifier });
|
|
69
69
|
if (result === false)
|
|
70
70
|
return { css, map: undefined, dependencies: [] };
|
|
71
71
|
return {
|
|
72
72
|
css: result.css,
|
|
73
73
|
map: result.map,
|
|
74
|
-
dependencies: result.dependencies
|
|
74
|
+
dependencies: result.dependencies
|
|
75
|
+
.map((dep) => {
|
|
75
76
|
if (typeof dep === 'string')
|
|
76
77
|
return dep;
|
|
77
78
|
if (dep.protocol !== 'file:')
|
|
78
79
|
throw new Error('Unsupported protocol: ' + dep.protocol);
|
|
79
80
|
return dep.pathname;
|
|
81
|
+
})
|
|
82
|
+
.filter((dep) => {
|
|
83
|
+
// less makes a remote module inline, so it may be included in dependencies.
|
|
84
|
+
// However, the dependencies field of happy-css-modules is not yet designed to store http protocol URLs.
|
|
85
|
+
// Therefore, we exclude them from the dependencies field for now.
|
|
86
|
+
// TODO: Support to store http protocol URLs in the dependencies field.
|
|
87
|
+
return !(dep.startsWith('http://') || dep.startsWith('https://'));
|
|
80
88
|
}),
|
|
81
89
|
};
|
|
82
90
|
}
|
package/dist/loader/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/loader/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAoB,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,aAAa,EAEb,mCAAmC,EACnC,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,YAAY,EAAiB,MAAM,cAAc,CAAC;AAE3D;;;GAGG;AACH,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,OAAO,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC7E,CAAC;AAuBD,SAAS,eAAe,CAAC,MAAe;;IACtC,MAAM,4BAA4B,GAAG,IAAI,GAAG,EAAsB,CAAC;IACnE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,4BAA4B,CAAC,GAAG,CAC9B,KAAK,CAAC,IAAI,EACV,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAA,4BAA4B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC3G,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CACzB,CACF,CAAC;KACH;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5F,IAAI;QACJ,iBAAiB;KAClB,CAAC,CAAC,CAAC;AACN,CAAC;AAYD,iFAAiF;AACjF,MAAM,OAAO,MAAM;IAKjB,YAAY,OAAuB;;QAJlB,UAAK,GAA4B,IAAI,GAAG,EAAE,CAAC;QAK1D,IAAI,CAAC,WAAW,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,wBAAwB,EAAE,CAAC;QACtE,IAAI,CAAC,QAAQ,GAAG,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE;;YACnD,MAAM,QAAQ,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,qBAAqB,EAAE,CAAC;YAC9D,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YAC5D,IAAI,QAAQ,KAAK,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,SAAS,eAAe,CAAC,OAAO,IAAI,CAAC,CAAC;YAC7G,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC;IAED,+CAA+C;IACvC,KAAK,CAAC,eAAe,CAAC,QAAgB;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACrD,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QAEvC,MAAM,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;QACtC,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACxB,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACvD,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK;gBAAE,OAAO,IAAI,CAAC;SACxC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,OAAO,CACnB,QAAgB;QAKhB,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/loader/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,11 @@ export declare type TransformerOptions = {
|
|
|
16
16
|
from: string;
|
|
17
17
|
/** The function to resolve the path of the imported file. */
|
|
18
18
|
resolver: StrictlyResolver;
|
|
19
|
+
/**
|
|
20
|
+
* Whether the specifier should be ignored.
|
|
21
|
+
* For example, specifiers starting with `http://` or `https://` should be ignored.
|
|
22
|
+
*/
|
|
23
|
+
isIgnoredSpecifier: (specifier: string) => boolean;
|
|
19
24
|
};
|
|
20
25
|
/** The function to transform source code. */
|
|
21
26
|
export declare type Transformer = (source: string, options: TransformerOptions) => TransformResult | Promise<TransformResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AA+B9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,WAAmB,EAAE,EAAE,CAAC,CAAC,CAAU,EAAE,EAAE;IACvE,OAAO,CAAC,KAAK,CAAC,GAAG,WAAW,sDAAsD,WAAW,KAAK,CAAC,CAAC;IACpG,MAAM,CAAC,CAAC;AACV,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAsB,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IACzF,MAAM,eAAe,GAAG,qBAAqB,EAAE,CAAC;IAChD,MAAM,eAAe,GAAG,qBAAqB,EAAE,CAAC;IAChD,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClC,OAAO,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACzC;SAAM,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACzC,OAAO,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACzC;IACD,wBAAwB;IACxB,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -6,9 +6,8 @@ function createLessPluginResolver(Less, options) {
|
|
|
6
6
|
super();
|
|
7
7
|
this.options = options;
|
|
8
8
|
}
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
10
9
|
supports(filename) {
|
|
11
|
-
return
|
|
10
|
+
return !this.options.isIgnoredSpecifier(filename);
|
|
12
11
|
}
|
|
13
12
|
async loadFile(filename, currentDirectory, options, environment) {
|
|
14
13
|
const resolved = await this.options.resolver(filename, { request: currentDirectory });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"less-transformer.js","sourceRoot":"","sources":["../../src/transformer/less-transformer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,4GAA4G;AAC5G,SAAS,wBAAwB,CAAC,IAA2B,EAAE,OAA2B;IACxF,MAAM,mBAAoB,SAAQ,IAAI,CAAC,WAAW;QAEhD,YAAY,OAA2B;YACrC,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,CAAC;
|
|
1
|
+
{"version":3,"file":"less-transformer.js","sourceRoot":"","sources":["../../src/transformer/less-transformer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,4GAA4G;AAC5G,SAAS,wBAAwB,CAAC,IAA2B,EAAE,OAA2B;IACxF,MAAM,mBAAoB,SAAQ,IAAI,CAAC,WAAW;QAEhD,YAAY,OAA2B;YACrC,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,CAAC;QACe,QAAQ,CAAC,QAAgB;YACvC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC;QACe,KAAK,CAAC,QAAQ,CAC5B,QAAgB,EAChB,gBAAwB,EACxB,OAA6B,EAC7B,WAA6B;YAE7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACtF,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAC1E,CAAC;KACF;IAED,MAAM,kBAAkB;QAEtB,YAAY,OAA2B;YAMhC,eAAU,GAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YALtD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,CAAC;QACM,OAAO,CAAC,IAAgB,EAAE,aAAiC;YAChE,aAAa,CAAC,cAAc,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACtE,CAAC;KAEF;IAED,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAsB,GAAG,EAAE;IAC3D,sEAAsE;IACtE,IAAI,IAA2B,CAAC;IAChC,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAC/B,IAAI,aAAJ,IAAI,cAAJ,IAAI,IAAJ,IAAI,GAAK,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAC;QACzE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACvC,QAAQ,EAAE,OAAO,CAAC,IAAI;YACtB,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,CAAC,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAClD,UAAU,EAAE,KAAK,EAAE,6CAA6C;SACjE,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5E,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -111,8 +111,9 @@ test('resolves specifier using resolver', async () => {
|
|
|
111
111
|
// NOTE: less does not resolve files that are http(s) protocol.
|
|
112
112
|
// Therefore, the resolver will not be called for those files,
|
|
113
113
|
// and they will not be included in result.dependencies.
|
|
114
|
-
@import '
|
|
115
|
-
|
|
114
|
+
@import url('https://mizdra.net/css/index.css');
|
|
115
|
+
// However, if Content-Type is set to text/css, less will try to resolve it and inline it.
|
|
116
|
+
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,900;1,900&display=swap');
|
|
116
117
|
`,
|
|
117
118
|
'/node_modules/package-1/index.css': `.a {}`,
|
|
118
119
|
'/node_modules/package-2/index.less': `.a {}`,
|
|
@@ -121,6 +122,6 @@ test('resolves specifier using resolver', async () => {
|
|
|
121
122
|
// eslint-disable-next-line @typescript-eslint/require-array-sort-compare
|
|
122
123
|
expect(result.dependencies.sort()).toStrictEqual(
|
|
123
124
|
// eslint-disable-next-line @typescript-eslint/require-array-sort-compare
|
|
124
|
-
['/node_modules/package-1/index.css', '/node_modules/package-2/index.less'].
|
|
125
|
+
[getFixturePath('/node_modules/package-1/index.css'), getFixturePath('/node_modules/package-2/index.less')].sort());
|
|
125
126
|
});
|
|
126
127
|
//# sourceMappingURL=less-transformer.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"less-transformer.test.js","sourceRoot":"","sources":["../../src/transformer/less-transformer.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;AACpE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3C,SAAS,CAAC,GAAG,EAAE;IACb,OAAO,CAAC,SAAS,EAAE,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;IACvC,cAAc,CAAC;QACb,cAAc,EAAE,MAAM,CAAA;;;;;;;;;;;;;OAanB;QACH,cAAc,EAAE,MAAM,CAAA;;;OAGnB;QACH,cAAc,EAAE,MAAM,CAAA;;OAEnB;KACJ,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IAEjE,mDAAmD;IACnD,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CpC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;IACjF,cAAc,CAAC;QACb,cAAc,EAAE,MAAM,CAAA;;;KAGrB;QACD,cAAc,EAAE,MAAM,CAAA;KACrB;QACD,cAAc,EAAE,MAAM,CAAA;;KAErB;QACD,cAAc,EAAE,MAAM,CAAA;KACrB;KACF,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IAEjE,oEAAoE;IACpE,iEAAiE;IACjE,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,CAAC,OAAO,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IAE3E,mFAAmF;IACnF,yEAAyE;IACzE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa;IAC9C,yEAAyE;IACzE,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAC5E,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;IACnD,cAAc,CAAC;QACb,cAAc,EAAE,MAAM,CAAA
|
|
1
|
+
{"version":3,"file":"less-transformer.test.js","sourceRoot":"","sources":["../../src/transformer/less-transformer.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;AACpE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3C,SAAS,CAAC,GAAG,EAAE;IACb,OAAO,CAAC,SAAS,EAAE,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;IACvC,cAAc,CAAC;QACb,cAAc,EAAE,MAAM,CAAA;;;;;;;;;;;;;OAanB;QACH,cAAc,EAAE,MAAM,CAAA;;;OAGnB;QACH,cAAc,EAAE,MAAM,CAAA;;OAEnB;KACJ,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IAEjE,mDAAmD;IACnD,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CpC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;IACjF,cAAc,CAAC;QACb,cAAc,EAAE,MAAM,CAAA;;;KAGrB;QACD,cAAc,EAAE,MAAM,CAAA;KACrB;QACD,cAAc,EAAE,MAAM,CAAA;;KAErB;QACD,cAAc,EAAE,MAAM,CAAA;KACrB;KACF,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IAEjE,oEAAoE;IACpE,iEAAiE;IACjE,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,CAAC,OAAO,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IAE3E,mFAAmF;IACnF,yEAAyE;IACzE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa;IAC9C,yEAAyE;IACzE,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAC5E,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;IACnD,cAAc,CAAC;QACb,cAAc,EAAE,MAAM,CAAA;;;;;;;;;KASrB;QACD,mCAAmC,EAAE,OAAO;QAC5C,oCAAoC,EAAE,OAAO;KAC9C,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IACjE,yEAAyE;IACzE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa;IAC9C,yEAAyE;IACzE,CAAC,cAAc,CAAC,mCAAmC,CAAC,EAAE,cAAc,CAAC,oCAAoC,CAAC,CAAC,CAAC,IAAI,EAAE,CACnH,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
package/src/loader/index.ts
CHANGED
|
@@ -115,16 +115,24 @@ export class Loader {
|
|
|
115
115
|
> {
|
|
116
116
|
const css = await readFile(filePath, 'utf-8');
|
|
117
117
|
if (!this.transformer) return { css, map: undefined, dependencies: [] };
|
|
118
|
-
const result = await this.transformer(css, { from: filePath, resolver: this.resolver });
|
|
118
|
+
const result = await this.transformer(css, { from: filePath, resolver: this.resolver, isIgnoredSpecifier });
|
|
119
119
|
if (result === false) return { css, map: undefined, dependencies: [] };
|
|
120
120
|
return {
|
|
121
121
|
css: result.css,
|
|
122
122
|
map: result.map,
|
|
123
|
-
dependencies: result.dependencies
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
123
|
+
dependencies: result.dependencies
|
|
124
|
+
.map((dep) => {
|
|
125
|
+
if (typeof dep === 'string') return dep;
|
|
126
|
+
if (dep.protocol !== 'file:') throw new Error('Unsupported protocol: ' + dep.protocol);
|
|
127
|
+
return dep.pathname;
|
|
128
|
+
})
|
|
129
|
+
.filter((dep) => {
|
|
130
|
+
// less makes a remote module inline, so it may be included in dependencies.
|
|
131
|
+
// However, the dependencies field of happy-css-modules is not yet designed to store http protocol URLs.
|
|
132
|
+
// Therefore, we exclude them from the dependencies field for now.
|
|
133
|
+
// TODO: Support to store http protocol URLs in the dependencies field.
|
|
134
|
+
return !(dep.startsWith('http://') || dep.startsWith('https://'));
|
|
135
|
+
}),
|
|
128
136
|
};
|
|
129
137
|
}
|
|
130
138
|
|
package/src/transformer/index.ts
CHANGED
|
@@ -21,6 +21,11 @@ export type TransformerOptions = {
|
|
|
21
21
|
from: string;
|
|
22
22
|
/** The function to resolve the path of the imported file. */
|
|
23
23
|
resolver: StrictlyResolver;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the specifier should be ignored.
|
|
26
|
+
* For example, specifiers starting with `http://` or `https://` should be ignored.
|
|
27
|
+
*/
|
|
28
|
+
isIgnoredSpecifier: (specifier: string) => boolean;
|
|
24
29
|
};
|
|
25
30
|
|
|
26
31
|
/** The function to transform source code. */
|
|
@@ -120,8 +120,9 @@ test('resolves specifier using resolver', async () => {
|
|
|
120
120
|
// NOTE: less does not resolve files that are http(s) protocol.
|
|
121
121
|
// Therefore, the resolver will not be called for those files,
|
|
122
122
|
// and they will not be included in result.dependencies.
|
|
123
|
-
@import '
|
|
124
|
-
|
|
123
|
+
@import url('https://mizdra.net/css/index.css');
|
|
124
|
+
// However, if Content-Type is set to text/css, less will try to resolve it and inline it.
|
|
125
|
+
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,900;1,900&display=swap');
|
|
125
126
|
`,
|
|
126
127
|
'/node_modules/package-1/index.css': `.a {}`,
|
|
127
128
|
'/node_modules/package-2/index.less': `.a {}`,
|
|
@@ -130,6 +131,6 @@ test('resolves specifier using resolver', async () => {
|
|
|
130
131
|
// eslint-disable-next-line @typescript-eslint/require-array-sort-compare
|
|
131
132
|
expect(result.dependencies.sort()).toStrictEqual(
|
|
132
133
|
// eslint-disable-next-line @typescript-eslint/require-array-sort-compare
|
|
133
|
-
['/node_modules/package-1/index.css', '/node_modules/package-2/index.less'].
|
|
134
|
+
[getFixturePath('/node_modules/package-1/index.css'), getFixturePath('/node_modules/package-2/index.less')].sort(),
|
|
134
135
|
);
|
|
135
136
|
});
|
|
@@ -10,9 +10,8 @@ function createLessPluginResolver(Less: typeof import('less'), options: Transfor
|
|
|
10
10
|
super();
|
|
11
11
|
this.options = options;
|
|
12
12
|
}
|
|
13
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
14
13
|
public override supports(filename: string): boolean {
|
|
15
|
-
return
|
|
14
|
+
return !this.options.isIgnoredSpecifier(filename);
|
|
16
15
|
}
|
|
17
16
|
public override async loadFile(
|
|
18
17
|
filename: string,
|