From 2a3d7faef747a2b7e4535c6503ad4159891e648b Mon Sep 17 00:00:00 2001 From: "amaresh.sm" Date: Sun, 5 Jun 2022 13:27:12 +0530 Subject: [PATCH 1/5] chore: remove fibers package Fibers package is deprecated. --- CHANGELOG.md | 1 - README.md | 77 - package-lock.json | 45 - package.json | 5 - src/utils.js | 34 - .../sassOptions-option.test.js.snap | 1758 ++++------------- test/additionalData-option.test.js | 18 - test/implementation-option.test.js | 18 - test/loader.test.js | 17 - test/sassOptions-option.test.js | 116 -- test/sourceMap-options.test.js | 17 - test/validate-options.test.js | 19 - test/warnRuleAsWarning.test.js | 18 - test/webpackImporter-options.test.js | 17 - 14 files changed, 438 insertions(+), 1722 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 45bbbdeb..fafccfaf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -252,7 +252,6 @@ Using `~` means looking for files in [`node_modules`](https://webpack.js.org/con ### Features -* automatically use the `fibers` package if it is possible ([#744](https://github.com/webpack-contrib/sass-loader/issues/744)) ([96184e1](https://github.com/webpack-contrib/sass-loader/commit/96184e1)) * source map generation depends on the `devtool` option ([#743](https://github.com/webpack-contrib/sass-loader/issues/743)) ([fcea88e](https://github.com/webpack-contrib/sass-loader/commit/fcea88e)) * validate loader options ([#737](https://github.com/webpack-contrib/sass-loader/issues/737)) ([7b543fc](https://github.com/webpack-contrib/sass-loader/commit/7b543fc)) * reworked error handling from `node-sass`/`sass` diff --git a/README.md b/README.md index 4ba98d36..34e00e81 100644 --- a/README.md +++ b/README.md @@ -239,83 +239,6 @@ module.exports = { }; ``` -Note that when using `sass` (`Dart Sass`), **synchronous compilation is twice as fast as asynchronous compilation** by default, due to the overhead of asynchronous callbacks. -To avoid this overhead, you can use the [fibers](https://www.npmjs.com/package/fibers) package to call asynchronous importers from the synchronous code path. - -We automatically inject the [`fibers`](https://github.com/laverdet/node-fibers) package (setup `sassOptions.fiber`) for `Node.js` less v16.0.0 if is possible (i.e. you need install the [`fibers`](https://github.com/laverdet/node-fibers) package). - -> Fibers is not compatible with `Node.js` v16.0.0 or later ([see introduction to readme](https://github.com/laverdet/node-fibers)). - -**package.json** - -```json -{ - "devDependencies": { - "sass-loader": "^7.2.0", - "sass": "^1.22.10", - "fibers": "^4.0.1" - } -} -``` - -You can disable automatically injecting the [`fibers`](https://github.com/laverdet/node-fibers) package by passing a `false` value for the `sassOptions.fiber` option. - -**webpack.config.js** - -```js -module.exports = { - module: { - rules: [ - { - test: /\.s[ac]ss$/i, - use: [ - "style-loader", - "css-loader", - { - loader: "sass-loader", - options: { - implementation: require("sass"), - sassOptions: { - fiber: false, - }, - }, - }, - ], - }, - ], - }, -}; -``` - -You can also pass the `fiber` value using this code: - -**webpack.config.js** - -```js -module.exports = { - module: { - rules: [ - { - test: /\.s[ac]ss$/i, - use: [ - "style-loader", - "css-loader", - { - loader: "sass-loader", - options: { - implementation: require("sass"), - sassOptions: { - fiber: require("fibers"), - }, - }, - }, - ], - }, - ], - }, -}; -``` - ### `sassOptions` Type: diff --git a/package-lock.json b/package-lock.json index d22aba5e..6fc3b4a2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,6 @@ "eslint": "^8.16.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.25.4", - "fibers": "^5.0.1", "file-loader": "^6.2.0", "foundation-sites": "^6.6.3", "husky": "^8.0.1", @@ -59,16 +58,12 @@ "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "fibers": ">= 3.1.0", "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", "sass": "^1.3.0", "sass-embedded": "*", "webpack": "^5.0.0" }, "peerDependenciesMeta": { - "fibers": { - "optional": true - }, "node-sass": { "optional": true }, @@ -6619,18 +6614,6 @@ "node": ">=8" } }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -7834,19 +7817,6 @@ "pend": "~1.2.0" } }, - "node_modules/fibers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.1.tgz", - "integrity": "sha512-VMC7Frt87Oo0AOJ6EcPFbi+tZmkQ4tD85aatwyWL6I9cYMJmm2e+pXUJsfGZ36U7MffXtjou2XIiWJMtHriErw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "detect-libc": "^1.0.3" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -22020,12 +21990,6 @@ "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true - }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -22967,15 +22931,6 @@ "pend": "~1.2.0" } }, - "fibers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.1.tgz", - "integrity": "sha512-VMC7Frt87Oo0AOJ6EcPFbi+tZmkQ4tD85aatwyWL6I9cYMJmm2e+pXUJsfGZ36U7MffXtjou2XIiWJMtHriErw==", - "dev": true, - "requires": { - "detect-libc": "^1.0.3" - } - }, "figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", diff --git a/package.json b/package.json index 529ac126..7bd2653c 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,6 @@ "dist" ], "peerDependencies": { - "fibers": ">= 3.1.0", "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", "sass": "^1.3.0", "sass-embedded": "*", @@ -53,9 +52,6 @@ }, "sass-embedded": { "optional": true - }, - "fibers": { - "optional": true } }, "dependencies": { @@ -81,7 +77,6 @@ "eslint": "^8.16.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.25.4", - "fibers": "^5.0.1", "file-loader": "^6.2.0", "foundation-sites": "^6.6.3", "husky": "^8.0.1", diff --git a/src/utils.js b/src/utils.js index fba2af2a..1369d197 100644 --- a/src/utils.js +++ b/src/utils.js @@ -112,12 +112,6 @@ function proxyCustomImporters(importers, loaderContext) { ); } -function isSupportedFibers() { - const [nodeVersion] = process.versions.node.split("."); - - return Number(nodeVersion) < 16; -} - /** * Derives the sass options from the loader context and normalizes its values with sane defaults. * @@ -143,7 +137,6 @@ async function getSassOptions( : {} ); - const isDartSass = implementation.info.includes("dart-sass"); const isModernAPI = loaderOptions.api === "modern"; options.data = loaderOptions.additionalData @@ -233,32 +226,6 @@ async function getSassOptions( } else { options.file = resourcePath; - if (isDartSass && isSupportedFibers()) { - const shouldTryToResolveFibers = - !options.fiber && options.fiber !== false; - - if (shouldTryToResolveFibers) { - let fibers; - - try { - fibers = require.resolve("fibers"); - } catch (_error) { - // Nothing - } - - if (fibers) { - // eslint-disable-next-line global-require, import/no-dynamic-require - options.fiber = require(fibers); - } - } else if (options.fiber === false) { - // Don't pass the `fiber` option for `sass` (`Dart Sass`) - delete options.fiber; - } - } else { - // Don't pass the `fiber` option for `node-sass` - delete options.fiber; - } - // opt.outputStyle if (!options.outputStyle && isProductionLikeMode(loaderContext)) { options.outputStyle = "compressed"; @@ -808,5 +775,4 @@ export { getWebpackImporter, getCompileFn, normalizeSourceMap, - isSupportedFibers, }; diff --git a/test/__snapshots__/sassOptions-option.test.js.snap b/test/__snapshots__/sassOptions-option.test.js.snap index 1acc3106..35cd9720 100644 --- a/test/__snapshots__/sassOptions-option.test.js.snap +++ b/test/__snapshots__/sassOptions-option.test.js.snap @@ -1,6 +1,108 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import \\"./file.css\\"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: \\"\\\\e0c6\\"; +} + +.bar:before { + content: \\"∑\\"; +}" +`; + +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import \\"./file.css\\"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: \\"\\\\e0c6\\"; +} + +.bar:before { + content: \\"∑\\"; +}" +`; + +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -56,11 +158,11 @@ nav a { }" `; -exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -98,11 +200,11 @@ nav a { }" `; -exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import url(./file.css); body { @@ -150,11 +252,11 @@ nav a { " `; -exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import url(./file.css); body { @@ -188,11 +290,11 @@ nav a { " `; -exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -248,11 +350,11 @@ nav a { }" `; -exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -290,11 +392,11 @@ nav a { }" `; -exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -350,11 +452,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -392,11 +494,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -452,11 +554,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -494,11 +596,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import url(./file.css); body { @@ -546,11 +648,11 @@ nav a { " `; -exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import url(./file.css); body { @@ -584,11 +686,11 @@ nav a { " `; -exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -644,11 +746,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -686,11 +788,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -746,11 +848,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -788,11 +890,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -848,11 +950,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -890,101 +992,113 @@ nav a { }" `; -exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import url(./file.css); +@import \\"./file.css\\"; body { font: 100% Helvetica, sans-serif; - color: #333; } + color: #333; +} nav ul { margin: 0; padding: 0; - list-style: none; } - + list-style: none; +} nav li { - display: inline-block; } - + display: inline-block; +} nav a { display: block; padding: 6px 12px; - text-decoration: none; } + text-decoration: none; +} .box { -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; - border-radius: 10px; } + border-radius: 10px; +} -.message, .success, .error, .warning { +.message, .warning, .error, .success { border: 1px solid #ccc; padding: 10px; - color: #333; } + color: #333; +} .success { - border-color: green; } + border-color: green; +} .error { - border-color: red; } + border-color: red; +} .warning { - border-color: yellow; } + border-color: yellow; +} .foo:before { - content: \\"\\"; } + content: \\"\\\\e0c6\\"; +} .bar:before { - content: \\"∑\\"; } -" + content: \\"∑\\"; +}" `; -exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import url(./file.css); +@import \\"./file.css\\"; body { font: 100% Helvetica, sans-serif; - color: #333; } + color: #333; +} nav ul { margin: 0; padding: 0; - list-style: none; } - + list-style: none; +} nav li { - display: inline-block; } - + display: inline-block; +} nav a { display: block; padding: 6px 12px; - text-decoration: none; } + text-decoration: none; +} .box { -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; - border-radius: 10px; } + border-radius: 10px; +} .foo:before { - content: \\"\\"; } + content: \\"\\\\e0c6\\"; +} .bar:before { - content: \\"∑\\"; } -" + content: \\"∑\\"; +}" `; -exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -1040,11 +1154,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -1082,13 +1196,13 @@ nav a { }" `; -exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import \\"./file.css\\"; +@import url(./file.css); body { font: 100% Helvetica, sans-serif; color: #333; @@ -1099,9 +1213,11 @@ nav ul { padding: 0; list-style: none; } + nav li { display: inline-block; } + nav a { display: block; padding: 6px 12px; @@ -1115,7 +1231,7 @@ nav a { border-radius: 10px; } -.message, .warning, .error, .success { +.message, .success, .error, .warning { border: 1px solid #ccc; padding: 10px; color: #333; @@ -1134,21 +1250,22 @@ nav a { } .foo:before { - content: \\"\\\\e0c6\\"; + content: \\"\\"; } .bar:before { content: \\"∑\\"; -}" +} +" `; -exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import \\"./file.css\\"; +@import url(./file.css); body { font: 100% Helvetica, sans-serif; color: #333; @@ -1159,9 +1276,11 @@ nav ul { padding: 0; list-style: none; } + nav li { display: inline-block; } + nav a { display: block; padding: 6px 12px; @@ -1176,19 +1295,20 @@ nav a { } .foo:before { - content: \\"\\\\e0c6\\"; + content: \\"\\"; } .bar:before { content: \\"∑\\"; -}" +} +" `; -exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -1244,11 +1364,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -1286,11 +1406,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -1346,11 +1466,11 @@ nav a { }" `; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -1388,11 +1508,77 @@ nav a { }" `; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.warning,.error,.success{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:#ff0}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.warning,.error,.success{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:#ff0}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +"@import url(./file.css);body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.success,.error,.warning{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:yellow}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"} +" +`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +"@import url(./file.css);body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"} +" +`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.warning,.error,.success{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:#ff0}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.warning,.error,.success{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:#ff0}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -1448,11 +1634,11 @@ nav a { }" `; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -1490,13 +1676,13 @@ nav a { }" `; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import url(./file.css); +@import \\"./file.css\\"; body { font: 100% Helvetica, sans-serif; color: #333; @@ -1507,11 +1693,9 @@ nav ul { padding: 0; list-style: none; } - nav li { display: inline-block; } - nav a { display: block; padding: 6px 12px; @@ -1525,7 +1709,7 @@ nav a { border-radius: 10px; } -.message, .success, .error, .warning { +.message, .warning, .error, .success { border: 1px solid #ccc; padding: 10px; color: #333; @@ -1544,22 +1728,21 @@ nav a { } .foo:before { - content: \\"\\"; + content: \\"\\\\e0c6\\"; } .bar:before { content: \\"∑\\"; -} -" +}" `; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import url(./file.css); +@import \\"./file.css\\"; body { font: 100% Helvetica, sans-serif; color: #333; @@ -1570,11 +1753,9 @@ nav ul { padding: 0; list-style: none; } - nav li { display: inline-block; } - nav a { display: block; padding: 6px 12px; @@ -1589,858 +1770,89 @@ nav a { } .foo:before { - content: \\"\\"; + content: \\"\\\\e0c6\\"; } .bar:before { content: \\"∑\\"; -} -" +}" `; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should work when the option is empty "Object" ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import \\"./file.css\\"; +@import url(./file.css); body { font: 100% Helvetica, sans-serif; - color: #333; -} + color: #333; } nav ul { margin: 0; padding: 0; - list-style: none; -} + list-style: none; } + nav li { - display: inline-block; -} + display: inline-block; } + nav a { display: block; padding: 6px 12px; - text-decoration: none; -} + text-decoration: none; } .box { -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; - border-radius: 10px; -} + border-radius: 10px; } -.message, .warning, .error, .success { +.message, .success, .error, .warning { border: 1px solid #ccc; padding: 10px; - color: #333; -} + color: #333; } .success { - border-color: green; -} + border-color: green; } .error { - border-color: red; -} + border-color: red; } .warning { - border-color: yellow; -} + border-color: yellow; } .foo:before { - content: \\"\\\\e0c6\\"; -} + content: \\"\\"; } .bar:before { - content: \\"∑\\"; -}" + content: \\"∑\\"; } +" `; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option is empty "Object" ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option is empty "Object" ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should work when the option is empty "Object" ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import \\"./file.css\\"; +@import url(./file.css); body { font: 100% Helvetica, sans-serif; - color: #333; -} + color: #333; } nav ul { margin: 0; padding: 0; - list-style: none; -} + list-style: none; } + nav li { - display: inline-block; -} + display: inline-block; } + nav a { display: block; padding: 6px 12px; - text-decoration: none; -} - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; -} - -.foo:before { - content: \\"\\\\e0c6\\"; -} - -.bar:before { - content: \\"∑\\"; -}" -`; - -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import \\"./file.css\\"; -body { - font: 100% Helvetica, sans-serif; - color: #333; -} - -nav ul { - margin: 0; - padding: 0; - list-style: none; -} -nav li { - display: inline-block; -} -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; -} - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; -} - -.message, .warning, .error, .success { - border: 1px solid #ccc; - padding: 10px; - color: #333; -} - -.success { - border-color: green; -} - -.error { - border-color: red; -} - -.warning { - border-color: yellow; -} - -.foo:before { - content: \\"\\\\e0c6\\"; -} - -.bar:before { - content: \\"∑\\"; -}" -`; - -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import \\"./file.css\\"; -body { - font: 100% Helvetica, sans-serif; - color: #333; -} - -nav ul { - margin: 0; - padding: 0; - list-style: none; -} -nav li { - display: inline-block; -} -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; -} - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; -} - -.foo:before { - content: \\"\\\\e0c6\\"; -} - -.bar:before { - content: \\"∑\\"; -}" -`; - -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.warning,.error,.success{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:#ff0}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.warning,.error,.success{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:#ff0}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` -"@import url(./file.css);body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.success,.error,.warning{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:yellow}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"} -" -`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` -"@import url(./file.css);body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"} -" -`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.warning,.error,.success{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:#ff0}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.warning,.error,.success{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:#ff0}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use the "fibers" package if it is possible ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import \\"./file.css\\"; -body { - font: 100% Helvetica, sans-serif; - color: #333; -} - -nav ul { - margin: 0; - padding: 0; - list-style: none; -} -nav li { - display: inline-block; -} -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; -} - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; -} - -.message, .warning, .error, .success { - border: 1px solid #ccc; - padding: 10px; - color: #333; -} - -.success { - border-color: green; -} - -.error { - border-color: red; -} - -.warning { - border-color: yellow; -} - -.foo:before { - content: \\"\\\\e0c6\\"; -} - -.bar:before { - content: \\"∑\\"; -}" -`; - -exports[`sassOptions option should use the "fibers" package if it is possible ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use the "fibers" package if it is possible ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use the "fibers" package if it is possible ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import \\"./file.css\\"; -body { - font: 100% Helvetica, sans-serif; - color: #333; -} - -nav ul { - margin: 0; - padding: 0; - list-style: none; -} -nav li { - display: inline-block; -} -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; -} - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; -} - -.foo:before { - content: \\"\\\\e0c6\\"; -} - -.bar:before { - content: \\"∑\\"; -}" -`; - -exports[`sassOptions option should use the "fibers" package if it is possible ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use the "fibers" package if it is possible ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use the "fibers" package if it is possible ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import url(./file.css); -body { - font: 100% Helvetica, sans-serif; - color: #333; } - -nav ul { - margin: 0; - padding: 0; - list-style: none; } - -nav li { - display: inline-block; } - -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; } - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; } - -.message, .success, .error, .warning { - border: 1px solid #ccc; - padding: 10px; - color: #333; } - -.success { - border-color: green; } - -.error { - border-color: red; } - -.warning { - border-color: yellow; } - -.foo:before { - content: \\"\\"; } - -.bar:before { - content: \\"∑\\"; } -" -`; - -exports[`sassOptions option should use the "fibers" package if it is possible ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use the "fibers" package if it is possible ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use the "fibers" package if it is possible ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import url(./file.css); -body { - font: 100% Helvetica, sans-serif; - color: #333; } - -nav ul { - margin: 0; - padding: 0; - list-style: none; } - -nav li { - display: inline-block; } - -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; } - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; } - -.foo:before { - content: \\"\\"; } - -.bar:before { - content: \\"∑\\"; } -" -`; - -exports[`sassOptions option should use the "fibers" package if it is possible ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use the "fibers" package if it is possible ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use the "fibers" package if it is possible ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import \\"./file.css\\"; -body { - font: 100% Helvetica, sans-serif; - color: #333; -} - -nav ul { - margin: 0; - padding: 0; - list-style: none; -} -nav li { - display: inline-block; -} -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; -} - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; -} - -.message, .warning, .error, .success { - border: 1px solid #ccc; - padding: 10px; - color: #333; -} - -.success { - border-color: green; -} - -.error { - border-color: red; -} - -.warning { - border-color: yellow; -} - -.foo:before { - content: \\"\\\\e0c6\\"; -} - -.bar:before { - content: \\"∑\\"; -}" -`; - -exports[`sassOptions option should use the "fibers" package if it is possible ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use the "fibers" package if it is possible ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use the "fibers" package if it is possible ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import \\"./file.css\\"; -body { - font: 100% Helvetica, sans-serif; - color: #333; -} - -nav ul { - margin: 0; - padding: 0; - list-style: none; -} -nav li { - display: inline-block; -} -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; -} - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; -} - -.foo:before { - content: \\"\\\\e0c6\\"; -} - -.bar:before { - content: \\"∑\\"; -}" -`; - -exports[`sassOptions option should use the "fibers" package if it is possible ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use the "fibers" package if it is possible ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import \\"./file.css\\"; -body { - font: 100% Helvetica, sans-serif; - color: #333; -} - -nav ul { - margin: 0; - padding: 0; - list-style: none; -} -nav li { - display: inline-block; -} -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; -} - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; -} - -.message, .warning, .error, .success { - border: 1px solid #ccc; - padding: 10px; - color: #333; -} - -.success { - border-color: green; -} - -.error { - border-color: red; -} - -.warning { - border-color: yellow; -} - -.foo:before { - content: \\"\\\\e0c6\\"; -} - -.bar:before { - content: \\"∑\\"; -}" -`; - -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import \\"./file.css\\"; -body { - font: 100% Helvetica, sans-serif; - color: #333; -} - -nav ul { - margin: 0; - padding: 0; - list-style: none; -} -nav li { - display: inline-block; -} -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; -} - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; -} - -.foo:before { - content: \\"\\\\e0c6\\"; -} - -.bar:before { - content: \\"∑\\"; -}" -`; - -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import \\"./file.css\\"; -body { - font: 100% Helvetica, sans-serif; - color: #333; -} - -nav ul { - margin: 0; - padding: 0; - list-style: none; -} -nav li { - display: inline-block; -} -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; -} - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; -} - -.message, .warning, .error, .success { - border: 1px solid #ccc; - padding: 10px; - color: #333; -} - -.success { - border-color: green; -} - -.error { - border-color: red; -} - -.warning { - border-color: yellow; -} - -.foo:before { - content: \\"\\\\e0c6\\"; -} - -.bar:before { - content: \\"∑\\"; -}" -`; - -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import \\"./file.css\\"; -body { - font: 100% Helvetica, sans-serif; - color: #333; -} - -nav ul { - margin: 0; - padding: 0; - list-style: none; -} -nav li { - display: inline-block; -} -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; -} - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; -} - -.foo:before { - content: \\"\\\\e0c6\\"; -} - -.bar:before { - content: \\"∑\\"; -}" -`; - -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should work when the option is empty "Object" ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import url(./file.css); -body { - font: 100% Helvetica, sans-serif; - color: #333; } - -nav ul { - margin: 0; - padding: 0; - list-style: none; } - -nav li { - display: inline-block; } - -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; } - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; } - -.message, .success, .error, .warning { - border: 1px solid #ccc; - padding: 10px; - color: #333; } - -.success { - border-color: green; } - -.error { - border-color: red; } - -.warning { - border-color: yellow; } - -.foo:before { - content: \\"\\"; } - -.bar:before { - content: \\"∑\\"; } -" -`; - -exports[`sassOptions option should work when the option is empty "Object" ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should work when the option is empty "Object" ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should work when the option is empty "Object" ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import url(./file.css); -body { - font: 100% Helvetica, sans-serif; - color: #333; } - -nav ul { - margin: 0; - padding: 0; - list-style: none; } - -nav li { - display: inline-block; } - -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; } + text-decoration: none; } .box { -webkit-border-radius: 10px; @@ -3718,243 +3130,51 @@ nav a { exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import \\"./file.css\\"; -body { - font: 100% Helvetica, sans-serif; - color: #333; -} - -nav ul { - margin: 0; - padding: 0; - list-style: none; -} -nav li { - display: inline-block; -} -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; -} - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; -} - -.foo:before { - content: \\"\\\\e0c6\\"; -} - -.bar:before { - content: \\"∑\\"; -}" -`; - -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import \\"./file.css\\"; -body { - font: 100% Helvetica, sans-serif; - color: #333; -} - -nav ul { - margin: 0; - padding: 0; - list-style: none; -} -nav li { - display: inline-block; -} -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; -} - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; -} - -.message, .warning, .error, .success { - border: 1px solid #ccc; - padding: 10px; - color: #333; -} - -.success { - border-color: green; -} - -.error { - border-color: red; -} - -.warning { - border-color: yellow; -} - -.foo:before { - content: \\"\\\\e0c6\\"; -} - -.bar:before { - content: \\"∑\\"; -}" -`; - -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import \\"./file.css\\"; -body { - font: 100% Helvetica, sans-serif; - color: #333; -} - -nav ul { - margin: 0; - padding: 0; - list-style: none; -} -nav li { - display: inline-block; -} -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; -} - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; -} - -.foo:before { - content: \\"\\\\e0c6\\"; -} - -.bar:before { - content: \\"∑\\"; -}" -`; - -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import url(./file.css); -body { - font: 100% Helvetica, sans-serif; - color: #333; } - -nav ul { - margin: 0; - padding: 0; - list-style: none; } - -nav li { - display: inline-block; } - -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; } - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; } - -.message, .success, .error, .warning { - border: 1px solid #ccc; - padding: 10px; - color: #333; } - -.success { - border-color: green; } - -.error { - border-color: red; } - -.warning { - border-color: yellow; } - -.foo:before { - content: \\"\\"; } - -.bar:before { - content: \\"∑\\"; } -" -`; - -exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import url(./file.css); +@import \\"./file.css\\"; body { font: 100% Helvetica, sans-serif; - color: #333; } + color: #333; +} nav ul { margin: 0; padding: 0; - list-style: none; } - + list-style: none; +} nav li { - display: inline-block; } - + display: inline-block; +} nav a { display: block; padding: 6px 12px; - text-decoration: none; } + text-decoration: none; +} .box { -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; - border-radius: 10px; } + border-radius: 10px; +} .foo:before { - content: \\"\\"; } + content: \\"\\\\e0c6\\"; +} .bar:before { - content: \\"∑\\"; } -" + content: \\"∑\\"; +}" `; -exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -4010,11 +3230,11 @@ nav a { }" `; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -4052,113 +3272,101 @@ nav a { }" `; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import \\"./file.css\\"; +@import url(./file.css); body { - font: 100% Helvetica, sans-serif; - color: #333; -} + font: 100% Helvetica, sans-serif; + color: #333; } nav ul { - margin: 0; - padding: 0; - list-style: none; -} + margin: 0; + padding: 0; + list-style: none; } + nav li { - display: inline-block; -} + display: inline-block; } + nav a { - display: block; - padding: 6px 12px; - text-decoration: none; -} + display: block; + padding: 6px 12px; + text-decoration: none; } .box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; -} + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; } -.message, .warning, .error, .success { - border: 1px solid #ccc; - padding: 10px; - color: #333; -} +.message, .success, .error, .warning { + border: 1px solid #ccc; + padding: 10px; + color: #333; } .success { - border-color: green; -} + border-color: green; } .error { - border-color: red; -} + border-color: red; } .warning { - border-color: yellow; -} + border-color: yellow; } .foo:before { - content: \\"\\\\e0c6\\"; -} + content: \\"\\"; } .bar:before { - content: \\"∑\\"; -}" + content: \\"∑\\"; } +" `; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import \\"./file.css\\"; +@import url(./file.css); body { - font: 100% Helvetica, sans-serif; - color: #333; -} + font: 100% Helvetica, sans-serif; + color: #333; } nav ul { - margin: 0; - padding: 0; - list-style: none; -} + margin: 0; + padding: 0; + list-style: none; } + nav li { - display: inline-block; -} + display: inline-block; } + nav a { - display: block; - padding: 6px 12px; - text-decoration: none; -} + display: block; + padding: 6px 12px; + text-decoration: none; } .box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; -} + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; } .foo:before { - content: \\"\\\\e0c6\\"; -} + content: \\"\\"; } .bar:before { - content: \\"∑\\"; -}" + content: \\"∑\\"; } +" `; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work with the "fiber" option ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -4214,11 +3422,11 @@ nav a { }" `; -exports[`sassOptions option should work with the "fiber" option ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work with the "fiber" option ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work with the "fiber" option ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -4256,101 +3464,11 @@ nav a { }" `; -exports[`sassOptions option should work with the "fiber" option ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should work with the "fiber" option ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should work with the "fiber" option ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import url(./file.css); -body { - font: 100% Helvetica, sans-serif; - color: #333; } - -nav ul { - margin: 0; - padding: 0; - list-style: none; } - -nav li { - display: inline-block; } - -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; } - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; } - -.message, .success, .error, .warning { - border: 1px solid #ccc; - padding: 10px; - color: #333; } - -.success { - border-color: green; } - -.error { - border-color: red; } - -.warning { - border-color: yellow; } - -.foo:before { - content: \\"\\"; } - -.bar:before { - content: \\"∑\\"; } -" -`; - -exports[`sassOptions option should work with the "fiber" option ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should work with the "fiber" option ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should work with the "fiber" option ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import url(./file.css); -body { - font: 100% Helvetica, sans-serif; - color: #333; } - -nav ul { - margin: 0; - padding: 0; - list-style: none; } - -nav li { - display: inline-block; } - -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; } - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; } - -.foo:before { - content: \\"\\"; } - -.bar:before { - content: \\"∑\\"; } -" -`; - -exports[`sassOptions option should work with the "fiber" option ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work with the "fiber" option ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work with the "fiber" option ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -4406,11 +3524,11 @@ nav a { }" `; -exports[`sassOptions option should work with the "fiber" option ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work with the "fiber" option ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work with the "fiber" option ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -4448,9 +3566,9 @@ nav a { }" `; -exports[`sassOptions option should work with the "fiber" option ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work with the "fiber" option ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; exports[`sassOptions option should work with the "functions" option ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "h2, h3, h4, h5 { diff --git a/test/additionalData-option.test.js b/test/additionalData-option.test.js index 69f6ecbc..1ae63d6a 100644 --- a/test/additionalData-option.test.js +++ b/test/additionalData-option.test.js @@ -1,5 +1,3 @@ -import { isSupportedFibers } from "../src/utils"; - import { compile, getCodeFromBundle, @@ -11,26 +9,10 @@ import { getWarnings, } from "./helpers"; -let Fiber; const implementations = getImplementationsAndAPI(); const syntaxStyles = ["scss", "sass"]; describe("additionalData option", () => { - beforeAll(async () => { - if (isSupportedFibers()) { - const { default: fibers } = await import("fibers"); - - Fiber = fibers; - } - }); - - beforeEach(() => { - if (isSupportedFibers()) { - // The `sass` (`Dart Sass`) package modify the `Function` prototype, but the `jest` lose a prototype - Object.setPrototypeOf(Fiber, Function.prototype); - } - }); - implementations.forEach((item) => { const { name: implementationName, api, implementation } = item; diff --git a/test/implementation-option.test.js b/test/implementation-option.test.js index c064f48f..d699a0f1 100644 --- a/test/implementation-option.test.js +++ b/test/implementation-option.test.js @@ -3,8 +3,6 @@ import dartSass from "sass"; // eslint-disable-next-line import/no-namespace import * as sassEmbedded from "sass-embedded"; -import { isSupportedFibers } from "../src/utils"; - import { compile, getCodeFromBundle, @@ -18,25 +16,9 @@ import { jest.setTimeout(30000); -let Fiber; const implementations = [...getImplementationsAndAPI(), "sass_string"]; describe("implementation option", () => { - beforeAll(async () => { - if (isSupportedFibers()) { - const { default: fibers } = await import("fibers"); - - Fiber = fibers; - } - }); - - beforeEach(() => { - if (isSupportedFibers()) { - // The `sass` (`Dart Sass`) package modify the `Function` prototype, but the `jest` lose a prototype - Object.setPrototypeOf(Fiber, Function.prototype); - } - }); - implementations.forEach((item) => { let implementationName; let implementation; diff --git a/test/loader.test.js b/test/loader.test.js index dd580e08..b6b1e10a 100644 --- a/test/loader.test.js +++ b/test/loader.test.js @@ -3,8 +3,6 @@ import url from "url"; import del from "del"; -import { isSupportedFibers } from "../src/utils"; - import { compile, getCodeFromBundle, @@ -18,25 +16,10 @@ import { jest.setTimeout(60000); -let Fiber; const implementations = getImplementationsAndAPI(); const syntaxStyles = ["scss", "sass"]; describe("loader", () => { - beforeAll(async () => { - if (isSupportedFibers()) { - const { default: fibers } = await import("fibers"); - Fiber = fibers; - } - }); - - beforeEach(() => { - if (isSupportedFibers()) { - // The `sass` (`Dart Sass`) package modify the `Function` prototype, but the `jest` lose a prototype - Object.setPrototypeOf(Fiber, Function.prototype); - } - }); - implementations.forEach((item) => { const { name: implementationName, api, implementation } = item; // TODO fix me https://github.com/webpack-contrib/sass-loader/issues/774 diff --git a/test/sassOptions-option.test.js b/test/sassOptions-option.test.js index bac298e5..d53fc5db 100644 --- a/test/sassOptions-option.test.js +++ b/test/sassOptions-option.test.js @@ -1,10 +1,6 @@ import path from "path"; import globImporter from "node-sass-glob-importer"; -import semver from "semver"; -import dartSass from "sass"; - -import { isSupportedFibers } from "../src/utils"; import { compile, @@ -21,25 +17,10 @@ import { jest.setTimeout(30000); -let Fiber; const implementations = getImplementationsAndAPI(); const syntaxStyles = ["scss", "sass"]; describe("sassOptions option", () => { - beforeAll(async () => { - if (isSupportedFibers()) { - const { default: fibers } = await import("fibers"); - Fiber = fibers; - } - }); - - beforeEach(() => { - if (isSupportedFibers()) { - // The `sass` (`Dart Sass`) package modify the `Function` prototype, but the `jest` lose a prototype - Object.setPrototypeOf(Fiber, Function.prototype); - } - }); - implementations.forEach((item) => { const { name: implementationName, api, implementation } = item; const isModernAPI = api === "modern"; @@ -419,103 +400,6 @@ describe("sassOptions option", () => { }); } - if (!isModernAPI) { - it(`should work with the "fiber" option ('${implementationName}', '${api}' API, '${syntax}' syntax)`, async () => { - const dartSassSpy = jest.spyOn(dartSass, "render"); - const testId = getTestId("language", syntax); - const options = { - implementation, - api, - sassOptions: {}, - }; - - if ( - implementationName === "dart-sass" && - semver.satisfies(process.version, ">= 10") - ) { - // eslint-disable-next-line global-require - options.sassOptions.fiber = Fiber; - } - - const compiler = getCompiler(testId, { loader: { options } }); - const stats = await compile(compiler); - const codeFromBundle = getCodeFromBundle(stats, compiler); - const codeFromSass = await getCodeFromSass(testId, options); - - if ( - implementationName === "dart-sass" && - semver.satisfies(process.version, ">= 10") && - isSupportedFibers() - ) { - expect(dartSassSpy.mock.calls[0][0]).toHaveProperty("fiber"); - } - - expect(codeFromBundle.css).toBe(codeFromSass.css); - expect(codeFromBundle.css).toMatchSnapshot("css"); - expect(getWarnings(stats)).toMatchSnapshot("warnings"); - expect(getErrors(stats)).toMatchSnapshot("errors"); - - dartSassSpy.mockRestore(); - }); - - it(`should use the "fibers" package if it is possible ('${implementationName}', '${api}' API, '${syntax}' syntax)`, async () => { - const dartSassSpy = jest.spyOn(dartSass, "render"); - const testId = getTestId("language", syntax); - const options = { - implementation, - api, - sassOptions: {}, - }; - const compiler = getCompiler(testId, { loader: { options } }); - const stats = await compile(compiler); - const codeFromBundle = getCodeFromBundle(stats, compiler); - const codeFromSass = await getCodeFromSass(testId, options); - - if ( - implementationName === "dart-sass" && - semver.satisfies(process.version, ">= 10") && - isSupportedFibers() - ) { - expect(dartSassSpy.mock.calls[0][0]).toHaveProperty("fiber"); - } - - expect(codeFromBundle.css).toBe(codeFromSass.css); - expect(codeFromBundle.css).toMatchSnapshot("css"); - expect(getWarnings(stats)).toMatchSnapshot("warnings"); - expect(getErrors(stats)).toMatchSnapshot("errors"); - - dartSassSpy.mockRestore(); - }); - - it(`should don't use the "fibers" package when the "fiber" option is "false" ('${implementationName}', '${api}' API, '${syntax}' syntax)`, async () => { - const dartSassSpy = jest.spyOn(dartSass, "render"); - const testId = getTestId("language", syntax); - const options = { - implementation, - api, - sassOptions: { fiber: false }, - }; - const compiler = getCompiler(testId, { loader: { options } }); - const stats = await compile(compiler); - const codeFromBundle = getCodeFromBundle(stats, compiler); - const codeFromSass = await getCodeFromSass(testId, options); - - if ( - implementationName === "dart-sass" && - semver.satisfies(process.version, ">= 10") - ) { - expect(dartSassSpy.mock.calls[0][0]).not.toHaveProperty("fiber"); - } - - expect(codeFromBundle.css).toBe(codeFromSass.css); - expect(codeFromBundle.css).toMatchSnapshot("css"); - expect(getWarnings(stats)).toMatchSnapshot("warnings"); - expect(getErrors(stats)).toMatchSnapshot("errors"); - - dartSassSpy.mockRestore(); - }); - } - it(`should respect the "outputStyle"/"style" option ('${implementationName}', '${api}' API, '${syntax}' syntax)`, async () => { const testId = getTestId("language", syntax); const options = { diff --git a/test/sourceMap-options.test.js b/test/sourceMap-options.test.js index fb3fd891..468fe160 100644 --- a/test/sourceMap-options.test.js +++ b/test/sourceMap-options.test.js @@ -2,8 +2,6 @@ import fs from "fs"; import path from "path"; import url from "url"; -import { isSupportedFibers } from "../src/utils"; - import { compile, getCodeFromBundle, @@ -14,25 +12,10 @@ import { getWarnings, } from "./helpers"; -let Fiber; const implementations = getImplementationsAndAPI(); const syntaxStyles = ["scss", "sass"]; describe("sourceMap option", () => { - beforeAll(async () => { - if (isSupportedFibers()) { - const { default: fibers } = await import("fibers"); - Fiber = fibers; - } - }); - - beforeEach(() => { - if (isSupportedFibers()) { - // The `sass` (`Dart Sass`) package modify the `Function` prototype, but the `jest` lose a prototype - Object.setPrototypeOf(Fiber, Function.prototype); - } - }); - implementations.forEach((item) => { syntaxStyles.forEach((syntax) => { const { name: implementationName, api, implementation } = item; diff --git a/test/validate-options.test.js b/test/validate-options.test.js index cbb0d9b0..7d87d17c 100644 --- a/test/validate-options.test.js +++ b/test/validate-options.test.js @@ -1,5 +1,3 @@ -import { isSupportedFibers } from "../src/utils"; - import { getCompiler, compile, @@ -7,24 +5,7 @@ import { getImplementationByName, } from "./helpers/index"; -let Fiber; - describe("validate options", () => { - beforeAll(async () => { - if (isSupportedFibers()) { - const { default: fibers } = await import("fibers"); - - Fiber = fibers; - } - }); - - beforeEach(() => { - if (isSupportedFibers()) { - // The `sass` (`Dart Sass`) package modify the `Function` prototype, but the `jest` lose a prototype - Object.setPrototypeOf(Fiber, Function.prototype); - } - }); - const tests = { implementation: { success: [ diff --git a/test/warnRuleAsWarning.test.js b/test/warnRuleAsWarning.test.js index f16efc13..4806d543 100644 --- a/test/warnRuleAsWarning.test.js +++ b/test/warnRuleAsWarning.test.js @@ -1,7 +1,5 @@ import url from "url"; -import { isSupportedFibers } from "../src/utils"; - import { compile, getCodeFromBundle, @@ -15,26 +13,10 @@ import { jest.setTimeout(60000); -let Fiber; const implementations = getImplementationsAndAPI(); const syntaxStyles = ["scss", "sass"]; describe("loader", () => { - beforeAll(async () => { - if (isSupportedFibers()) { - const { default: fibers } = await import("fibers"); - - Fiber = fibers; - } - }); - - beforeEach(() => { - if (isSupportedFibers()) { - // The `sass` (`Dart Sass`) package modify the `Function` prototype, but the `jest` lose a prototype - Object.setPrototypeOf(Fiber, Function.prototype); - } - }); - implementations.forEach((item) => { const { name: implementationName, api, implementation } = item; diff --git a/test/webpackImporter-options.test.js b/test/webpackImporter-options.test.js index 8e22805b..d3c7395c 100644 --- a/test/webpackImporter-options.test.js +++ b/test/webpackImporter-options.test.js @@ -1,5 +1,3 @@ -import { isSupportedFibers } from "../src/utils"; - import { compile, getCodeFromBundle, @@ -11,25 +9,10 @@ import { getWarnings, } from "./helpers"; -let Fiber; const implementations = getImplementationsAndAPI(); const syntaxStyles = ["scss", "sass"]; describe("webpackImporter option", () => { - beforeAll(async () => { - if (isSupportedFibers()) { - const { default: fibers } = await import("fibers"); - Fiber = fibers; - } - }); - - beforeEach(() => { - if (isSupportedFibers()) { - // The `sass` (`Dart Sass`) package modify the `Function` prototype, but the `jest` lose a prototype - Object.setPrototypeOf(Fiber, Function.prototype); - } - }); - implementations.forEach((item) => { syntaxStyles.forEach((syntax) => { const { name: implementationName, api, implementation } = item; From 0318be027ceeccccac803e28ab154d2776a25d06 Mon Sep 17 00:00:00 2001 From: "amaresh.sm" Date: Sun, 5 Jun 2022 13:57:22 +0530 Subject: [PATCH 2/5] chore: revert changelog update --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fafccfaf..975ddb76 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -59,7 +59,7 @@ All notable changes to this project will be documented in this file. See [standa * allow `String` value for the `implementation` option ([382a3ca](https://github.com/webpack-contrib/sass-loader/commit/382a3ca7ca8b7041712de30ce5ad8e6532944c1b)) -## [12.0.0](https://github.com/webpack-contrib/sass-loader/compare/v11.1.1...v12.0.0) (2021-06-01) +## [12.0.0](https://github.com/webpack-contrib/sa automatically use thess-loader/compare/v11.1.1...v12.0.0) (2021-06-01) ### ⚠ BREAKING CHANGES @@ -252,6 +252,7 @@ Using `~` means looking for files in [`node_modules`](https://webpack.js.org/con ### Features +* automatically use the `fibers` package if it is possible ([#744](https://github.com/webpack-contrib/sass-loader/issues/744)) ([96184e1](https://github.com/webpack-contrib/sass-loader/commit/96184e1)) * source map generation depends on the `devtool` option ([#743](https://github.com/webpack-contrib/sass-loader/issues/743)) ([fcea88e](https://github.com/webpack-contrib/sass-loader/commit/fcea88e)) * validate loader options ([#737](https://github.com/webpack-contrib/sass-loader/issues/737)) ([7b543fc](https://github.com/webpack-contrib/sass-loader/commit/7b543fc)) * reworked error handling from `node-sass`/`sass` From 2a2f07246d8daca1c3ac79d8727c3d53de7573bb Mon Sep 17 00:00:00 2001 From: "amaresh.sm" Date: Sun, 5 Jun 2022 15:21:18 +0530 Subject: [PATCH 3/5] chore: update CHANGELOG --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 975ddb76..45bbbdeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -59,7 +59,7 @@ All notable changes to this project will be documented in this file. See [standa * allow `String` value for the `implementation` option ([382a3ca](https://github.com/webpack-contrib/sass-loader/commit/382a3ca7ca8b7041712de30ce5ad8e6532944c1b)) -## [12.0.0](https://github.com/webpack-contrib/sa automatically use thess-loader/compare/v11.1.1...v12.0.0) (2021-06-01) +## [12.0.0](https://github.com/webpack-contrib/sass-loader/compare/v11.1.1...v12.0.0) (2021-06-01) ### ⚠ BREAKING CHANGES From bb4e18ad10e6dd8e057fb364b28c1b8c7543cfe7 Mon Sep 17 00:00:00 2001 From: "amaresh.sm" Date: Thu, 9 Jun 2022 21:09:58 +0530 Subject: [PATCH 4/5] chore: revert changes and update readme --- README.md | 78 + package-lock.json | 45 + package.json | 5 + src/utils.js | 34 + .../sassOptions-option.test.js.snap | 1758 +++++++++++++---- test/additionalData-option.test.js | 18 + test/implementation-option.test.js | 18 + test/loader.test.js | 17 + test/sassOptions-option.test.js | 116 ++ test/sourceMap-options.test.js | 17 + test/validate-options.test.js | 19 + test/warnRuleAsWarning.test.js | 18 + test/webpackImporter-options.test.js | 17 + 13 files changed, 1722 insertions(+), 438 deletions(-) diff --git a/README.md b/README.md index 34e00e81..daefb96c 100644 --- a/README.md +++ b/README.md @@ -239,6 +239,84 @@ module.exports = { }; ``` +Note that when using `sass` (`Dart Sass`), **synchronous compilation is twice as fast as asynchronous compilation** by default, due to the overhead of asynchronous callbacks. +To avoid this overhead, you can use the [fibers](https://www.npmjs.com/package/fibers) package to call asynchronous importers from the synchronous code path. + +We automatically inject the [`fibers`](https://github.com/laverdet/node-fibers) package (setup `sassOptions.fiber`) for `Node.js` less v16.0.0 if is possible (i.e. you need install the [`fibers`](https://github.com/laverdet/node-fibers) package). + +> ⚠ Fibers is not compatible with `Node.js` v16.0.0 or later. Unfortunately, v8 +> commit [dacc2fee0f](https://github.com/v8/v8/commit/dacc2fee0f815823782a7e432c79c2a7767a4765) is a breaking change and workarounds are non-trivial. ([see introduction to readme](https://github.com/laverdet/node-fibers)). + +**package.json** + +```json +{ + "devDependencies": { + "sass-loader": "^7.2.0", + "sass": "^1.22.10", + "fibers": "^4.0.1" + } +} +``` + +You can disable automatically injecting the [`fibers`](https://github.com/laverdet/node-fibers) package by passing a `false` value for the `sassOptions.fiber` option. + +**webpack.config.js** + +```js +module.exports = { + module: { + rules: [ + { + test: /\.s[ac]ss$/i, + use: [ + "style-loader", + "css-loader", + { + loader: "sass-loader", + options: { + implementation: require("sass"), + sassOptions: { + fiber: false, + }, + }, + }, + ], + }, + ], + }, +}; +``` + +You can also pass the `fiber` value using this code: + +**webpack.config.js** + +```js +module.exports = { + module: { + rules: [ + { + test: /\.s[ac]ss$/i, + use: [ + "style-loader", + "css-loader", + { + loader: "sass-loader", + options: { + implementation: require("sass"), + sassOptions: { + fiber: require("fibers"), + }, + }, + }, + ], + }, + ], + }, +}; +``` + ### `sassOptions` Type: diff --git a/package-lock.json b/package-lock.json index 6fc3b4a2..14734ce6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,6 +31,7 @@ "eslint": "^8.16.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.25.4", + "fibers": "^5.0.1", "file-loader": "^6.2.0", "foundation-sites": "^6.6.3", "husky": "^8.0.1", @@ -58,12 +59,16 @@ "url": "https://opencollective.com/webpack" }, "peerDependencies": { + "fibers": ">= 3.1.0", "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", "sass": "^1.3.0", "sass-embedded": "*", "webpack": "^5.0.0" }, "peerDependenciesMeta": { + "fibers": { + "optional": true + }, "node-sass": { "optional": true }, @@ -6614,6 +6619,18 @@ "node": ">=8" } }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -7817,6 +7834,19 @@ "pend": "~1.2.0" } }, + "node_modules/fibers": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.1.tgz", + "integrity": "sha512-VMC7Frt87Oo0AOJ6EcPFbi+tZmkQ4tD85aatwyWL6I9cYMJmm2e+pXUJsfGZ36U7MffXtjou2XIiWJMtHriErw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -21990,6 +22020,12 @@ "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true + }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -22931,6 +22967,15 @@ "pend": "~1.2.0" } }, + "fibers": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.1.tgz", + "integrity": "sha512-VMC7Frt87Oo0AOJ6EcPFbi+tZmkQ4tD85aatwyWL6I9cYMJmm2e+pXUJsfGZ36U7MffXtjou2XIiWJMtHriErw==", + "dev": true, + "requires": { + "detect-libc": "^1.0.3" + } + }, "figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", diff --git a/package.json b/package.json index 7bd2653c..529ac126 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "dist" ], "peerDependencies": { + "fibers": ">= 3.1.0", "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", "sass": "^1.3.0", "sass-embedded": "*", @@ -52,6 +53,9 @@ }, "sass-embedded": { "optional": true + }, + "fibers": { + "optional": true } }, "dependencies": { @@ -77,6 +81,7 @@ "eslint": "^8.16.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.25.4", + "fibers": "^5.0.1", "file-loader": "^6.2.0", "foundation-sites": "^6.6.3", "husky": "^8.0.1", diff --git a/src/utils.js b/src/utils.js index 1369d197..fba2af2a 100644 --- a/src/utils.js +++ b/src/utils.js @@ -112,6 +112,12 @@ function proxyCustomImporters(importers, loaderContext) { ); } +function isSupportedFibers() { + const [nodeVersion] = process.versions.node.split("."); + + return Number(nodeVersion) < 16; +} + /** * Derives the sass options from the loader context and normalizes its values with sane defaults. * @@ -137,6 +143,7 @@ async function getSassOptions( : {} ); + const isDartSass = implementation.info.includes("dart-sass"); const isModernAPI = loaderOptions.api === "modern"; options.data = loaderOptions.additionalData @@ -226,6 +233,32 @@ async function getSassOptions( } else { options.file = resourcePath; + if (isDartSass && isSupportedFibers()) { + const shouldTryToResolveFibers = + !options.fiber && options.fiber !== false; + + if (shouldTryToResolveFibers) { + let fibers; + + try { + fibers = require.resolve("fibers"); + } catch (_error) { + // Nothing + } + + if (fibers) { + // eslint-disable-next-line global-require, import/no-dynamic-require + options.fiber = require(fibers); + } + } else if (options.fiber === false) { + // Don't pass the `fiber` option for `sass` (`Dart Sass`) + delete options.fiber; + } + } else { + // Don't pass the `fiber` option for `node-sass` + delete options.fiber; + } + // opt.outputStyle if (!options.outputStyle && isProductionLikeMode(loaderContext)) { options.outputStyle = "compressed"; @@ -775,4 +808,5 @@ export { getWebpackImporter, getCompileFn, normalizeSourceMap, + isSupportedFibers, }; diff --git a/test/__snapshots__/sassOptions-option.test.js.snap b/test/__snapshots__/sassOptions-option.test.js.snap index 35cd9720..1acc3106 100644 --- a/test/__snapshots__/sassOptions-option.test.js.snap +++ b/test/__snapshots__/sassOptions-option.test.js.snap @@ -1,108 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import \\"./file.css\\"; -body { - font: 100% Helvetica, sans-serif; - color: #333; -} - -nav ul { - margin: 0; - padding: 0; - list-style: none; -} -nav li { - display: inline-block; -} -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; -} - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; -} - -.message, .warning, .error, .success { - border: 1px solid #ccc; - padding: 10px; - color: #333; -} - -.success { - border-color: green; -} - -.error { - border-color: red; -} - -.warning { - border-color: yellow; -} - -.foo:before { - content: \\"\\\\e0c6\\"; -} - -.bar:before { - content: \\"∑\\"; -}" -`; - -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` -"@charset \\"UTF-8\\"; -@import \\"./file.css\\"; -body { - font: 100% Helvetica, sans-serif; - color: #333; -} - -nav ul { - margin: 0; - padding: 0; - list-style: none; -} -nav li { - display: inline-block; -} -nav a { - display: block; - padding: 6px 12px; - text-decoration: none; -} - -.box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; -} - -.foo:before { - content: \\"\\\\e0c6\\"; -} - -.bar:before { - content: \\"∑\\"; -}" -`; - -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -158,11 +56,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -200,11 +98,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import url(./file.css); body { @@ -252,11 +150,11 @@ nav a { " `; -exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import url(./file.css); body { @@ -290,11 +188,11 @@ nav a { " `; -exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -350,11 +248,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -392,11 +290,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should don't use the "fibers" package when the "fiber" option is "false" ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -452,11 +350,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -494,11 +392,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -554,11 +452,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -596,11 +494,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import url(./file.css); body { @@ -648,11 +546,11 @@ nav a { " `; -exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import url(./file.css); body { @@ -686,11 +584,11 @@ nav a { " `; -exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -746,11 +644,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -788,11 +686,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -848,11 +746,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -890,11 +788,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "data" option ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -950,11 +848,11 @@ nav a { }" `; -exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -992,113 +890,101 @@ nav a { }" `; -exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import \\"./file.css\\"; +@import url(./file.css); body { font: 100% Helvetica, sans-serif; - color: #333; -} + color: #333; } nav ul { margin: 0; padding: 0; - list-style: none; -} + list-style: none; } + nav li { - display: inline-block; -} + display: inline-block; } + nav a { display: block; padding: 6px 12px; - text-decoration: none; -} + text-decoration: none; } .box { -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; - border-radius: 10px; -} + border-radius: 10px; } -.message, .warning, .error, .success { +.message, .success, .error, .warning { border: 1px solid #ccc; padding: 10px; - color: #333; -} + color: #333; } .success { - border-color: green; -} + border-color: green; } .error { - border-color: red; -} + border-color: red; } .warning { - border-color: yellow; -} + border-color: yellow; } .foo:before { - content: \\"\\\\e0c6\\"; -} + content: \\"\\"; } .bar:before { - content: \\"∑\\"; -}" + content: \\"∑\\"; } +" `; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import \\"./file.css\\"; +@import url(./file.css); body { font: 100% Helvetica, sans-serif; - color: #333; -} + color: #333; } nav ul { margin: 0; padding: 0; - list-style: none; -} + list-style: none; } + nav li { - display: inline-block; -} + display: inline-block; } + nav a { display: block; padding: 6px 12px; - text-decoration: none; -} + text-decoration: none; } .box { -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; - border-radius: 10px; -} + border-radius: 10px; } .foo:before { - content: \\"\\\\e0c6\\"; -} + content: \\"\\"; } .bar:before { - content: \\"∑\\"; -}" + content: \\"∑\\"; } +" `; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -1154,11 +1040,11 @@ nav a { }" `; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -1196,13 +1082,13 @@ nav a { }" `; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "file" option ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import url(./file.css); +@import \\"./file.css\\"; body { font: 100% Helvetica, sans-serif; color: #333; @@ -1213,11 +1099,9 @@ nav ul { padding: 0; list-style: none; } - nav li { display: inline-block; } - nav a { display: block; padding: 6px 12px; @@ -1231,7 +1115,7 @@ nav a { border-radius: 10px; } -.message, .success, .error, .warning { +.message, .warning, .error, .success { border: 1px solid #ccc; padding: 10px; color: #333; @@ -1250,22 +1134,21 @@ nav a { } .foo:before { - content: \\"\\"; + content: \\"\\\\e0c6\\"; } .bar:before { content: \\"∑\\"; -} -" +}" `; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import url(./file.css); +@import \\"./file.css\\"; body { font: 100% Helvetica, sans-serif; color: #333; @@ -1276,11 +1159,9 @@ nav ul { padding: 0; list-style: none; } - nav li { display: inline-block; } - nav a { display: block; padding: 6px 12px; @@ -1295,20 +1176,19 @@ nav a { } .foo:before { - content: \\"\\"; + content: \\"\\\\e0c6\\"; } .bar:before { content: \\"∑\\"; -} -" +}" `; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "url" option ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -1364,11 +1244,11 @@ nav a { }" `; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -1406,11 +1286,11 @@ nav a { }" `; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should ignore the "url" option ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -1466,11 +1346,11 @@ nav a { }" `; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -1508,77 +1388,11 @@ nav a { }" `; -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.warning,.error,.success{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:#ff0}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.warning,.error,.success{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:#ff0}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` -"@import url(./file.css);body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.success,.error,.warning{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:yellow}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"} -" -`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` -"@import url(./file.css);body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"} -" -`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.warning,.error,.success{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:#ff0}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.warning,.error,.success{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:#ff0}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; - -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -1634,11 +1448,11 @@ nav a { }" `; -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -1676,13 +1490,13 @@ nav a { }" `; -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import \\"./file.css\\"; +@import url(./file.css); body { font: 100% Helvetica, sans-serif; color: #333; @@ -1693,9 +1507,11 @@ nav ul { padding: 0; list-style: none; } + nav li { display: inline-block; } + nav a { display: block; padding: 6px 12px; @@ -1709,7 +1525,7 @@ nav a { border-radius: 10px; } -.message, .warning, .error, .success { +.message, .success, .error, .warning { border: 1px solid #ccc; padding: 10px; color: #333; @@ -1728,21 +1544,22 @@ nav a { } .foo:before { - content: \\"\\\\e0c6\\"; + content: \\"\\"; } .bar:before { content: \\"∑\\"; -}" +} +" `; -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import \\"./file.css\\"; +@import url(./file.css); body { font: 100% Helvetica, sans-serif; color: #333; @@ -1753,9 +1570,11 @@ nav ul { padding: 0; list-style: none; } + nav li { display: inline-block; } + nav a { display: block; padding: 6px 12px; @@ -1770,89 +1589,858 @@ nav a { } .foo:before { - content: \\"\\\\e0c6\\"; + content: \\"\\"; } .bar:before { content: \\"∑\\"; -}" +} +" `; -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option is empty "Object" ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import url(./file.css); +@import \\"./file.css\\"; body { font: 100% Helvetica, sans-serif; - color: #333; } + color: #333; +} nav ul { margin: 0; padding: 0; - list-style: none; } - + list-style: none; +} nav li { - display: inline-block; } - + display: inline-block; +} nav a { display: block; padding: 6px 12px; - text-decoration: none; } + text-decoration: none; +} .box { -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; - border-radius: 10px; } + border-radius: 10px; +} -.message, .success, .error, .warning { +.message, .warning, .error, .success { border: 1px solid #ccc; padding: 10px; - color: #333; } + color: #333; +} .success { - border-color: green; } + border-color: green; +} .error { - border-color: red; } + border-color: red; +} .warning { - border-color: yellow; } + border-color: yellow; +} .foo:before { - content: \\"\\"; } + content: \\"\\\\e0c6\\"; +} .bar:before { - content: \\"∑\\"; } -" + content: \\"∑\\"; +}" `; -exports[`sassOptions option should work when the option is empty "Object" ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option is empty "Object" ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option is empty "Object" ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import url(./file.css); +@import \\"./file.css\\"; body { font: 100% Helvetica, sans-serif; - color: #333; } + color: #333; +} nav ul { margin: 0; padding: 0; - list-style: none; } - + list-style: none; +} nav li { - display: inline-block; } - + display: inline-block; +} nav a { display: block; padding: 6px 12px; - text-decoration: none; } + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: \\"\\\\e0c6\\"; +} + +.bar:before { + content: \\"∑\\"; +}" +`; + +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import \\"./file.css\\"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: \\"\\\\e0c6\\"; +} + +.bar:before { + content: \\"∑\\"; +}" +`; + +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import \\"./file.css\\"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: \\"\\\\e0c6\\"; +} + +.bar:before { + content: \\"∑\\"; +}" +`; + +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should respect the "outputStyle"/"style" option ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.warning,.error,.success{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:#ff0}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.warning,.error,.success{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:#ff0}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +"@import url(./file.css);body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.success,.error,.warning{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:yellow}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"} +" +`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +"@import url(./file.css);body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"} +" +`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.warning,.error,.success{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:#ff0}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.message,.warning,.error,.success{border:1px solid #ccc;padding:10px;color:#333}.success{border-color:green}.error{border-color:red}.warning{border-color:#ff0}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = `"@import\\"./file.css\\";body{font:100% Helvetica,sans-serif;color:#333}nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}.box{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;border-radius:10px}.foo:before{content:\\"\\"}.bar:before{content:\\"∑\\"}"`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use "compressed" output style in the "production" mode ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use the "fibers" package if it is possible ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import \\"./file.css\\"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: \\"\\\\e0c6\\"; +} + +.bar:before { + content: \\"∑\\"; +}" +`; + +exports[`sassOptions option should use the "fibers" package if it is possible ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use the "fibers" package if it is possible ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use the "fibers" package if it is possible ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import \\"./file.css\\"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: \\"\\\\e0c6\\"; +} + +.bar:before { + content: \\"∑\\"; +}" +`; + +exports[`sassOptions option should use the "fibers" package if it is possible ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use the "fibers" package if it is possible ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use the "fibers" package if it is possible ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import url(./file.css); +body { + font: 100% Helvetica, sans-serif; + color: #333; } + +nav ul { + margin: 0; + padding: 0; + list-style: none; } + +nav li { + display: inline-block; } + +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; } + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; } + +.message, .success, .error, .warning { + border: 1px solid #ccc; + padding: 10px; + color: #333; } + +.success { + border-color: green; } + +.error { + border-color: red; } + +.warning { + border-color: yellow; } + +.foo:before { + content: \\"\\"; } + +.bar:before { + content: \\"∑\\"; } +" +`; + +exports[`sassOptions option should use the "fibers" package if it is possible ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use the "fibers" package if it is possible ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use the "fibers" package if it is possible ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import url(./file.css); +body { + font: 100% Helvetica, sans-serif; + color: #333; } + +nav ul { + margin: 0; + padding: 0; + list-style: none; } + +nav li { + display: inline-block; } + +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; } + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; } + +.foo:before { + content: \\"\\"; } + +.bar:before { + content: \\"∑\\"; } +" +`; + +exports[`sassOptions option should use the "fibers" package if it is possible ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use the "fibers" package if it is possible ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use the "fibers" package if it is possible ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import \\"./file.css\\"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: \\"\\\\e0c6\\"; +} + +.bar:before { + content: \\"∑\\"; +}" +`; + +exports[`sassOptions option should use the "fibers" package if it is possible ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use the "fibers" package if it is possible ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should use the "fibers" package if it is possible ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import \\"./file.css\\"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: \\"\\\\e0c6\\"; +} + +.bar:before { + content: \\"∑\\"; +}" +`; + +exports[`sassOptions option should use the "fibers" package if it is possible ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should use the "fibers" package if it is possible ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import \\"./file.css\\"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: \\"\\\\e0c6\\"; +} + +.bar:before { + content: \\"∑\\"; +}" +`; + +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import \\"./file.css\\"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: \\"\\\\e0c6\\"; +} + +.bar:before { + content: \\"∑\\"; +}" +`; + +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import \\"./file.css\\"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: \\"\\\\e0c6\\"; +} + +.bar:before { + content: \\"∑\\"; +}" +`; + +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import \\"./file.css\\"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: \\"\\\\e0c6\\"; +} + +.bar:before { + content: \\"∑\\"; +}" +`; + +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should work when the option is empty "Object" ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should work when the option is empty "Object" ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import url(./file.css); +body { + font: 100% Helvetica, sans-serif; + color: #333; } + +nav ul { + margin: 0; + padding: 0; + list-style: none; } + +nav li { + display: inline-block; } + +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; } + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; } + +.message, .success, .error, .warning { + border: 1px solid #ccc; + padding: 10px; + color: #333; } + +.success { + border-color: green; } + +.error { + border-color: red; } + +.warning { + border-color: yellow; } + +.foo:before { + content: \\"\\"; } + +.bar:before { + content: \\"∑\\"; } +" +`; + +exports[`sassOptions option should work when the option is empty "Object" ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should work when the option is empty "Object" ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should work when the option is empty "Object" ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import url(./file.css); +body { + font: 100% Helvetica, sans-serif; + color: #333; } + +nav ul { + margin: 0; + padding: 0; + list-style: none; } + +nav li { + display: inline-block; } + +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; } .box { -webkit-border-radius: 10px; @@ -3130,51 +3718,243 @@ nav a { exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import \\"./file.css\\"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: \\"\\\\e0c6\\"; +} + +.bar:before { + content: \\"∑\\"; +}" +`; + +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import \\"./file.css\\"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: \\"\\\\e0c6\\"; +} + +.bar:before { + content: \\"∑\\"; +}" +`; + +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import \\"./file.css\\"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: \\"\\\\e0c6\\"; +} + +.bar:before { + content: \\"∑\\"; +}" +`; + +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import url(./file.css); +body { + font: 100% Helvetica, sans-serif; + color: #333; } + +nav ul { + margin: 0; + padding: 0; + list-style: none; } + +nav li { + display: inline-block; } + +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; } + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; } + +.message, .success, .error, .warning { + border: 1px solid #ccc; + padding: 10px; + color: #333; } + +.success { + border-color: green; } + +.error { + border-color: red; } + +.warning { + border-color: yellow; } + +.foo:before { + content: \\"\\"; } + +.bar:before { + content: \\"∑\\"; } +" +`; + +exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import \\"./file.css\\"; +@import url(./file.css); body { font: 100% Helvetica, sans-serif; - color: #333; -} + color: #333; } nav ul { margin: 0; padding: 0; - list-style: none; -} + list-style: none; } + nav li { - display: inline-block; -} + display: inline-block; } + nav a { display: block; padding: 6px 12px; - text-decoration: none; -} + text-decoration: none; } .box { -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; - border-radius: 10px; -} + border-radius: 10px; } .foo:before { - content: \\"\\\\e0c6\\"; -} + content: \\"\\"; } .bar:before { - content: \\"∑\\"; -}" + content: \\"∑\\"; } +" `; -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -3230,11 +4010,11 @@ nav a { }" `; -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -3272,101 +4052,113 @@ nav a { }" `; -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import url(./file.css); +@import \\"./file.css\\"; body { - font: 100% Helvetica, sans-serif; - color: #333; } + font: 100% Helvetica, sans-serif; + color: #333; +} nav ul { - margin: 0; - padding: 0; - list-style: none; } - + margin: 0; + padding: 0; + list-style: none; +} nav li { - display: inline-block; } - + display: inline-block; +} nav a { - display: block; - padding: 6px 12px; - text-decoration: none; } + display: block; + padding: 6px 12px; + text-decoration: none; +} .box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; } + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} -.message, .success, .error, .warning { - border: 1px solid #ccc; - padding: 10px; - color: #333; } +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} .success { - border-color: green; } + border-color: green; +} .error { - border-color: red; } + border-color: red; +} .warning { - border-color: yellow; } + border-color: yellow; +} .foo:before { - content: \\"\\"; } + content: \\"\\\\e0c6\\"; +} .bar:before { - content: \\"∑\\"; } -" + content: \\"∑\\"; +}" `; -exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; -@import url(./file.css); +@import \\"./file.css\\"; body { - font: 100% Helvetica, sans-serif; - color: #333; } + font: 100% Helvetica, sans-serif; + color: #333; +} nav ul { - margin: 0; - padding: 0; - list-style: none; } - + margin: 0; + padding: 0; + list-style: none; +} nav li { - display: inline-block; } - + display: inline-block; +} nav a { - display: block; - padding: 6px 12px; - text-decoration: none; } + display: block; + padding: 6px 12px; + text-decoration: none; +} .box { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - border-radius: 10px; } + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} .foo:before { - content: \\"\\"; } + content: \\"\\\\e0c6\\"; +} .bar:before { - content: \\"∑\\"; } -" + content: \\"∑\\"; +}" `; -exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should work with the "fiber" option ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -3422,11 +4214,11 @@ nav a { }" `; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work with the "fiber" option ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work with the "fiber" option ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should work with the "fiber" option ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -3464,11 +4256,101 @@ nav a { }" `; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work with the "fiber" option ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work with the "fiber" option ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = ` +exports[`sassOptions option should work with the "fiber" option ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import url(./file.css); +body { + font: 100% Helvetica, sans-serif; + color: #333; } + +nav ul { + margin: 0; + padding: 0; + list-style: none; } + +nav li { + display: inline-block; } + +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; } + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; } + +.message, .success, .error, .warning { + border: 1px solid #ccc; + padding: 10px; + color: #333; } + +.success { + border-color: green; } + +.error { + border-color: red; } + +.warning { + border-color: yellow; } + +.foo:before { + content: \\"\\"; } + +.bar:before { + content: \\"∑\\"; } +" +`; + +exports[`sassOptions option should work with the "fiber" option ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should work with the "fiber" option ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should work with the "fiber" option ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +"@charset \\"UTF-8\\"; +@import url(./file.css); +body { + font: 100% Helvetica, sans-serif; + color: #333; } + +nav ul { + margin: 0; + padding: 0; + list-style: none; } + +nav li { + display: inline-block; } + +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; } + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; } + +.foo:before { + content: \\"\\"; } + +.bar:before { + content: \\"∑\\"; } +" +`; + +exports[`sassOptions option should work with the "fiber" option ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; + +exports[`sassOptions option should work with the "fiber" option ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; + +exports[`sassOptions option should work with the "fiber" option ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -3524,11 +4406,11 @@ nav a { }" `; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work with the "fiber" option ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work with the "fiber" option ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = ` +exports[`sassOptions option should work with the "fiber" option ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` "@charset \\"UTF-8\\"; @import \\"./file.css\\"; body { @@ -3566,9 +4448,9 @@ nav a { }" `; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `Array []`; +exports[`sassOptions option should work with the "fiber" option ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `Array []`; -exports[`sassOptions option should work when the option like "Object" ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `Array []`; +exports[`sassOptions option should work with the "fiber" option ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `Array []`; exports[`sassOptions option should work with the "functions" option ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "h2, h3, h4, h5 { diff --git a/test/additionalData-option.test.js b/test/additionalData-option.test.js index 1ae63d6a..69f6ecbc 100644 --- a/test/additionalData-option.test.js +++ b/test/additionalData-option.test.js @@ -1,3 +1,5 @@ +import { isSupportedFibers } from "../src/utils"; + import { compile, getCodeFromBundle, @@ -9,10 +11,26 @@ import { getWarnings, } from "./helpers"; +let Fiber; const implementations = getImplementationsAndAPI(); const syntaxStyles = ["scss", "sass"]; describe("additionalData option", () => { + beforeAll(async () => { + if (isSupportedFibers()) { + const { default: fibers } = await import("fibers"); + + Fiber = fibers; + } + }); + + beforeEach(() => { + if (isSupportedFibers()) { + // The `sass` (`Dart Sass`) package modify the `Function` prototype, but the `jest` lose a prototype + Object.setPrototypeOf(Fiber, Function.prototype); + } + }); + implementations.forEach((item) => { const { name: implementationName, api, implementation } = item; diff --git a/test/implementation-option.test.js b/test/implementation-option.test.js index d699a0f1..c064f48f 100644 --- a/test/implementation-option.test.js +++ b/test/implementation-option.test.js @@ -3,6 +3,8 @@ import dartSass from "sass"; // eslint-disable-next-line import/no-namespace import * as sassEmbedded from "sass-embedded"; +import { isSupportedFibers } from "../src/utils"; + import { compile, getCodeFromBundle, @@ -16,9 +18,25 @@ import { jest.setTimeout(30000); +let Fiber; const implementations = [...getImplementationsAndAPI(), "sass_string"]; describe("implementation option", () => { + beforeAll(async () => { + if (isSupportedFibers()) { + const { default: fibers } = await import("fibers"); + + Fiber = fibers; + } + }); + + beforeEach(() => { + if (isSupportedFibers()) { + // The `sass` (`Dart Sass`) package modify the `Function` prototype, but the `jest` lose a prototype + Object.setPrototypeOf(Fiber, Function.prototype); + } + }); + implementations.forEach((item) => { let implementationName; let implementation; diff --git a/test/loader.test.js b/test/loader.test.js index b6b1e10a..dd580e08 100644 --- a/test/loader.test.js +++ b/test/loader.test.js @@ -3,6 +3,8 @@ import url from "url"; import del from "del"; +import { isSupportedFibers } from "../src/utils"; + import { compile, getCodeFromBundle, @@ -16,10 +18,25 @@ import { jest.setTimeout(60000); +let Fiber; const implementations = getImplementationsAndAPI(); const syntaxStyles = ["scss", "sass"]; describe("loader", () => { + beforeAll(async () => { + if (isSupportedFibers()) { + const { default: fibers } = await import("fibers"); + Fiber = fibers; + } + }); + + beforeEach(() => { + if (isSupportedFibers()) { + // The `sass` (`Dart Sass`) package modify the `Function` prototype, but the `jest` lose a prototype + Object.setPrototypeOf(Fiber, Function.prototype); + } + }); + implementations.forEach((item) => { const { name: implementationName, api, implementation } = item; // TODO fix me https://github.com/webpack-contrib/sass-loader/issues/774 diff --git a/test/sassOptions-option.test.js b/test/sassOptions-option.test.js index d53fc5db..bac298e5 100644 --- a/test/sassOptions-option.test.js +++ b/test/sassOptions-option.test.js @@ -1,6 +1,10 @@ import path from "path"; import globImporter from "node-sass-glob-importer"; +import semver from "semver"; +import dartSass from "sass"; + +import { isSupportedFibers } from "../src/utils"; import { compile, @@ -17,10 +21,25 @@ import { jest.setTimeout(30000); +let Fiber; const implementations = getImplementationsAndAPI(); const syntaxStyles = ["scss", "sass"]; describe("sassOptions option", () => { + beforeAll(async () => { + if (isSupportedFibers()) { + const { default: fibers } = await import("fibers"); + Fiber = fibers; + } + }); + + beforeEach(() => { + if (isSupportedFibers()) { + // The `sass` (`Dart Sass`) package modify the `Function` prototype, but the `jest` lose a prototype + Object.setPrototypeOf(Fiber, Function.prototype); + } + }); + implementations.forEach((item) => { const { name: implementationName, api, implementation } = item; const isModernAPI = api === "modern"; @@ -400,6 +419,103 @@ describe("sassOptions option", () => { }); } + if (!isModernAPI) { + it(`should work with the "fiber" option ('${implementationName}', '${api}' API, '${syntax}' syntax)`, async () => { + const dartSassSpy = jest.spyOn(dartSass, "render"); + const testId = getTestId("language", syntax); + const options = { + implementation, + api, + sassOptions: {}, + }; + + if ( + implementationName === "dart-sass" && + semver.satisfies(process.version, ">= 10") + ) { + // eslint-disable-next-line global-require + options.sassOptions.fiber = Fiber; + } + + const compiler = getCompiler(testId, { loader: { options } }); + const stats = await compile(compiler); + const codeFromBundle = getCodeFromBundle(stats, compiler); + const codeFromSass = await getCodeFromSass(testId, options); + + if ( + implementationName === "dart-sass" && + semver.satisfies(process.version, ">= 10") && + isSupportedFibers() + ) { + expect(dartSassSpy.mock.calls[0][0]).toHaveProperty("fiber"); + } + + expect(codeFromBundle.css).toBe(codeFromSass.css); + expect(codeFromBundle.css).toMatchSnapshot("css"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + + dartSassSpy.mockRestore(); + }); + + it(`should use the "fibers" package if it is possible ('${implementationName}', '${api}' API, '${syntax}' syntax)`, async () => { + const dartSassSpy = jest.spyOn(dartSass, "render"); + const testId = getTestId("language", syntax); + const options = { + implementation, + api, + sassOptions: {}, + }; + const compiler = getCompiler(testId, { loader: { options } }); + const stats = await compile(compiler); + const codeFromBundle = getCodeFromBundle(stats, compiler); + const codeFromSass = await getCodeFromSass(testId, options); + + if ( + implementationName === "dart-sass" && + semver.satisfies(process.version, ">= 10") && + isSupportedFibers() + ) { + expect(dartSassSpy.mock.calls[0][0]).toHaveProperty("fiber"); + } + + expect(codeFromBundle.css).toBe(codeFromSass.css); + expect(codeFromBundle.css).toMatchSnapshot("css"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + + dartSassSpy.mockRestore(); + }); + + it(`should don't use the "fibers" package when the "fiber" option is "false" ('${implementationName}', '${api}' API, '${syntax}' syntax)`, async () => { + const dartSassSpy = jest.spyOn(dartSass, "render"); + const testId = getTestId("language", syntax); + const options = { + implementation, + api, + sassOptions: { fiber: false }, + }; + const compiler = getCompiler(testId, { loader: { options } }); + const stats = await compile(compiler); + const codeFromBundle = getCodeFromBundle(stats, compiler); + const codeFromSass = await getCodeFromSass(testId, options); + + if ( + implementationName === "dart-sass" && + semver.satisfies(process.version, ">= 10") + ) { + expect(dartSassSpy.mock.calls[0][0]).not.toHaveProperty("fiber"); + } + + expect(codeFromBundle.css).toBe(codeFromSass.css); + expect(codeFromBundle.css).toMatchSnapshot("css"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + + dartSassSpy.mockRestore(); + }); + } + it(`should respect the "outputStyle"/"style" option ('${implementationName}', '${api}' API, '${syntax}' syntax)`, async () => { const testId = getTestId("language", syntax); const options = { diff --git a/test/sourceMap-options.test.js b/test/sourceMap-options.test.js index 468fe160..fb3fd891 100644 --- a/test/sourceMap-options.test.js +++ b/test/sourceMap-options.test.js @@ -2,6 +2,8 @@ import fs from "fs"; import path from "path"; import url from "url"; +import { isSupportedFibers } from "../src/utils"; + import { compile, getCodeFromBundle, @@ -12,10 +14,25 @@ import { getWarnings, } from "./helpers"; +let Fiber; const implementations = getImplementationsAndAPI(); const syntaxStyles = ["scss", "sass"]; describe("sourceMap option", () => { + beforeAll(async () => { + if (isSupportedFibers()) { + const { default: fibers } = await import("fibers"); + Fiber = fibers; + } + }); + + beforeEach(() => { + if (isSupportedFibers()) { + // The `sass` (`Dart Sass`) package modify the `Function` prototype, but the `jest` lose a prototype + Object.setPrototypeOf(Fiber, Function.prototype); + } + }); + implementations.forEach((item) => { syntaxStyles.forEach((syntax) => { const { name: implementationName, api, implementation } = item; diff --git a/test/validate-options.test.js b/test/validate-options.test.js index 7d87d17c..cbb0d9b0 100644 --- a/test/validate-options.test.js +++ b/test/validate-options.test.js @@ -1,3 +1,5 @@ +import { isSupportedFibers } from "../src/utils"; + import { getCompiler, compile, @@ -5,7 +7,24 @@ import { getImplementationByName, } from "./helpers/index"; +let Fiber; + describe("validate options", () => { + beforeAll(async () => { + if (isSupportedFibers()) { + const { default: fibers } = await import("fibers"); + + Fiber = fibers; + } + }); + + beforeEach(() => { + if (isSupportedFibers()) { + // The `sass` (`Dart Sass`) package modify the `Function` prototype, but the `jest` lose a prototype + Object.setPrototypeOf(Fiber, Function.prototype); + } + }); + const tests = { implementation: { success: [ diff --git a/test/warnRuleAsWarning.test.js b/test/warnRuleAsWarning.test.js index 4806d543..f16efc13 100644 --- a/test/warnRuleAsWarning.test.js +++ b/test/warnRuleAsWarning.test.js @@ -1,5 +1,7 @@ import url from "url"; +import { isSupportedFibers } from "../src/utils"; + import { compile, getCodeFromBundle, @@ -13,10 +15,26 @@ import { jest.setTimeout(60000); +let Fiber; const implementations = getImplementationsAndAPI(); const syntaxStyles = ["scss", "sass"]; describe("loader", () => { + beforeAll(async () => { + if (isSupportedFibers()) { + const { default: fibers } = await import("fibers"); + + Fiber = fibers; + } + }); + + beforeEach(() => { + if (isSupportedFibers()) { + // The `sass` (`Dart Sass`) package modify the `Function` prototype, but the `jest` lose a prototype + Object.setPrototypeOf(Fiber, Function.prototype); + } + }); + implementations.forEach((item) => { const { name: implementationName, api, implementation } = item; diff --git a/test/webpackImporter-options.test.js b/test/webpackImporter-options.test.js index d3c7395c..8e22805b 100644 --- a/test/webpackImporter-options.test.js +++ b/test/webpackImporter-options.test.js @@ -1,3 +1,5 @@ +import { isSupportedFibers } from "../src/utils"; + import { compile, getCodeFromBundle, @@ -9,10 +11,25 @@ import { getWarnings, } from "./helpers"; +let Fiber; const implementations = getImplementationsAndAPI(); const syntaxStyles = ["scss", "sass"]; describe("webpackImporter option", () => { + beforeAll(async () => { + if (isSupportedFibers()) { + const { default: fibers } = await import("fibers"); + Fiber = fibers; + } + }); + + beforeEach(() => { + if (isSupportedFibers()) { + // The `sass` (`Dart Sass`) package modify the `Function` prototype, but the `jest` lose a prototype + Object.setPrototypeOf(Fiber, Function.prototype); + } + }); + implementations.forEach((item) => { syntaxStyles.forEach((syntax) => { const { name: implementationName, api, implementation } = item; From 7f07bcee496573e1e8c9ddf1dbe3889b7c4f1bc1 Mon Sep 17 00:00:00 2001 From: "amaresh.sm" Date: Sun, 19 Jun 2022 19:45:09 +0530 Subject: [PATCH 5/5] chore: update readme.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index daefb96c..ceba1c8c 100644 --- a/README.md +++ b/README.md @@ -244,8 +244,9 @@ To avoid this overhead, you can use the [fibers](https://www.npmjs.com/package/f We automatically inject the [`fibers`](https://github.com/laverdet/node-fibers) package (setup `sassOptions.fiber`) for `Node.js` less v16.0.0 if is possible (i.e. you need install the [`fibers`](https://github.com/laverdet/node-fibers) package). -> ⚠ Fibers is not compatible with `Node.js` v16.0.0 or later. Unfortunately, v8 -> commit [dacc2fee0f](https://github.com/v8/v8/commit/dacc2fee0f815823782a7e432c79c2a7767a4765) is a breaking change and workarounds are non-trivial. ([see introduction to readme](https://github.com/laverdet/node-fibers)). +> **Warning** +> +> Fibers is not compatible with `Node.js` v16.0.0 or later. Unfortunately, v8 commit [dacc2fee0f](https://github.com/v8/v8/commit/dacc2fee0f815823782a7e432c79c2a7767a4765) is a breaking change and workarounds are non-trivial. ([see introduction to readme](https://github.com/laverdet/node-fibers)). **package.json**