Commit Graph

183 Commits

Author SHA1 Message Date
Natalie Weizenbaum
d4655f22bd
Fix an Importer-calling bug (#338)
We were resolving URLs relative to the canonical URL rather than the
original URL, which broke importers for which those were different,
like the package importer.

Closes #334
2018-05-30 17:47:37 -04:00
Jen Thakar
930f361026 Merge branch 'master' of git://github.com/sass/dart-sass into interactive 2018-05-29 21:33:53 -07:00
Jen Thakar
da44841498 Add TrackingLogger and uses it in --interactive
If a warning or debug message is emitted, and then the line errors,
a simpler error message is output instead of highlighting the bad
input in the original line.
2018-05-29 21:27:36 -07:00
Natalie Weizenbaum
ac8c01a595 Add an --update flag
Partially addresses #264
2018-05-28 16:58:09 -04:00
Natalie Weizenbaum
31c77fb1cc Remove the workaround for dart-lang/sdk#30098 2018-05-28 15:23:47 -04:00
Jen Thakar
eb71e2d5a7 Fix logging and invalid options for --interactive
--interactive now uses the ExecutableOptions' logger, so it respects
the --quiet option.

An invalid option used with --interactive will now be output.
2018-05-26 22:49:13 -07:00
Jen Thakar
6351458f35 Merge branch 'master' of git://github.com/sass/dart-sass into interactive 2018-05-26 21:49:48 -07:00
Jen Thakar
590b2a02c5 Fix bugs in interactive mode
The REPL no longer crashes when syntax errors point after the end of
the input; it also ignores empty lines.
2018-05-26 21:37:18 -07:00
Natalie Weizenbaum
ad73a91f84
Match Node Sass's logic around source map file names (#333)
When sourceMap is a string and outFile is null, Node Sass determines
the source map filename from the input filename.
2018-05-24 19:16:14 -04:00
Natalie Weizenbaum
7c26959156
Node API: generate a source map even when outFile isn't set (#331)
Contrary to documentation, Node Sass generates a source map when
outFile is unset as long as sourceMap is a string.
2018-05-24 18:42:16 -04:00
Natalie Weizenbaum
a7118824b5 Fix source map path canonicalization
We need to canonicalize rather than normalize to ensure a consistent
output.
2018-05-24 17:21:19 -04:00
Natalie Weizenbaum
d17b3e73fe Normalize source map paths before converting to URLs
This ensures that source map URLs are always consistent on Windows,
where the case may be different from run to run.
2018-05-24 12:21:28 -04:00
Natalie Weizenbaum
d68acf9ac2
Support compiling entire directories at once (#324)
Partially addresses #264
2018-05-22 23:06:33 +01:00
Natalie Weizenbaum
1450c241c6 Support input:output syntax for compiling multiple files at once
Partially addresses #264
2018-05-20 20:57:33 +01:00
Jen Thakar
6d86b5fbdf Merge branch 'master' of git://github.com/sass/dart-sass into interactive 2018-05-08 10:23:33 -07:00
Jen Thakar
49198f55ed Add proper error logging to --interactive
Errors are now logged w/o the Sass stack trace and with arrows
pointing to the piece of the input that caused the error.

The bad input will also be highlighted in red if color is enabled.

Adds tests for error logging, both with and without color.
2018-05-08 09:54:35 -07:00
Jen Thakar
125b64760b Add usage error for invalid use of --interactive 2018-05-07 23:54:25 -07:00
Natalie Weizenbaum
b5fd1409ce
Fix relative imports through relative load paths in the Node API (#315)
Closes #314
2018-05-02 17:04:36 -07:00
Natalie Weizenbaum
5bf7773590 Track variable declarations for source maps
Closes #2
2018-04-25 17:50:24 -07:00
Natalie Weizenbaum
6a117905ab
Fix a crash when printing warnings through the Node API (#311)
Closes #307
2018-04-25 17:47:29 -07:00
Natalie Weizenbaum
234aa12e08
Add CLI source map support (#309)
Partially addresses #2
2018-04-25 16:12:37 -07:00
Natalie Weizenbaum
dc8d8a6166
Run Dart Sass in checked mode in tests (#304)
Also fix a checked mode error.
2018-04-23 21:20:38 -07:00
Natalie Weizenbaum
7a882bd3be Fix a relative import bug in the JS API
Closes #284
2018-04-21 00:50:23 -07:00
Natalie Weizenbaum
11f38291f0 Clean up expectations in node_api_test 2018-04-21 00:49:51 -07:00
Natalie Weizenbaum
fd19bc85b6
Add a JavaScript API for source map generation (#302)
Partially addresses #2
2018-04-20 17:56:00 -07:00
Natalie Weizenbaum
9ea001598a
Add a Dart API for source map generation (#299)
Partially addresses #2
2018-04-19 16:51:20 -07:00
Natalie Weizenbaum
b23993ea66
Always emit units for non-length/angle 0 values (#300)
Closes #297
2018-04-19 15:20:17 -07:00
Jen Thakar
d262e28603 Add interactive SassScript REPL 2018-04-14 11:40:04 -07:00
Natalie Weizenbaum
a31251fdc9
Create a directory for CSS output if necessary (#291)
Closes #288
2018-04-12 16:40:53 -07:00
Natalie Weizenbaum
5cce76b6d4
Use constants from dart2_constants (#282) 2018-04-04 15:49:07 -07:00
Natalie Weizenbaum
880c91444e
Add support for "sass input.scss output.css" (#275)
Closes #274
2018-03-27 13:45:03 -07:00
Natalie Weizenbaum
6608a46d1e Make errors subtypes of Error 2018-03-23 15:22:10 -07:00
Natalie Weizenbaum
0e5a707ab4 Support both data and path options for the Node API 2018-03-23 14:55:28 -07:00
Natalie Weizenbaum
7fd8f7d6c2
Add an --indented flag (#253)
Closes #105
2018-03-11 23:07:31 -07:00
Natalie Weizenbaum
b93fcdb5ed Add a --quiet flag to the CLI
Partially addresses #105
2018-03-11 21:05:34 -07:00
Natalie Weizenbaum
4c6494c288 Add a Logger class to control how output is emitted 2018-03-11 21:05:34 -07:00
Natalie Weizenbaum
da32588af1
Add support for the --load-path flag (#251)
Partially addresses #105
2018-03-11 20:39:00 -07:00
Natalie Weizenbaum
07b02174e0
Represent DynamicImport.url as a String (#250)
This works around dart-lang/sdk#32490. We need to preserve the leading
"./" to match Node Sass's behavior.

Closes #246
2018-03-11 15:46:59 -07:00
Natalie Weizenbaum
b7d4384a5c
Preserve whitespace after and in media queries in compressed mode (#242)
Closes #239
2018-03-02 14:15:38 -08:00
Jen Thakar
90e65c1a93 Fix bug in visitColor for compressed mode
If `value` is not a named color, `name.length` will error.
This checks that `name` is not null before checking the length.
2018-02-03 13:25:07 -08:00
Natalie Weizenbaum
163e99bff2 Be explicit about string quotes in new SassString() 2018-02-02 16:47:54 -08:00
Natalie Weizenbaum
f0e181bf2e Don't run tests that require Dart 2 against stable 2018-02-01 18:21:34 -08:00
Natalie Weizenbaum
5a1bfaebbf Add support for the Node Sass custom function API
Closes #10
Closes #12
2018-01-30 11:14:42 -08:00
Natalie Weizenbaum
ac0ab00120 Emit compressed output 2018-01-21 13:15:55 -08:00
Natalie Weizenbaum
da2ff6a06d
Fix analysis hints (#215) 2018-01-19 15:26:41 -08:00
Natalie Weizenbaum
123fe55017 Add SassString index helpers
We aren't using these in our own functions because, for
backwards-compatibility, these functions don't throw errors for
invalid indices.
2018-01-14 16:04:46 -08:00
Natalie Weizenbaum
b1b9eca66a
Add tests for SassNumber.valueInRange() (#212) 2018-01-14 15:18:16 -08:00
Natalie Weizenbaum
9d207b13ec
SassNumber.assertIndexFor() -> Value.sassIndexToListIndex() (#211) 2018-01-14 13:38:43 -08:00
Natalie Weizenbaum
ce1cc18c0e Add tests for Value subclasses
Now that these are an exposed part of the API, they need to be tested.
2018-01-13 00:34:54 -08:00
Natalie Weizenbaum
7a4158dafb Fix some tests that were broken on Windows 2017-12-08 01:03:34 -08:00
Natalie Weizenbaum
6a1e6e6d12 Don't run ensureNpmPackage() on Windows under Node 2017-12-07 17:30:08 -08:00
Natalie Weizenbaum
525386e13c Add a missing @TestOn 2017-12-02 14:39:53 -08:00
Natalie Weizenbaum
aa5fd1d060 Add support for the fibers package to speed up render() 2017-12-02 12:39:28 -08:00
Natalie Weizenbaum
0a67d3845f Add a dev dependency on fibers from NPM 2017-12-01 14:36:37 -08:00
Natalie Weizenbaum
7178a91844 Make ensureNpmPackage() resilient to dependency overrides 2017-12-01 14:36:37 -08:00
Natalie Weizenbaum
8272724f42 Add support for async importers to the JS render() function (#196)
Closes #9
2017-12-01 14:29:11 -08:00
Natalie Weizenbaum
0df3463213 Compile asynchronous code to synchronous (#194)
See #9
2017-12-01 14:29:11 -08:00
Natalie Weizenbaum
e0ae8c907c Add synchronous Node importer support
See #9
2017-11-03 12:28:56 -07:00
Natalie Weizenbaum
4e6e04faa5 Add tests for Node importers
These have been validated against node-sass itself, but they aren't
yet run supported by Dart Sass.
2017-11-02 18:12:47 -07:00
Natalie Weizenbaum
530c4244d0 Refactor some Node API testing 2017-10-20 16:56:54 -07:00
Natalie Weizenbaum
a003e5c31f Expose a Dart API for importers
Closes #172
2017-10-12 21:54:58 -07:00
Natalie Weizenbaum
164f532ea2 Remove unused arguments from cli_shared.dart (#181) 2017-10-12 12:03:57 -07:00
Sam Rawlins
97f678a770 Read Sass from stdin (#137)
See #105
2017-10-06 18:59:49 -07:00
Natalie Weizenbaum
10ef04bad6 Fix analysis hints 2017-07-14 18:51:55 -07:00
Natalie Weizenbaum
53a8c553de Add tests. 2017-07-14 16:29:53 -07:00
Natalie Weizenbaum
dfcbf78e7c Fully support the error value for the Node render() functions
Closes #109
2017-07-09 18:18:56 -07:00
Natalie Weizenbaum
c5bf54a41f Move exception-formatting logic into SassException
There was a bunch of custom formatting logic in the executable, which
made it difficult to work with exceptions programatically.
2017-07-09 18:18:56 -07:00
Natalie Weizenbaum
214a2af2e9 Fully support the return value for the Node render() functions (#165)
Closes #11
2017-07-09 14:52:14 -07:00
Natalie Weizenbaum
f1c23e7484 Rename "toCss" to "serialize"
This matches the filename and the name of the visitor.
2017-07-07 17:53:03 -07:00
Natalie Weizenbaum
970755d82e Rename "render" to "compile"
"Render" is a strange term for compilation that kind of got copied
over from Haml and endured due to inertia.
2017-07-07 17:53:03 -07:00
Natalie Weizenbaum
2ff46cb149 Support outputStyle in the JS API (#163)
Closes #8
2017-07-07 16:39:58 -07:00
Natalie Weizenbaum
74cb974455 Support includePaths in the JS API (#162)
Closes #7
2017-07-07 14:50:12 -07:00
Natalie Weizenbaum
f41df9f7bd Add support indentedSyntax to the JS API (#161)
Partially addresses #7
2017-07-07 01:40:15 -07:00
Natalie Weizenbaum
8f836df66c Add support for the data option to the JS API (#159)
Also add renderString to the Dart API.

Partially addresses #7
2017-07-07 00:57:10 -07:00
Natalie Weizenbaum
48ba0e2128 Manually determine the operating system for paths
Works around dart-lang/sdk#30098.
2017-07-06 23:52:43 -07:00
Natalie Weizenbaum
3b36c5a1fb Reformat. 2017-07-06 23:23:04 -07:00
Natalie Weizenbaum
6ed530c895 Test the Node.js API.
Closes #150
2017-07-06 17:39:07 -07:00
Natalie Weizenbaum
6c0f87f0c8 Factor out logic to ensure that the NPM package is compiled 2017-07-06 14:40:45 -07:00
Natalie Weizenbaum
4db551e603 Stop using scheduled_test. (#142) 2017-05-25 14:23:48 -07:00
Luis Vargas
cfc3a15041 Support package: URLs as a Dart library (#53) 2017-02-03 01:08:06 -08:00
Natalie Weizenbaum
8b6548fc61 Add more CLI tests. 2016-12-02 17:39:28 -08:00
Natalie Weizenbaum
e59a172609 Run CLI tests on Travis. 2016-12-02 16:58:23 -08:00
Natalie Weizenbaum
224d9cdb47 Add CLI test files for Dart and Node.
More tests will be added in a future commit.
2016-12-02 16:09:20 -08:00