Skip to content

Commit

Permalink
add win 32 package
Browse files Browse the repository at this point in the history
  • Loading branch information
2betop committed Jan 27, 2015
1 parent dadb1fb commit 3eb9450
Show file tree
Hide file tree
Showing 13 changed files with 88 additions and 56 deletions.
1 change: 1 addition & 0 deletions binding.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
'src/libsass/sass2scss.cpp',
'src/libsass/sass_context.cpp',
'src/libsass/sass_functions.cpp',
'src/libsass/sass_interface.cpp',
'src/libsass/sass_util.cpp',
'src/libsass/sass_values.cpp',
'src/libsass/source_map.cpp',
Expand Down
Binary file removed bindings/win32-ia32/0.8.0/binding.node
Binary file not shown.
Binary file removed bindings/win32-ia32/0.9.11/binding.node
Binary file not shown.
Binary file removed bindings/win32-ia32/0.9.3/binding.node
Binary file not shown.
Binary file removed bindings/win32-ia32/0.9.7/binding.node
Binary file not shown.
Binary file added bindings/win32-x64/0.10.2/binding.node
Binary file not shown.
20 changes: 20 additions & 0 deletions lib/binding.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#include <node.h>
#include <nan.h>
#include "./sync.h"

using v8::FunctionTemplate;
using v8::Handle;
using v8::Object;
using v8::String;

// Expose synchronous and asynchronous access to our
// Estimate() function
void InitAll(Handle<Object> exports) {
exports->Set(NanNew<String>("renderSync"),
NanNew<FunctionTemplate>(RenderSync)->GetFunction());

exports->Set(NanNew<String>("importedCallback"),
NanNew<FunctionTemplate>(importedCallback)->GetFunction());
}

NODE_MODULE(binding, InitAll)
4 changes: 2 additions & 2 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -175,9 +175,9 @@ function getOptions(options) {
};

if (importer) {
options.importer = function(file, prev, key, v2) {
options.importer = function(file, prev, key) {
var done = function(data) {
binding[v2 ? 'importedCallback2' : 'importedCallback']({
binding.importedCallback({
index: key,
objectLiteral: data
});
Expand Down
78 changes: 39 additions & 39 deletions lib/sync.cc
Original file line number Diff line number Diff line change
Expand Up @@ -3,58 +3,58 @@
#include <cstring>
#include <iostream>
#include <cstdlib>
#include "../libsass/sass_interface.h"

using namespace v8;
using namespace std;
using namespace Sass;

char* CreateString(Local<Value> value) {
size_t count;
return NanCString(value, &count);
}

void prepareOptions(Local<Object> options, sass_context* ctx) {
ctx->source_string = CreateString(options->Get(NanNew("data")));
ctx->options.image_path = CreateString(options->Get(NanNew("imagePath")));
ctx->options.output_style = options->Get(NanNew("style"))->Int32Value();
ctx->options.source_comments = options->Get(NanNew("comments"))->Int32Value();
ctx->options.omit_source_map_url = options->Get(NanNew("omit_source_map_url"))->Int32Value();
ctx->options.is_indented_syntax_src = options->Get(NanNew("is_indented_syntax_src"))->Int32Value();
ctx->options.include_paths = CreateString(options->Get(NanNew("paths")));
ctx->options.precision = options->Get(NanNew("precision"))->Int32Value();
ctx->options.source_map_file = CreateString(options->Get(NanNew("source_map_file")));
}
#include "../src/libsass/sass_interface.h"

// using namespace v8;
// using namespace std;
// using namespace Sass;

// char* CreateString(Local<Value> value) {
// size_t count;
// return NanCString(value, &count);
// }

// void prepareOptions(Local<Object> options, sass_context* ctx) {
// ctx->source_string = CreateString(options->Get(NanNew("data")));
// ctx->options.image_path = CreateString(options->Get(NanNew("imagePath")));
// ctx->options.output_style = options->Get(NanNew("style"))->Int32Value();
// ctx->options.source_comments = options->Get(NanNew("comments"))->Int32Value();
// ctx->options.omit_source_map_url = options->Get(NanNew("omit_source_map_url"))->Int32Value();
// ctx->options.is_indented_syntax_src = options->Get(NanNew("is_indented_syntax_src"))->Int32Value();
// ctx->options.include_paths = CreateString(options->Get(NanNew("paths")));
// ctx->options.precision = options->Get(NanNew("precision"))->Int32Value();
// ctx->options.source_map_file = CreateString(options->Get(NanNew("source_map_file")));
// }

// Simple synchronous access to the `Estimate()` function
NAN_METHOD(RenderSync) {
NanScope();

sass_context* ctx = sass_new_context();
// sass_context* ctx = sass_new_context();

prepareOptions(args[0]->ToObject(), ctx);
// prepareOptions(args[0]->ToObject(), ctx);

sass_compile(ctx);
// sass_compile(ctx);

if (ctx->error_status == 0) {
Local<String> output = NanNew<String>(ctx->output_string);
sass_free_context(ctx);
NanReturnValue(output);
}
// if (ctx->error_status == 0) {
// Local<String> output = NanNew<String>(ctx->output_string);
// sass_free_context(ctx);
// NanReturnValue(output);
// }

Local<String> error = NanNew<String>(ctx->error_message);
sass_free_context(ctx);
NanThrowError(error);
// Local<String> error = NanNew<String>(ctx->error_message);
// sass_free_context(ctx);
// NanThrowError(error);
NanReturnUndefined();
}

NAN_METHOD(Sass2scss) {
NAN_METHOD(importedCallback) {
NanScope();

char *source = CreateString(args[0]);
char *converted = sass2scss(source, SASS2SCSS_PRETTIFY_1);
delete[] source;
// char *source = CreateString(args[0]);
// char *converted = sass2scss(source, SASS2SCSS_PRETTIFY_1);
// delete[] source;

Local<Value> output = Local<Value>::New(String::New(converted));
// Local<Value> output = Local<Value>::New(String::New(converted));
NanReturnValue(output);
}
}
2 changes: 1 addition & 1 deletion lib/sync.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@
#include <nan.h>

NAN_METHOD(RenderSync);
NAN_METHOD(Sass2scss);
NAN_METHOD(importedCallback);

#endif // FIS_SASS_SYNC_H_
12 changes: 3 additions & 9 deletions map.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,10 @@
{
"win32-x64":[
"0.8.0",
"0.9.3",
"0.9.7",
"0.9.11"
"0.10.2"
],

"win32-ia32":[
"0.8.0",
"0.9.3",
"0.9.7",
"0.9.11"
"0.10.2"
],

"linux-x64": [
Expand All @@ -33,4 +27,4 @@
"0.9.7",
"0.9.11"
]
}
}
9 changes: 4 additions & 5 deletions src/binding.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,10 @@ struct Sass_Import** sass_importer2(const char* file, const char* prev, void* co
Handle<Value> argv[] = {
NanNew<String>(strdup(file ? strdup(file) : 0)),
NanNew<String>(strdup(prev ? strdup(prev) : 0)),
NanNew<Number>(imports_collection.size() - 1),
NanNew<Number>(1)
NanNew<Number>(imports_collection.size() - 1)
};

NanNew<Value>(ctx_w->importer_callback->Call(4, argv));
NanNew<Value>(ctx_w->importer_callback->Call(3, argv));

if (try_catch.HasCaught()) {
node::FatalException(try_catch);
Expand Down Expand Up @@ -159,7 +158,7 @@ NAN_METHOD(RenderSync) {
NanReturnValue(NanNew<Boolean>(result == 0));
}

NAN_METHOD(ImportedCallback2) {
NAN_METHOD(ImportedCallback) {
NanScope();

TryCatch try_catch;
Expand Down Expand Up @@ -214,7 +213,7 @@ NAN_METHOD(ImportedCallback2) {

void RegisterModule(v8::Handle<v8::Object> target) {
NODE_SET_METHOD(target, "renderSync", RenderSync);
NODE_SET_METHOD(target, "importedCallback2", ImportedCallback2);
NODE_SET_METHOD(target, "importedCallback", ImportedCallback);
}

NODE_MODULE(binding, RegisterModule);
18 changes: 18 additions & 0 deletions test.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,21 @@ if ( !ret.css.match( expect ) ) {
} else {
console.log( 'Simple test passed!');
}


var ret = sass.renderSync({
file: 'aaa.scss',
data: '@import "xxx";\n'+source,
importer: function(url, pre, done) {
return {
contents: "body{color: red}"
}
}
});

if ( !~ret.css.indexOf('color: white;') ) {
throw new Error( 'Some thing wrong.' );
} else {
console.log( 'importer is supported');
}

0 comments on commit 3eb9450

Please sign in to comment.