Skip to content

Commit 3bee186

Browse files
authored
Task-32000 (#1)
* apply TrySound#66 * relative path before absolute path * Upgrade css-select
1 parent 06c0b2a commit 3bee186

File tree

4 files changed

+57
-29
lines changed

4 files changed

+57
-29
lines changed

lib/index.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ module.exports = (opts = {}) => {
4545
const { name, url } = parseRuleDefinition(node.params);
4646
const { params, selectors } = getRuleParams(node);
4747
const loader = {
48-
id: resolveId(file, url, opts),
48+
id: typeof opts.resolve === "function"
49+
? opts.resolve(file, url, opts)
50+
: resolveId(file, url, opts),
4951
parent: file,
5052
params,
5153
selectors,
@@ -71,7 +73,10 @@ module.exports = (opts = {}) => {
7173
statements.loaders.forEach(
7274
({ url, params, valueNode, parsedValue }) => {
7375
const loader = {
74-
id: resolveId(file, url, opts),
76+
id:
77+
typeof opts.resolve === "function"
78+
? opts.resolve(file, url, opts)
79+
: resolveId(file, url, opts),
7580
parent: file,
7681
params,
7782
selectors: {},

lib/resolveId.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@ const { dirname, resolve } = require("path");
22
const { existsSync } = require("fs");
33

44
module.exports = function resolveId(file, url, opts) {
5+
if (file) {
6+
const resolved = resolve(dirname(file), url);
7+
8+
if (existsSync(resolved)) {
9+
return resolved;
10+
}
11+
}
12+
513
if (opts.paths && opts.paths.length) {
614
let absolutePath;
715

@@ -12,12 +20,6 @@ module.exports = function resolveId(file, url, opts) {
1220
return absolutePath;
1321
}
1422
}
15-
16-
return absolutePath;
17-
}
18-
19-
if (file) {
20-
return resolve(dirname(file), url);
2123
}
2224

2325
return resolve(url);

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
},
3636
"homepage": "https://github.com/TrySound/postcss-inline-svg",
3737
"dependencies": {
38-
"css-select": "^3.1.0",
38+
"css-select": "^4.3.0",
3939
"dom-serializer": "^1.1.0",
4040
"htmlparser2": "^5.0.1",
4141
"postcss-value-parser": "^4.0.0"

yarn.lock

Lines changed: 41 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -811,7 +811,7 @@ bcrypt-pbkdf@^1.0.0:
811811
dependencies:
812812
tweetnacl "^0.14.3"
813813

814-
boolbase@^1.0.0, boolbase@~1.0.0:
814+
boolbase@^1.0.0:
815815
version "1.0.0"
816816
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
817817
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
@@ -1099,21 +1099,21 @@ cross-spawn@^7.0.0:
10991099
shebang-command "^2.0.0"
11001100
which "^2.0.1"
11011101

1102-
css-select@^3.1.0:
1103-
version "3.1.0"
1104-
resolved "https://registry.yarnpkg.com/css-select/-/css-select-3.1.0.tgz#7e684316f184e5307d9e04d80a0d626333a9de8a"
1105-
integrity sha512-tVdCXyNpLLvy23s6E82sYq6+wOlaRyrkT9Ff9XLW7cl+xwZXS6h23qfEeDHna4U/W/IKe+X55tJ9BUnh6RwOGg==
1102+
css-select@^4.3.0:
1103+
version "4.3.0"
1104+
resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b"
1105+
integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==
11061106
dependencies:
11071107
boolbase "^1.0.0"
1108-
css-what "^3.4.1"
1109-
domhandler "^3.2.0"
1110-
domutils "^2.4.1"
1111-
nth-check "^1.0.2"
1108+
css-what "^6.0.1"
1109+
domhandler "^4.3.1"
1110+
domutils "^2.8.0"
1111+
nth-check "^2.0.1"
11121112

1113-
css-what@^3.4.1:
1114-
version "3.4.2"
1115-
resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4"
1116-
integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==
1113+
css-what@^6.0.1:
1114+
version "6.1.0"
1115+
resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
1116+
integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
11171117

11181118
cssom@^0.4.4:
11191119
version "0.4.4"
@@ -1243,21 +1243,33 @@ domelementtype@^2.0.1:
12431243
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.2.tgz#f3b6e549201e46f588b59463dd77187131fe6971"
12441244
integrity sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA==
12451245

1246+
domelementtype@^2.2.0:
1247+
version "2.3.0"
1248+
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
1249+
integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
1250+
12461251
domexception@^2.0.1:
12471252
version "2.0.1"
12481253
resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304"
12491254
integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==
12501255
dependencies:
12511256
webidl-conversions "^5.0.0"
12521257

1253-
domhandler@^3.0.0, domhandler@^3.2.0, domhandler@^3.3.0:
1258+
domhandler@^3.0.0, domhandler@^3.3.0:
12541259
version "3.3.0"
12551260
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a"
12561261
integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==
12571262
dependencies:
12581263
domelementtype "^2.0.1"
12591264

1260-
domutils@^2.4.1, domutils@^2.4.2:
1265+
domhandler@^4.2.0, domhandler@^4.3.1:
1266+
version "4.3.1"
1267+
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c"
1268+
integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
1269+
dependencies:
1270+
domelementtype "^2.2.0"
1271+
1272+
domutils@^2.4.2:
12611273
version "2.4.2"
12621274
resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.4.2.tgz#7ee5be261944e1ad487d9aa0616720010123922b"
12631275
integrity sha512-NKbgaM8ZJOecTZsIzW5gSuplsX2IWW2mIK7xVr8hTQF2v1CJWTmLZ1HOCh5sH+IzVPAGE5IucooOkvwBRAdowA==
@@ -1266,6 +1278,15 @@ domutils@^2.4.1, domutils@^2.4.2:
12661278
domelementtype "^2.0.1"
12671279
domhandler "^3.3.0"
12681280

1281+
domutils@^2.8.0:
1282+
version "2.8.0"
1283+
resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
1284+
integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
1285+
dependencies:
1286+
dom-serializer "^1.0.1"
1287+
domelementtype "^2.2.0"
1288+
domhandler "^4.2.0"
1289+
12691290
ecc-jsbn@~0.1.1:
12701291
version "0.1.2"
12711292
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
@@ -2807,12 +2828,12 @@ npm-run-path@^4.0.0:
28072828
dependencies:
28082829
path-key "^3.0.0"
28092830

2810-
nth-check@^1.0.2:
2811-
version "1.0.2"
2812-
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
2813-
integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
2831+
nth-check@^2.0.1:
2832+
version "2.1.1"
2833+
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
2834+
integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
28142835
dependencies:
2815-
boolbase "~1.0.0"
2836+
boolbase "^1.0.0"
28162837

28172838
nwsapi@^2.2.0:
28182839
version "2.2.0"

0 commit comments

Comments
 (0)