Removes node-sass as a direct dependency. Eyeglass will attempt to require both node-sass and sass unless a sass engine is explicitly passed as an option. In the case where both are installed, node-sass is used.
All import statements to node-sass are now import type statements which ensures we won't accidently import a concrete aspect of the library into our module's namespace.
Testing infrastructure and updates to run tests against both implementations of Sass.
Ameliorations for incompatibilities between node-sass and dart-sass.
dart-sass has different behavior for importers that return both file and contents. A bug has been filed at https://github.com/sass/dart-sass/issues/975. Note: Custom importers provided to eyeglass from eyelgass addons or applications using eyeglass are insulated from this incompatibility.
dart-sass doesn't support functional invocation of sass value types, so a lot of the code changes were to instantiate those classes with new instead. (I discussed this with @nex3 a while ago and she indicated that it wasn't an API difference that she intended to support.) Note: Eyeglass addons that wish to support dart-sass will also need to make this change.
dart-sass doesn't support the constants sass.NULL, sass.TRUE and sass.FALSE. Instead, the code in eyeglass has been updated to use the constants that are supported by both: sass.types.Null.NULL, sass.types.Boolean.TRUE, and sass.types.Boolean.FALSE respectively. An issue has been filed: https://github.com/sass/dart-sass/issues/977
dart-sass doesn't support the nested output style which was the default for node-sass. So all test output has been converted to expect the "expanded" output style.
node-sass
as a direct dependency. Eyeglass will attempt to require bothnode-sass
andsass
unless a sass engine is explicitly passed as an option. In the case where both are installed,node-sass
is used.node-sass
are nowimport type
statements which ensures we won't accidently import a concrete aspect of the library into our module's namespace.dart-sass
has different behavior for importers that return bothfile
andcontents
. A bug has been filed at https://github.com/sass/dart-sass/issues/975. Note: Custom importers provided to eyeglass from eyelgass addons or applications using eyeglass are insulated from this incompatibility.dart-sass
doesn't support functional invocation of sass value types, so a lot of the code changes were to instantiate those classes withnew
instead. (I discussed this with @nex3 a while ago and she indicated that it wasn't an API difference that she intended to support.) Note: Eyeglass addons that wish to support dart-sass will also need to make this change.dart-sass
doesn't support the constantssass.NULL
,sass.TRUE
andsass.FALSE
. Instead, the code in eyeglass has been updated to use the constants that are supported by both:sass.types.Null.NULL
,sass.types.Boolean.TRUE
, andsass.types.Boolean.FALSE
respectively. An issue has been filed: https://github.com/sass/dart-sass/issues/977dart-sass
doesn't support thenested
output style which was the default for node-sass. So all test output has been converted to expect the"expanded"
output style.