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

Commit

Permalink
Expose Sass lang version via node-sass API and CLI
Browse files Browse the repository at this point in the history
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]
```
  • Loading branch information
am11 committed Sep 7, 2016
1 parent 0c709c1 commit 14a76d8
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 13 deletions.
3 changes: 2 additions & 1 deletion lib/extensions.js
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,8 @@ function hasBinary(binaryPath) {
function getVersionInfo(binding) {
return [
['node-sass', pkg.version, '(Wrapper)', '[JavaScript]'].join('\t'),
['libsass ', binding.libsassVersion(), '(Sass Compiler)', '[C/C++]'].join('\t'),
['LibSass ', binding.libsassVersion(), '(Sass Compiler)', '[C/C++]'].join('\t'),
['Sass ', binding.languageVersion(), '(Sass Language)', '[Sass]'].join('\t')
].join(eol);
}

Expand Down
5 changes: 5 additions & 0 deletions src/binding.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -331,12 +331,17 @@ NAN_METHOD(libsass_version) {
info.GetReturnValue().Set(Nan::New<v8::String>(libsass_version()).ToLocalChecked());
}

NAN_METHOD(libsass_language_version) {
info.GetReturnValue().Set(Nan::New<v8::String>(libsass_language_version()).ToLocalChecked());
}

NAN_MODULE_INIT(RegisterModule) {
Nan::SetMethod(target, "render", render);
Nan::SetMethod(target, "renderSync", render_sync);
Nan::SetMethod(target, "renderFile", render_file);
Nan::SetMethod(target, "renderFileSync", render_file_sync);
Nan::SetMethod(target, "libsassVersion", libsass_version);
Nan::SetMethod(target, "languageVersion", libsass_language_version);
SassTypes::Factory::initExports(target);
}

Expand Down
28 changes: 16 additions & 12 deletions test/api.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
/*eslint new-cap: ["error", {"capIsNewExceptions": ["Color"]}]*/

var assert = require('assert'),
fs = require('fs'),
path = require('path'),
read = fs.readFileSync,
sassPath = process.env.NODESASS_COV
? require.resolve('../lib-cov')
: require.resolve('../lib'),
sass = require(sassPath),
fixture = path.join.bind(null, __dirname, 'fixtures'),
resolveFixture = path.resolve.bind(null, __dirname, 'fixtures');
eol = require('os').EOL,
fs = require('fs'),
path = require('path'),
sass = require(sassPath),
sassPath = process.env.NODESASS_COV
? require.resolve('../lib-cov')
: require.resolve('../lib');

var fixture = path.join.bind(null, __dirname, 'fixtures'),
read = fs.readFileSync,
resolveFixture = path.resolve.bind(null, __dirname, 'fixtures');

describe('api', function() {

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

it('should return a correct version info', function(done) {
assert(info.indexOf(package.version) > 0);
assert(info.indexOf('(Wrapper)') > 0);
var lines = info.split(eol);

assert(info.indexOf('[C/C++]') > 0);
assert(info.indexOf('[JavaScript]') > 0);
assert(info.indexOf('[NA]') < 0);
assert.equal(lines[0], ['node-sass', package.version, '(Wrapper)', '[JavaScript]'].join('\t'));
assert(info.indexOf('(Sass Compiler)') > 0);
assert(info.indexOf('[C/C++]') > 0);
assert(info.indexOf('(Sass Language)') > 0);

done();
});
Expand Down

0 comments on commit 14a76d8

Please sign in to comment.