From 0b22dca353fac694fc43c4924efb1bda4ed989b2 Mon Sep 17 00:00:00 2001 From: OJ Kwon Date: Sun, 5 Aug 2018 11:21:24 -0700 Subject: [PATCH] wip --- .vscode/settings.json | 3 ++- src/interop/function/wrapSassFunction.ts | 25 +++++++++++++++++------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 04ddddb..1344bb3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,6 +5,7 @@ "**/.hg": true, "**/CVS": true, "**/.DS_Store": true, - "./src/bin/libsass.js": true + "src/bin/libsass.js": true, + "dist": true, } } \ No newline at end of file diff --git a/src/interop/function/wrapSassFunction.ts b/src/interop/function/wrapSassFunction.ts index 60784fa..55c5994 100644 --- a/src/interop/function/wrapSassFunction.ts +++ b/src/interop/function/wrapSassFunction.ts @@ -5,19 +5,30 @@ import { cwrapSignature } from 'emscripten-wasm-loader'; * * https://github.com/sass/libsass/blob/master/docs/api-function.md */ -const wrapSassFunction = (_cwrap: cwrapSignature) => ({ +const wrapSassFunction = (cwrap: cwrapSignature) => ({ //Sass_Function_List sass_make_function_list (size_t length); - make_function_list: null, + make_function_list: cwrap<(length: number) => number>(`sass_make_function_list`, 'number', ['number']), //Sass_Function_Entry sass_make_function (const char* signature, Sass_Function_Fn cb, void* cookie); - make_function: null, + make_function: cwrap<(signature: number, fn: number, cookie: number) => number>(`sass_make_function`, 'number', [ + 'number', + 'number', + 'number' + ]), //void sass_delete_function (Sass_Function_Entry entry); - delete_function: null, + delete_function: cwrap<(entry: number) => void>(`sass_delete_function`, null, ['number']), //void sass_delete_function_list (Sass_Function_List list); - delete_function_list: null, + delete_function_list: cwrap<(list: number) => void>(`sass_delete_function_list`, null, ['number']), //Sass_Function_Entry sass_function_get_list_entry(Sass_Function_List list, size_t pos); - function_get_list_entry: null, + function_get_list_entry: cwrap<(list: number, pos: number) => number>(`sass_function_get_list_entry`, 'number', [ + 'number', + 'number' + ]), //void sass_function_set_list_entry(Sass_Function_List list, size_t pos, Sass_Function_Entry cb); - function_set_list_entry: null, + function_set_list_entry: cwrap<(list: number, pos: number, entry: number) => void>( + `sass_function_get_list_entry`, + null, + ['number', 'number', 'number'] + ), //void sass_import_set_list_entry (Sass_Import_List list, size_t idx, Sass_Import_Entry entry); import_set_list_entry: null, //Sass_Import_Entry sass_import_get_list_entry (Sass_Import_List list, size_t idx);