@@ -5,53 +5,79 @@ import { cwrapSignature } from 'emscripten-wasm-loader';
5
5
*
6
6
* https://github.com/sass/libsass/blob/master/docs/api-importer.md
7
7
*/
8
- const wrapSassImporter = ( _cwrap : cwrapSignature ) => ( {
8
+ //TODO: verify return type / param type of cwrapped signature for Sass_Import_Entry
9
+ const wrapSassImporter = ( cwrap : cwrapSignature ) => ( {
9
10
//Sass_C_Import_Callback sass_make_importer (Sass_C_Import_Fn, void* cookie);
10
- make_importer : null ,
11
- //Sass_C_Import_Fn sass_import_get_function (Sass_C_Import_Callback fn);
12
- import_get_function : ( ) => {
13
- throw new Error ( 'not implemented' ) ;
14
- } ,
15
- //void* sass_import_get_cookie (Sass_C_Import_Callback fn);
16
- import_get_cookie : ( ) => {
17
- throw new Error ( 'not implemented' ) ;
18
- } ,
11
+ make_importer : cwrap < ( importFnPtr : number , cookie : number ) => number > ( `sass_make_importer` , 'number' , [
12
+ 'number' ,
13
+ 'number'
14
+ ] ) ,
15
+ //Sass_C_Import_Fn sass_importer_get_function (Sass_C_Import_Callback fn);
16
+ importer_get_function : cwrap < ( importCallbackPtr : number ) => number > ( `sass_importer_get_function` , 'number' , [
17
+ 'number'
18
+ ] ) ,
19
+ //void* sass_importer_get_cookie (Sass_C_Import_Callback fn);
20
+ importer_get_cookie : cwrap < ( importCallbackPtr : number ) => number > ( `sass_importer_get_cookie` , 'number' , [ 'number' ] ) ,
19
21
//void sass_delete_importer (Sass_C_Import_Callback fn);
20
- delete_importer : null ,
22
+ delete_importer : cwrap < ( importCallbackPtr : number ) => null > ( `sass_delete_importer` , null , [ 'number' ] ) ,
21
23
//Sass_Import_Entry* sass_make_import_list (size_t length);
22
- make_import_list : null ,
24
+ make_import_list : cwrap < ( length : number ) => number > ( `sass_make_import_list` , 'number' , [ 'number' ] ) ,
23
25
//Sass_Import_Entry sass_make_import_entry (const char* path, char* source, char* srcmap);
24
- make_import_entry : null ,
26
+ make_import_entry : cwrap < ( path : number , source : number , srcmap : number ) => number > (
27
+ `sass_make_import_entry` ,
28
+ 'number' ,
29
+ [ 'number' , 'number' , 'number' ]
30
+ ) ,
25
31
//Sass_Import_Entry sass_make_import (const char* rel, const char* abs, char* source, char* srcmap);
26
- make_import : null ,
32
+ make_import : cwrap < ( rel : number , abs : number , source : number , srcmap : number ) => number > (
33
+ `sass_make_import` ,
34
+ 'number' ,
35
+ [ 'number' , 'number' , 'number' , 'number' ]
36
+ ) ,
27
37
//Sass_Import_Entry sass_import_set_error(Sass_Import_Entry import, const char* message, size_t line, size_t col);
28
- import_set_error : null ,
38
+ import_set_error : cwrap < ( importEntryPtr : number , message : number , line : number , col : number ) => number > (
39
+ `sass_import_set_error` ,
40
+ 'number' ,
41
+ [ 'number' , 'number' , 'number' , 'number' ]
42
+ ) ,
29
43
//void sass_import_set_list_entry (Sass_Import_Entry* list, size_t idx, Sass_Import_Entry entry);
30
- import_set_list_entry : null ,
44
+ import_set_list_entry : cwrap < ( importEntryList : number , idx : number , entry : number ) => null > (
45
+ `sass_import_set_list_entry` ,
46
+ null ,
47
+ [ 'number' , 'number' , 'number' ]
48
+ ) ,
31
49
//Sass_Import_Entry sass_import_get_list_entry (Sass_Import_Entry* list, size_t idx);
32
- import_get_list_entry : null ,
50
+ import_get_list_entry : cwrap < ( importEntryList : number , idx : number ) => number > (
51
+ `sass_import_get_list_entry` ,
52
+ 'number' ,
53
+ [ 'number' , 'number' ]
54
+ ) ,
33
55
//const char* sass_import_get_imp_path (Sass_Import_Entry);
34
- import_get_imp_path : null ,
56
+ import_get_imp_path : cwrap < ( importEntryPtr : number ) => number > ( `sass_import_get_imp_path` , 'number' , [ 'number' ] ) ,
35
57
//const char* sass_import_get_abs_path (Sass_Import_Entry);
36
- import_get_abs_path : null ,
58
+ import_get_abs_path : cwrap < ( importEntryPtr : number ) => number > ( `sass_import_get_abs_path` , 'number' , [ 'number' ] ) ,
37
59
//const char* sass_import_get_source (Sass_Import_Entry);
38
- import_get_source : null ,
60
+ import_get_source : cwrap < ( importEntryPtr : number ) => number > ( `sass_import_get_source` , 'number' , [ 'number' ] ) ,
39
61
//const char* sass_import_get_srcmap (Sass_Import_Entry);
40
- import_get_srcmap : null ,
62
+ import_get_srcmap : cwrap < ( importEntryPtr : number ) => number > ( `sass_import_get_srcmap` , 'number' , [ 'number' ] ) ,
41
63
//char* sass_import_take_source (Sass_Import_Entry);
42
- import_take_source : null ,
64
+ import_take_source : cwrap < ( importEntryPtr : number ) => number > ( `sass_import_take_source` , 'number' , [ 'number' ] ) ,
43
65
//char* sass_import_take_srcmap (Sass_Import_Entry);
44
- import_take_srcmap : null ,
66
+ import_take_srcmap : cwrap < ( importEntryPtr : number ) => number > ( `sass_import_take_srcmap` , 'number' , [ 'number' ] ) ,
45
67
//size_t sass_import_get_error_line (Sass_Import_Entry);
46
- import_get_error_line : null ,
68
+ import_get_error_line : cwrap < ( importEntryPtr : number ) => number > ( `sass_import_get_error_line` , 'number' , [ 'number' ] ) ,
47
69
//size_t sass_import_get_error_column (Sass_Import_Entry);
48
- import_get_error_column : null ,
70
+ import_get_error_column : cwrap < ( importEntryPtr : number ) => number > ( `sass_import_get_error_column` , 'number' , [
71
+ 'number'
72
+ ] ) ,
49
73
//const char* sass_import_get_error_message (Sass_Import_Entry);
50
- import_get_error_message : null ,
74
+ import_get_error_message : cwrap < ( importEntryPtr : number ) => number > ( `sass_import_get_error_message` , 'number' , [
75
+ 'number'
76
+ ] ) ,
51
77
//void sass_delete_import_list (Sass_Import_Entry*);
52
- delete_import_list : null ,
78
+ delete_import_list : cwrap < ( importEntryList : number ) => void > ( `sass_delete_import_list` , null , [ 'number' ] ) ,
53
79
//void sass_delete_import (Sass_Import_Entry);
54
- delete_import : null
80
+ delete_import : cwrap < ( importEntryPtr : number ) => void > ( `sass_delete_import` , null , [ 'number' ] )
55
81
} ) ;
56
82
57
83
export { wrapSassImporter } ;
0 commit comments