@atlaspack/transformer-sass 2.14.5-canary.137 → 2.14.5-canary.139
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/CHANGELOG.md +7 -0
- package/lib/SassTransformer.d.ts +3 -0
- package/lib/SassTransformer.js +25 -6
- package/package.json +10 -6
- package/src/{SassTransformer.js → SassTransformer.ts} +34 -14
- package/tsconfig.json +4 -0
package/CHANGELOG.md
CHANGED
package/lib/SassTransformer.js
CHANGED
|
@@ -47,6 +47,8 @@ function _util() {
|
|
|
47
47
|
return data;
|
|
48
48
|
}
|
|
49
49
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
50
|
+
// @ts-expect-error TS7016
|
|
51
|
+
|
|
50
52
|
// E.g: ~library/file.sass
|
|
51
53
|
const NODE_MODULE_ALIAS_RE = /^~[^/\\]/;
|
|
52
54
|
var _default = exports.default = new (_plugin().Transformer)({
|
|
@@ -67,20 +69,31 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
67
69
|
}
|
|
68
70
|
|
|
69
71
|
// Resolve relative paths from config file
|
|
72
|
+
// @ts-expect-error TS18046
|
|
70
73
|
if (configFile && configResult.includePaths) {
|
|
74
|
+
// @ts-expect-error TS18046
|
|
71
75
|
configResult.includePaths = configResult.includePaths.map(p => _path().default.resolve(_path().default.dirname(configFile.filePath), p));
|
|
72
76
|
}
|
|
77
|
+
|
|
78
|
+
// @ts-expect-error TS18046
|
|
73
79
|
if (configResult.importer === undefined) {
|
|
80
|
+
// @ts-expect-error TS18046
|
|
74
81
|
configResult.importer = [];
|
|
82
|
+
// @ts-expect-error TS18046
|
|
75
83
|
} else if (!Array.isArray(configResult.importer)) {
|
|
84
|
+
// @ts-expect-error TS18046
|
|
76
85
|
configResult.importer = [configResult.importer];
|
|
77
86
|
}
|
|
78
87
|
|
|
79
88
|
// Always emit sourcemap
|
|
89
|
+
// @ts-expect-error TS18046
|
|
80
90
|
configResult.sourceMap = true;
|
|
81
91
|
// sources are created relative to the directory of outFile
|
|
92
|
+
// @ts-expect-error TS18046
|
|
82
93
|
configResult.outFile = _path().default.join(options.projectRoot, 'style.css.map');
|
|
94
|
+
// @ts-expect-error TS18046
|
|
83
95
|
configResult.omitSourceMapUrl = true;
|
|
96
|
+
// @ts-expect-error TS18046
|
|
84
97
|
configResult.sourceMapContents = false;
|
|
85
98
|
return configResult;
|
|
86
99
|
},
|
|
@@ -98,18 +111,22 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
98
111
|
let result = await sassRender({
|
|
99
112
|
...rawConfig,
|
|
100
113
|
file: asset.filePath,
|
|
101
|
-
//
|
|
114
|
+
// @ts-expect-error TS2339
|
|
102
115
|
data: rawConfig.data ? rawConfig.data + _os().EOL + code : code,
|
|
103
116
|
importer: [
|
|
104
|
-
//
|
|
117
|
+
// @ts-expect-error TS2339
|
|
105
118
|
...rawConfig.importer, resolvePathImporter({
|
|
106
119
|
asset,
|
|
107
120
|
resolve,
|
|
108
|
-
//
|
|
121
|
+
// @ts-expect-error TS2339
|
|
109
122
|
includePaths: rawConfig.includePaths,
|
|
110
123
|
options
|
|
111
124
|
})],
|
|
112
|
-
indentedSyntax:
|
|
125
|
+
indentedSyntax:
|
|
126
|
+
// @ts-expect-error TS2339
|
|
127
|
+
typeof rawConfig.indentedSyntax === 'boolean' ?
|
|
128
|
+
// @ts-expect-error TS2339
|
|
129
|
+
rawConfig.indentedSyntax : asset.type === 'sass'
|
|
113
130
|
});
|
|
114
131
|
css = result.css;
|
|
115
132
|
for (let included of result.stats.includedFiles) {
|
|
@@ -135,7 +152,7 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
135
152
|
asset.setCode(css);
|
|
136
153
|
return [asset];
|
|
137
154
|
}
|
|
138
|
-
});
|
|
155
|
+
}); // @ts-expect-error TS7031
|
|
139
156
|
function resolvePathImporter({
|
|
140
157
|
asset,
|
|
141
158
|
resolve,
|
|
@@ -162,7 +179,9 @@ function resolvePathImporter({
|
|
|
162
179
|
}
|
|
163
180
|
asset.invalidateOnEnvChange('SASS_PATH');
|
|
164
181
|
if (options.env.SASS_PATH) {
|
|
165
|
-
paths.push(...options.env.SASS_PATH.split(process.platform === 'win32' ? ';' : ':'
|
|
182
|
+
paths.push(...options.env.SASS_PATH.split(process.platform === 'win32' ? ';' : ':'
|
|
183
|
+
// @ts-expect-error TS7006
|
|
184
|
+
).map(p => _path().default.resolve(options.projectRoot, p)));
|
|
166
185
|
}
|
|
167
186
|
const urls = [url];
|
|
168
187
|
const urlFileName = _path().default.basename(url);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaspack/transformer-sass",
|
|
3
|
-
"version": "2.14.5-canary.
|
|
3
|
+
"version": "2.14.5-canary.139+d2fd84977",
|
|
4
4
|
"license": "(MIT OR Apache-2.0)",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -9,16 +9,20 @@
|
|
|
9
9
|
"type": "git",
|
|
10
10
|
"url": "https://github.com/atlassian-labs/atlaspack.git"
|
|
11
11
|
},
|
|
12
|
-
"main": "lib/SassTransformer.js",
|
|
13
|
-
"source": "src/SassTransformer.
|
|
12
|
+
"main": "./lib/SassTransformer.js",
|
|
13
|
+
"source": "./src/SassTransformer.ts",
|
|
14
|
+
"types": "./lib/SassTransformer.d.ts",
|
|
14
15
|
"engines": {
|
|
15
16
|
"node": ">= 16.0.0"
|
|
16
17
|
},
|
|
17
18
|
"dependencies": {
|
|
18
|
-
"@atlaspack/plugin": "2.14.5-canary.
|
|
19
|
+
"@atlaspack/plugin": "2.14.5-canary.139+d2fd84977",
|
|
19
20
|
"@parcel/source-map": "^2.1.1",
|
|
20
21
|
"sass": "^1.38.0"
|
|
21
22
|
},
|
|
22
23
|
"type": "commonjs",
|
|
23
|
-
"
|
|
24
|
-
|
|
24
|
+
"scripts": {
|
|
25
|
+
"check-ts": "tsc --emitDeclarationOnly --rootDir src"
|
|
26
|
+
},
|
|
27
|
+
"gitHead": "d2fd849770fe6305e9c694bd97b1bd905abd9d94"
|
|
28
|
+
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
// @flow
|
|
2
1
|
import {Transformer} from '@atlaspack/plugin';
|
|
3
2
|
import path from 'path';
|
|
4
3
|
import {EOL} from 'os';
|
|
5
4
|
import SourceMap from '@parcel/source-map';
|
|
5
|
+
// @ts-expect-error TS7016
|
|
6
6
|
import sass from 'sass';
|
|
7
7
|
import {promisify} from 'util';
|
|
8
8
|
|
|
9
9
|
// E.g: ~library/file.sass
|
|
10
10
|
const NODE_MODULE_ALIAS_RE = /^~[^/\\]/;
|
|
11
11
|
|
|
12
|
-
export default
|
|
12
|
+
export default new Transformer({
|
|
13
13
|
async loadConfig({config, options}) {
|
|
14
14
|
let configFile = await config.getConfig(
|
|
15
15
|
['.sassrc', '.sassrc.json', '.sassrc.js', '.sassrc.cjs', '.sassrc.mjs'],
|
|
@@ -28,23 +28,33 @@ export default (new Transformer({
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
// Resolve relative paths from config file
|
|
31
|
+
// @ts-expect-error TS18046
|
|
31
32
|
if (configFile && configResult.includePaths) {
|
|
33
|
+
// @ts-expect-error TS18046
|
|
32
34
|
configResult.includePaths = configResult.includePaths.map((p) =>
|
|
33
35
|
path.resolve(path.dirname(configFile.filePath), p),
|
|
34
36
|
);
|
|
35
37
|
}
|
|
36
38
|
|
|
39
|
+
// @ts-expect-error TS18046
|
|
37
40
|
if (configResult.importer === undefined) {
|
|
41
|
+
// @ts-expect-error TS18046
|
|
38
42
|
configResult.importer = [];
|
|
43
|
+
// @ts-expect-error TS18046
|
|
39
44
|
} else if (!Array.isArray(configResult.importer)) {
|
|
45
|
+
// @ts-expect-error TS18046
|
|
40
46
|
configResult.importer = [configResult.importer];
|
|
41
47
|
}
|
|
42
48
|
|
|
43
49
|
// Always emit sourcemap
|
|
50
|
+
// @ts-expect-error TS18046
|
|
44
51
|
configResult.sourceMap = true;
|
|
45
52
|
// sources are created relative to the directory of outFile
|
|
53
|
+
// @ts-expect-error TS18046
|
|
46
54
|
configResult.outFile = path.join(options.projectRoot, 'style.css.map');
|
|
55
|
+
// @ts-expect-error TS18046
|
|
47
56
|
configResult.omitSourceMapUrl = true;
|
|
57
|
+
// @ts-expect-error TS18046
|
|
48
58
|
configResult.sourceMapContents = false;
|
|
49
59
|
|
|
50
60
|
return configResult;
|
|
@@ -59,22 +69,24 @@ export default (new Transformer({
|
|
|
59
69
|
let result = await sassRender({
|
|
60
70
|
...rawConfig,
|
|
61
71
|
file: asset.filePath,
|
|
62
|
-
//
|
|
72
|
+
// @ts-expect-error TS2339
|
|
63
73
|
data: rawConfig.data ? rawConfig.data + EOL + code : code,
|
|
64
74
|
importer: [
|
|
65
|
-
//
|
|
75
|
+
// @ts-expect-error TS2339
|
|
66
76
|
...rawConfig.importer,
|
|
67
77
|
resolvePathImporter({
|
|
68
78
|
asset,
|
|
69
79
|
resolve,
|
|
70
|
-
//
|
|
80
|
+
// @ts-expect-error TS2339
|
|
71
81
|
includePaths: rawConfig.includePaths,
|
|
72
82
|
options,
|
|
73
83
|
}),
|
|
74
84
|
],
|
|
75
85
|
indentedSyntax:
|
|
86
|
+
// @ts-expect-error TS2339
|
|
76
87
|
typeof rawConfig.indentedSyntax === 'boolean'
|
|
77
|
-
?
|
|
88
|
+
? // @ts-expect-error TS2339
|
|
89
|
+
rawConfig.indentedSyntax
|
|
78
90
|
: asset.type === 'sass',
|
|
79
91
|
});
|
|
80
92
|
|
|
@@ -90,7 +102,7 @@ export default (new Transformer({
|
|
|
90
102
|
map.addVLQMap(JSON.parse(result.map));
|
|
91
103
|
asset.setMap(map);
|
|
92
104
|
}
|
|
93
|
-
} catch (err) {
|
|
105
|
+
} catch (err: any) {
|
|
94
106
|
// Adapt the Error object for the reporter.
|
|
95
107
|
err.fileName = err.file;
|
|
96
108
|
err.loc = {
|
|
@@ -105,15 +117,22 @@ export default (new Transformer({
|
|
|
105
117
|
asset.setCode(css);
|
|
106
118
|
return [asset];
|
|
107
119
|
},
|
|
108
|
-
})
|
|
120
|
+
}) as Transformer<unknown>;
|
|
109
121
|
|
|
122
|
+
// @ts-expect-error TS7031
|
|
110
123
|
function resolvePathImporter({asset, resolve, includePaths, options}) {
|
|
111
124
|
// This is a reimplementation of the Sass resolution algorithm that uses Atlaspack's
|
|
112
125
|
// FS and tracks all tried files so they are watched for creation.
|
|
113
126
|
async function resolvePath(
|
|
114
|
-
url,
|
|
115
|
-
prev,
|
|
116
|
-
): Promise<
|
|
127
|
+
url: any,
|
|
128
|
+
prev: any,
|
|
129
|
+
): Promise<
|
|
130
|
+
| {
|
|
131
|
+
filePath: string;
|
|
132
|
+
contents: string;
|
|
133
|
+
}
|
|
134
|
+
| undefined
|
|
135
|
+
> {
|
|
117
136
|
/*
|
|
118
137
|
Imports are resolved by trying, in order:
|
|
119
138
|
* Loading a file relative to the file in which the `@import` appeared.
|
|
@@ -136,6 +155,7 @@ function resolvePathImporter({asset, resolve, includePaths, options}) {
|
|
|
136
155
|
paths.push(
|
|
137
156
|
...options.env.SASS_PATH.split(
|
|
138
157
|
process.platform === 'win32' ? ';' : ':',
|
|
158
|
+
// @ts-expect-error TS7006
|
|
139
159
|
).map((p) => path.resolve(options.projectRoot, p)),
|
|
140
160
|
);
|
|
141
161
|
}
|
|
@@ -156,7 +176,7 @@ function resolvePathImporter({asset, resolve, includePaths, options}) {
|
|
|
156
176
|
filePath,
|
|
157
177
|
contents,
|
|
158
178
|
};
|
|
159
|
-
} catch (err) {
|
|
179
|
+
} catch (err: any) {
|
|
160
180
|
asset.invalidateOnFileCreate({filePath});
|
|
161
181
|
}
|
|
162
182
|
}
|
|
@@ -176,13 +196,13 @@ function resolvePathImporter({asset, resolve, includePaths, options}) {
|
|
|
176
196
|
const contents = await asset.fs.readFile(filePath, 'utf8');
|
|
177
197
|
return {filePath, contents};
|
|
178
198
|
}
|
|
179
|
-
} catch (err) {
|
|
199
|
+
} catch (err: any) {
|
|
180
200
|
continue;
|
|
181
201
|
}
|
|
182
202
|
}
|
|
183
203
|
}
|
|
184
204
|
|
|
185
|
-
return function (rawUrl, prev, done) {
|
|
205
|
+
return function (rawUrl: any, prev: any, done: any) {
|
|
186
206
|
const url = rawUrl.replace(/^file:\/\//, '');
|
|
187
207
|
resolvePath(url, prev)
|
|
188
208
|
.then((resolved) => {
|
package/tsconfig.json
ADDED