@@ -44,44 +44,44 @@ function putArrayBuffer(asbindInstance, value, typeName) {
44
44
) ;
45
45
}
46
46
47
- const ascToJsConverters = new Map ( [
48
- [ / v o i d / , nop ] ,
49
- [ / ( i | u ) ( 8 | 1 6 | 3 2 ) / , nop ] ,
50
- [ / f ( 3 2 | 6 4 ) / , nop ] ,
51
- [ / [ s S ] t r i n g / , getString ] ,
52
- [ / ( U i | I ) n t ( 8 | 1 6 | 3 2 ) A r r a y / , getArrayBufferView ] ,
53
- [ / B i g ( U i | I ) n t 6 4 A r r a y / , getArrayBufferView ] ,
54
- [ / U i n t 8 C l a m p e d A r r a y / , getArrayBufferView ] ,
55
- [ / F l o a t ( 3 2 | 6 4 ) A r r a y / , getArrayBufferView ]
47
+ const converters = new Map ( [
48
+ [ / v o i d / , { ascToJs : nop , jsToAsc : nop } ] ,
49
+ [ / ( i | u ) ( 8 | 1 6 | 3 2 ) / , { ascToJs : nop , jsToAsc : nop } ] ,
50
+ [ / f ( 3 2 | 6 4 ) / , { ascToJs : nop , jsToAsc : nop } ] ,
51
+ [ / [ s S ] t r i n g / , { ascToJs : getString , jsToAsc : putString } ] ,
52
+ [
53
+ / ( U i | I ) n t ( 8 | 1 6 | 3 2 ) A r r a y / ,
54
+ { ascToJs : getArrayBufferView , jsToAsc : putArrayBuffer }
55
+ ] ,
56
+ [
57
+ / B i g ( U i | I ) n t 6 4 A r r a y / ,
58
+ { ascToJs : getArrayBufferView , jsToAsc : putArrayBuffer }
59
+ ] ,
60
+ [
61
+ / U i n t 8 C l a m p e d A r r a y / ,
62
+ { ascToJs : getArrayBufferView , jsToAsc : putArrayBuffer }
63
+ ] ,
64
+ [
65
+ / F l o a t ( 3 2 | 6 4 ) A r r a y / ,
66
+ { ascToJs : getArrayBufferView , jsToAsc : putArrayBuffer }
67
+ ]
56
68
] ) ;
57
69
58
- function getAscToJsConverterForType ( typeName ) {
59
- for ( const [ matcher , converter ] of ascToJsConverters ) {
70
+ function getConverterForType ( typeName ) {
71
+ for ( const [ matcher , converter ] of converters ) {
60
72
if ( matcher . test ( typeName ) ) {
61
73
return converter ;
62
74
}
63
75
}
64
- throw Error ( `No AscToJs converter for ${ JSON . stringify ( typeName ) } ` ) ;
76
+ throw Error ( `No converter for ${ JSON . stringify ( typeName ) } ` ) ;
65
77
}
66
78
67
- const jsToAscConverters = new Map ( [
68
- [ / v o i d / , nop ] ,
69
- [ / ( i | u ) ( 8 | 1 6 | 3 2 ) / , nop ] ,
70
- [ / f ( 3 2 | 6 4 ) / , nop ] ,
71
- [ / [ s S ] t r i n g / , putString ] ,
72
- [ / ( U i | I ) n t ( 8 | 1 6 | 3 2 ) A r r a y / , putArrayBuffer ] ,
73
- [ / B i g ( U i | I ) n t 6 4 A r r a y / , putArrayBuffer ] ,
74
- [ / U i n t 8 C l a m p e d A r r a y / , putArrayBuffer ] ,
75
- [ / F l o a t ( 3 2 | 6 4 ) A r r a y / , putArrayBuffer ]
76
- ] ) ;
79
+ function getAscToJsConverterForType ( typeName ) {
80
+ return getConverterForType ( typeName ) ?. ascToJs ;
81
+ }
77
82
78
83
function getJsToAscConverterForType ( typeName ) {
79
- for ( const [ matcher , converter ] of jsToAscConverters ) {
80
- if ( matcher . test ( typeName ) ) {
81
- return converter ;
82
- }
83
- }
84
- throw Error ( `No JsToAsc converter for ${ JSON . stringify ( typeName ) } ` ) ;
84
+ return getConverterForType ( typeName ) ?. jsToAsc ;
85
85
}
86
86
87
87
// Function that takes in an asbindInstance, and importObject, and the path to the import function on the object
0 commit comments