Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit df6dd7b

Browse files
committed
Expose Sass lang version via node-sass API and CLI
API Usage: ```javascript var sass = require('node-sass') console.log(sass.info) /* node-sass 3.7.0 (Wrapper) [JavaScript] libsass 3.3.6 (Sass Compiler) [C/C++] Sass 3.4 (Sass Language) [Sass] */ ``` CLI Usasge: ```sh node-sass -v node-sass 3.7.0 (Wrapper) [JavaScript] libsass 3.3.6 (Sass Compiler) [C/C++] Sass 3.4 (Sass Language) [Sass] ```
1 parent 0c709c1 commit df6dd7b

3 files changed

Lines changed: 23 additions & 13 deletions

File tree

lib/extensions.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,8 @@ function hasBinary(binaryPath) {
278278
function getVersionInfo(binding) {
279279
return [
280280
['node-sass', pkg.version, '(Wrapper)', '[JavaScript]'].join('\t'),
281-
['libsass ', binding.libsassVersion(), '(Sass Compiler)', '[C/C++]'].join('\t'),
281+
['LibSass ', binding.libsassVersion(), '(Sass Compiler)', '[C/C++]'].join('\t'),
282+
['Sass ', binding.languageVersion(), '(Sass Language)', '[Sass]'].join('\t')
282283
].join(eol);
283284
}
284285

src/binding.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,12 +331,17 @@ NAN_METHOD(libsass_version) {
331331
info.GetReturnValue().Set(Nan::New<v8::String>(libsass_version()).ToLocalChecked());
332332
}
333333

334+
NAN_METHOD(libsass_language_version) {
335+
info.GetReturnValue().Set(Nan::New<v8::String>(libsass_language_version()).ToLocalChecked());
336+
}
337+
334338
NAN_MODULE_INIT(RegisterModule) {
335339
Nan::SetMethod(target, "render", render);
336340
Nan::SetMethod(target, "renderSync", render_sync);
337341
Nan::SetMethod(target, "renderFile", render_file);
338342
Nan::SetMethod(target, "renderFileSync", render_file_sync);
339343
Nan::SetMethod(target, "libsassVersion", libsass_version);
344+
Nan::SetMethod(target, "languageVersion", libsass_language_version);
340345
SassTypes::Factory::initExports(target);
341346
}
342347

test/api.js

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
/*eslint new-cap: ["error", {"capIsNewExceptions": ["Color"]}]*/
22

33
var assert = require('assert'),
4-
fs = require('fs'),
5-
path = require('path'),
6-
read = fs.readFileSync,
7-
sassPath = process.env.NODESASS_COV
8-
? require.resolve('../lib-cov')
9-
: require.resolve('../lib'),
10-
sass = require(sassPath),
11-
fixture = path.join.bind(null, __dirname, 'fixtures'),
12-
resolveFixture = path.resolve.bind(null, __dirname, 'fixtures');
4+
eol = require('os').EOL,
5+
fs = require('fs'),
6+
path = require('path'),
7+
sassPath = process.env.NODESASS_COV
8+
? require.resolve('../lib-cov')
9+
: require.resolve('../lib');
10+
11+
var fixture = path.join.bind(null, __dirname, 'fixtures'),
12+
read = fs.readFileSync,
13+
resolveFixture = path.resolve.bind(null, __dirname, 'fixtures')
14+
sass = require(sassPath);
1315

1416
describe('api', function() {
1517

@@ -1829,12 +1831,14 @@ describe('api', function() {
18291831
info = sass.info;
18301832

18311833
it('should return a correct version info', function(done) {
1832-
assert(info.indexOf(package.version) > 0);
1833-
assert(info.indexOf('(Wrapper)') > 0);
1834+
var lines = info.split(eol);
1835+
1836+
assert(info.indexOf('[C/C++]') > 0);
18341837
assert(info.indexOf('[JavaScript]') > 0);
18351838
assert(info.indexOf('[NA]') < 0);
1839+
assert.equal(lines[0], ['node-sass', package.version, '(Wrapper)', '[JavaScript]'].join('\t'));
18361840
assert(info.indexOf('(Sass Compiler)') > 0);
1837-
assert(info.indexOf('[C/C++]') > 0);
1841+
assert(info.indexOf('(Sass Language)') > 0);
18381842

18391843
done();
18401844
});

0 commit comments

Comments
 (0)