@gtkx/runtime 1.0.0-rc.1 → 1.0.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/arg.d.ts +6 -5
- package/dist/arg.d.ts.map +1 -1
- package/dist/arg.js +5 -4
- package/dist/arg.js.map +1 -1
- package/dist/bind.d.ts +3 -2
- package/dist/bind.d.ts.map +1 -1
- package/dist/bind.js +5 -3
- package/dist/bind.js.map +1 -1
- package/dist/callback.d.ts +3 -3
- package/dist/callback.d.ts.map +1 -1
- package/dist/callback.js +51 -33
- package/dist/callback.js.map +1 -1
- package/dist/descriptors.d.ts +67 -64
- package/dist/descriptors.d.ts.map +1 -1
- package/dist/descriptors.js +92 -60
- package/dist/descriptors.js.map +1 -1
- package/dist/error.d.ts +5 -6
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +10 -6
- package/dist/error.js.map +1 -1
- package/dist/exit-hook.d.ts +2 -0
- package/dist/exit-hook.d.ts.map +1 -0
- package/dist/exit-hook.js +3 -0
- package/dist/exit-hook.js.map +1 -0
- package/dist/fn.d.ts +2 -2
- package/dist/fn.d.ts.map +1 -1
- package/dist/fn.js +26 -15
- package/dist/fn.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/library.d.ts +6 -5
- package/dist/library.d.ts.map +1 -1
- package/dist/library.js +6 -5
- package/dist/library.js.map +1 -1
- package/dist/lifecycle.d.ts +10 -9
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +38 -23
- package/dist/lifecycle.js.map +1 -1
- package/dist/listeners.d.ts +8 -8
- package/dist/listeners.d.ts.map +1 -1
- package/dist/listeners.js +28 -15
- package/dist/listeners.js.map +1 -1
- package/dist/mixin.d.ts +5 -11
- package/dist/mixin.d.ts.map +1 -1
- package/dist/mixin.js +24 -14
- package/dist/mixin.js.map +1 -1
- package/dist/native-value.d.ts +3 -2
- package/dist/native-value.d.ts.map +1 -1
- package/dist/native-value.js +75 -42
- package/dist/native-value.js.map +1 -1
- package/dist/object.d.ts +4 -3
- package/dist/object.d.ts.map +1 -1
- package/dist/object.js +8 -5
- package/dist/object.js.map +1 -1
- package/dist/promisify.d.ts +9 -1
- package/dist/promisify.d.ts.map +1 -1
- package/dist/promisify.js +18 -15
- package/dist/promisify.js.map +1 -1
- package/dist/properties.d.ts +14 -0
- package/dist/properties.d.ts.map +1 -0
- package/dist/properties.js +79 -0
- package/dist/properties.js.map +1 -0
- package/dist/register-class.d.ts +10 -2
- package/dist/register-class.d.ts.map +1 -1
- package/dist/register-class.js +83 -29
- package/dist/register-class.js.map +1 -1
- package/dist/registry.d.ts +23 -21
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +54 -35
- package/dist/registry.js.map +1 -1
- package/dist/signal.d.ts +7 -6
- package/dist/signal.d.ts.map +1 -1
- package/dist/signal.js +19 -12
- package/dist/signal.js.map +1 -1
- package/dist/t.d.ts +2 -2
- package/dist/t.d.ts.map +1 -1
- package/dist/t.js +2 -1
- package/dist/t.js.map +1 -1
- package/dist/tuple.d.ts +3 -2
- package/dist/tuple.d.ts.map +1 -1
- package/dist/tuple.js +7 -4
- package/dist/tuple.js.map +1 -1
- package/dist/type.d.ts +48 -41
- package/dist/type.d.ts.map +1 -1
- package/dist/type.js +107 -87
- package/dist/type.js.map +1 -1
- package/dist/value.d.ts +19 -10
- package/dist/value.d.ts.map +1 -1
- package/dist/value.js +164 -99
- package/dist/value.js.map +1 -1
- package/package.json +4 -6
- package/src/arg.ts +7 -5
- package/src/bind.ts +13 -4
- package/src/callback.ts +97 -35
- package/src/descriptors.ts +227 -85
- package/src/error.ts +18 -9
- package/src/exit-hook.ts +3 -0
- package/src/fn.ts +53 -22
- package/src/index.ts +5 -3
- package/src/library.ts +7 -5
- package/src/lifecycle.ts +54 -26
- package/src/listeners.ts +46 -18
- package/src/mixin.ts +39 -14
- package/src/native-value.ts +103 -46
- package/src/object.ts +19 -7
- package/src/promisify.ts +42 -15
- package/src/properties.ts +115 -0
- package/src/register-class.ts +157 -30
- package/src/registry.ts +144 -54
- package/src/signal.ts +53 -13
- package/src/t.ts +3 -1
- package/src/tuple.ts +16 -4
- package/src/type.ts +183 -93
- package/src/value.ts +231 -108
package/dist/arg.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import type { Descriptor } from "@gtkx/native";
|
|
2
|
-
|
|
2
|
+
type Arg = {
|
|
3
3
|
type: Descriptor;
|
|
4
4
|
direction?: "out" | "inout";
|
|
5
5
|
callerAllocated?: boolean;
|
|
6
6
|
consumed?: boolean;
|
|
7
7
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
declare const isOutputArg: (arg: Arg) => boolean;
|
|
9
|
+
declare const isInoutArg: (arg: Arg) => boolean;
|
|
10
|
+
declare const isCallerAllocatedArg: (arg: Arg) => boolean;
|
|
11
|
+
declare const isRefArg: (arg: Arg) => boolean;
|
|
12
|
+
export { isOutputArg, isInoutArg, isCallerAllocatedArg, isRefArg, type Arg };
|
|
12
13
|
//# sourceMappingURL=arg.d.ts.map
|
package/dist/arg.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arg.d.ts","sourceRoot":"","sources":["../src/arg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,
|
|
1
|
+
{"version":3,"file":"arg.d.ts","sourceRoot":"","sources":["../src/arg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,KAAK,GAAG,GAAG;IACP,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,QAAA,MAAM,WAAW,GAAI,KAAK,GAAG,KAAG,OAAsC,CAAC;AACvE,QAAA,MAAM,UAAU,GAAI,KAAK,GAAG,KAAG,OAAoC,CAAC;AACpE,QAAA,MAAM,oBAAoB,GAAI,KAAK,GAAG,KAAG,OAAuC,CAAC;AACjF,QAAA,MAAM,QAAQ,GAAI,KAAK,GAAG,KAAG,OAAsE,CAAC;AAEpG,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,GAAG,EAAE,CAAC"}
|
package/dist/arg.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
const isOutputArg = (arg) => arg.direction !== undefined;
|
|
2
|
+
const isInoutArg = (arg) => arg.direction === "inout";
|
|
3
|
+
const isCallerAllocatedArg = (arg) => arg.callerAllocated === true;
|
|
4
|
+
const isRefArg = (arg) => arg.direction !== undefined && arg.callerAllocated !== true;
|
|
5
|
+
export { isOutputArg, isInoutArg, isCallerAllocatedArg, isRefArg };
|
|
5
6
|
//# sourceMappingURL=arg.js.map
|
package/dist/arg.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arg.js","sourceRoot":"","sources":["../src/arg.ts"],"names":[],"mappings":"AASA,MAAM,
|
|
1
|
+
{"version":3,"file":"arg.js","sourceRoot":"","sources":["../src/arg.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,GAAG,CAAC,GAAQ,EAAW,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC;AACvE,MAAM,UAAU,GAAG,CAAC,GAAQ,EAAW,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,OAAO,CAAC;AACpE,MAAM,oBAAoB,GAAG,CAAC,GAAQ,EAAW,EAAE,CAAC,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC;AACjF,MAAM,QAAQ,GAAG,CAAC,GAAQ,EAAW,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC;AAEpG,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,oBAAoB,EAAE,QAAQ,EAAY,CAAC","sourcesContent":["import type { Descriptor } from \"@gtkx/native\";\n\ntype Arg = {\n type: Descriptor;\n direction?: \"out\" | \"inout\";\n callerAllocated?: boolean;\n consumed?: boolean;\n};\n\nconst isOutputArg = (arg: Arg): boolean => arg.direction !== undefined;\nconst isInoutArg = (arg: Arg): boolean => arg.direction === \"inout\";\nconst isCallerAllocatedArg = (arg: Arg): boolean => arg.callerAllocated === true;\nconst isRefArg = (arg: Arg): boolean => arg.direction !== undefined && arg.callerAllocated !== true;\n\nexport { isOutputArg, isInoutArg, isCallerAllocatedArg, isRefArg, type Arg };\n"]}
|
package/dist/bind.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type Descriptor } from "@gtkx/native";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
declare function bind(sharedLibrary: string, symbol: string, argDescriptors: Descriptor[], returnDescriptor: Descriptor): (...values: unknown[]) => unknown;
|
|
3
|
+
declare function createBindCache(): (key: string, ...args: Parameters<typeof bind>) => ReturnType<typeof bind>;
|
|
4
|
+
export { bind, createBindCache };
|
|
4
5
|
//# sourceMappingURL=bind.d.ts.map
|
package/dist/bind.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../src/bind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAsB,MAAM,cAAc,CAAC;AAEzE,
|
|
1
|
+
{"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../src/bind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAsB,MAAM,cAAc,CAAC;AAEzE,iBAAS,IAAI,CACT,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,UAAU,EAAE,EAC5B,gBAAgB,EAAE,UAAU,GAC7B,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,CAInC;AAED,iBAAS,eAAe,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,UAAU,CAAC,OAAO,IAAI,CAAC,CAerG;AAED,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC"}
|
package/dist/bind.js
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { call, bind as nativeBind } from "@gtkx/native";
|
|
2
|
-
|
|
2
|
+
function bind(sharedLibrary, symbol, argDescriptors, returnDescriptor) {
|
|
3
3
|
const descriptor = nativeBind(sharedLibrary, symbol, argDescriptors, returnDescriptor);
|
|
4
4
|
return (...values) => call(descriptor, values);
|
|
5
5
|
}
|
|
6
|
-
|
|
6
|
+
function createBindCache() {
|
|
7
7
|
const cache = new Map();
|
|
8
8
|
return (key, ...args) => {
|
|
9
9
|
const existing = cache.get(key);
|
|
10
|
-
if (existing !== undefined)
|
|
10
|
+
if (existing !== undefined) {
|
|
11
11
|
return existing;
|
|
12
|
+
}
|
|
12
13
|
const bound = bind(...args);
|
|
13
14
|
cache.set(key, bound);
|
|
14
15
|
return bound;
|
|
15
16
|
};
|
|
16
17
|
}
|
|
18
|
+
export { bind, createBindCache };
|
|
17
19
|
//# sourceMappingURL=bind.js.map
|
package/dist/bind.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bind.js","sourceRoot":"","sources":["../src/bind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,IAAI,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAEzE,
|
|
1
|
+
{"version":3,"file":"bind.js","sourceRoot":"","sources":["../src/bind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,IAAI,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAEzE,SAAS,IAAI,CACT,aAAqB,EACrB,MAAc,EACd,cAA4B,EAC5B,gBAA4B;IAE5B,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAEvF,OAAO,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,eAAe;IACpB,MAAM,KAAK,GAAyC,IAAI,GAAG,EAAE,CAAC;IAE9D,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE;QACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAEtB,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;AACN,CAAC;AAED,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC","sourcesContent":["import { call, type Descriptor, bind as nativeBind } from \"@gtkx/native\";\n\nfunction bind(\n sharedLibrary: string,\n symbol: string,\n argDescriptors: Descriptor[],\n returnDescriptor: Descriptor,\n): (...values: unknown[]) => unknown {\n const descriptor = nativeBind(sharedLibrary, symbol, argDescriptors, returnDescriptor);\n\n return (...values) => call(descriptor, values);\n}\n\nfunction createBindCache(): (key: string, ...args: Parameters<typeof bind>) => ReturnType<typeof bind> {\n const cache: Map<string, ReturnType<typeof bind>> = new Map();\n\n return (key, ...args) => {\n const existing = cache.get(key);\n\n if (existing !== undefined) {\n return existing;\n }\n\n const bound = bind(...args);\n cache.set(key, bound);\n\n return bound;\n };\n}\n\nexport { bind, createBindCache };\n"]}
|
package/dist/callback.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ type CallbackSpec = {
|
|
|
7
7
|
returnDescriptor: Descriptor;
|
|
8
8
|
userDataIndex?: number;
|
|
9
9
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export {};
|
|
10
|
+
declare const wrapCallbackValue: (spec: CallbackDescriptor, callback: unknown) => unknown;
|
|
11
|
+
declare function wrapCallback(fn: Callback, spec: CallbackSpec, receiver: CallbackReceiver): Callback;
|
|
12
|
+
export { wrapCallbackValue, wrapCallback };
|
|
13
13
|
//# sourceMappingURL=callback.d.ts.map
|
package/dist/callback.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../src/callback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../src/callback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,kBAAkB,CAAC;AAM1E,KAAK,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAChD,KAAK,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAGpD,KAAK,YAAY,GAAG;IAChB,cAAc,EAAE,UAAU,EAAE,CAAC;IAC7B,gBAAgB,EAAE,UAAU,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAsHF,QAAA,MAAM,iBAAiB,GAAI,MAAM,kBAAkB,EAAE,UAAU,OAAO,KAAG,OACS,CAAC;AAEnF,iBAAS,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,QAAQ,CAU5F;AAED,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/callback.js
CHANGED
|
@@ -14,30 +14,33 @@ const fillCallerAllocatedBuffer = (descriptor, target, source) => {
|
|
|
14
14
|
}
|
|
15
15
|
throw new Error(`Cannot write caller-allocated ${descriptor.kind} out-parameter: no known byte size`);
|
|
16
16
|
};
|
|
17
|
+
const isCallerAllocatedOut = (descriptor) => (descriptor.kind === "boxed" || descriptor.kind === "struct") && descriptor.callerAllocated === true;
|
|
18
|
+
const collectRefArg = (descriptor, wrappedValue, inputs, outParams) => {
|
|
19
|
+
if (descriptor.inout === true) {
|
|
20
|
+
inputs.push(wrappedValue.value);
|
|
21
|
+
}
|
|
22
|
+
outParams.push({ value: wrappedValue, descriptor });
|
|
23
|
+
};
|
|
24
|
+
const collectCallbackArg = (descriptor, wrappedValue, inputs, outParams) => {
|
|
25
|
+
if (descriptor?.kind === "ref") {
|
|
26
|
+
collectRefArg(descriptor, wrappedValue, inputs, outParams);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
inputs.push(wrappedValue);
|
|
30
|
+
if (descriptor !== undefined && isCallerAllocatedOut(descriptor)) {
|
|
31
|
+
outParams.push({ value: wrappedValue, descriptor });
|
|
32
|
+
}
|
|
33
|
+
};
|
|
17
34
|
const partitionCallbackArgs = (effectiveTypes, wrapped, start) => {
|
|
18
35
|
const inputs = [];
|
|
19
36
|
const outParams = [];
|
|
20
37
|
for (let i = start; i < effectiveTypes.length; i++) {
|
|
21
|
-
|
|
22
|
-
if (descriptor !== undefined && descriptor.kind === "ref") {
|
|
23
|
-
if (descriptor.inout === true)
|
|
24
|
-
inputs.push(wrapped[i].value);
|
|
25
|
-
outParams.push({ value: wrapped[i], descriptor });
|
|
26
|
-
}
|
|
27
|
-
else if (descriptor !== undefined &&
|
|
28
|
-
(descriptor.kind === "boxed" || descriptor.kind === "struct") &&
|
|
29
|
-
descriptor.callerAllocated === true) {
|
|
30
|
-
inputs.push(wrapped[i]);
|
|
31
|
-
outParams.push({ value: wrapped[i], descriptor });
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
inputs.push(wrapped[i]);
|
|
35
|
-
}
|
|
38
|
+
collectCallbackArg(effectiveTypes[i], wrapped[i], inputs, outParams);
|
|
36
39
|
}
|
|
37
40
|
return { inputs, outParams };
|
|
38
41
|
};
|
|
39
42
|
const writeOutParams = (outParams, outValues) => {
|
|
40
|
-
outParams.
|
|
43
|
+
for (const [position, outParam] of outParams.entries()) {
|
|
41
44
|
const outValue = outValues[position];
|
|
42
45
|
if (outParam.descriptor.kind === "ref") {
|
|
43
46
|
outParam.value.value = outValue;
|
|
@@ -45,24 +48,39 @@ const writeOutParams = (outParams, outValues) => {
|
|
|
45
48
|
else if (outValue != null && outParam.value != null) {
|
|
46
49
|
fillCallerAllocatedBuffer(outParam.descriptor, outParam.value, outValue);
|
|
47
50
|
}
|
|
48
|
-
}
|
|
51
|
+
}
|
|
49
52
|
};
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const {
|
|
53
|
-
const
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
53
|
+
const getThisArg = (receiver, wrapped) => receiver === "this" ? (wrapped[0] ?? null) : null;
|
|
54
|
+
const runCallback = (plan, rawArgs) => {
|
|
55
|
+
const { effectiveTypes, returnDescriptor } = plan;
|
|
56
|
+
const wrapped = effectiveTypes.map((descriptor, i) => fromNative(descriptor, rawArgs[i]));
|
|
57
|
+
const thisArg = getThisArg(plan.receiver, wrapped);
|
|
58
|
+
const { inputs, outParams } = partitionCallbackArgs(effectiveTypes, wrapped, plan.start);
|
|
59
|
+
const result = plan.fn.apply(thisArg, inputs);
|
|
60
|
+
if (outParams.length === 0) {
|
|
61
|
+
return toNative(returnDescriptor, result);
|
|
62
|
+
}
|
|
63
|
+
const { primary, outValues } = splitTupleResult(result, returnDescriptor.kind !== "void", outParams.length);
|
|
64
|
+
writeOutParams(outParams, outValues);
|
|
65
|
+
return toNative(returnDescriptor, primary);
|
|
66
|
+
};
|
|
67
|
+
const getEffectiveTypes = (spec) => {
|
|
68
|
+
const { userDataIndex } = spec;
|
|
69
|
+
if (userDataIndex === undefined) {
|
|
70
|
+
return spec.argDescriptors;
|
|
71
|
+
}
|
|
72
|
+
return spec.argDescriptors.filter((_, i) => i !== userDataIndex);
|
|
73
|
+
};
|
|
74
|
+
const wrapCallbackValue = (spec, callback) => callback == null ? callback : wrapCallback(callback, spec, "none");
|
|
75
|
+
function wrapCallback(fn, spec, receiver) {
|
|
76
|
+
const plan = {
|
|
77
|
+
fn,
|
|
78
|
+
effectiveTypes: getEffectiveTypes(spec),
|
|
79
|
+
returnDescriptor: spec.returnDescriptor,
|
|
80
|
+
start: receiver === "none" ? 0 : 1,
|
|
81
|
+
receiver,
|
|
66
82
|
};
|
|
83
|
+
return (...rawArgs) => runCallback(plan, rawArgs);
|
|
67
84
|
}
|
|
85
|
+
export { wrapCallbackValue, wrapCallback };
|
|
68
86
|
//# sourceMappingURL=callback.js.map
|
package/dist/callback.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../src/callback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../src/callback.ts"],"names":[],"mappings":"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","sourcesContent":["import { copy, type Descriptor } from \"@gtkx/native\";\nimport type { CallbackDescriptor, RefDescriptor } from \"./descriptors.js\";\nimport { fromNative, toNative } from \"./native-value.js\";\nimport { getHandle } from \"./registry.js\";\nimport { splitTupleResult } from \"./tuple.js\";\nimport { copyValue } from \"./value.js\";\n\ntype Callback = (...args: unknown[]) => unknown;\ntype CallbackReceiver = \"this\" | \"emitter\" | \"none\";\ntype OutParam = { value: unknown; descriptor: Descriptor };\n\ntype CallbackSpec = {\n argDescriptors: Descriptor[];\n returnDescriptor: Descriptor;\n userDataIndex?: number;\n};\n\ntype CallbackPlan = {\n fn: Callback;\n effectiveTypes: Descriptor[];\n returnDescriptor: Descriptor;\n start: number;\n receiver: CallbackReceiver;\n};\n\nconst fillCallerAllocatedBuffer = (descriptor: Descriptor, target: object, source: object): void => {\n if (descriptor.kind === \"boxed\" && descriptor.typeName === \"GValue\") {\n copyValue(getHandle(target), getHandle(source));\n\n return;\n }\n\n if ((descriptor.kind === \"boxed\" || descriptor.kind === \"struct\") && descriptor.size !== undefined) {\n copy(getHandle(target), getHandle(source), descriptor.size);\n\n return;\n }\n\n throw new Error(`Cannot write caller-allocated ${descriptor.kind} out-parameter: no known byte size`);\n};\n\nconst isCallerAllocatedOut = (descriptor: Descriptor): boolean =>\n (descriptor.kind === \"boxed\" || descriptor.kind === \"struct\") && descriptor.callerAllocated === true;\n\nconst collectRefArg = (\n descriptor: RefDescriptor,\n wrappedValue: unknown,\n inputs: unknown[],\n outParams: OutParam[],\n): void => {\n if (descriptor.inout === true) {\n inputs.push((wrappedValue as { value: unknown }).value);\n }\n\n outParams.push({ value: wrappedValue, descriptor });\n};\n\nconst collectCallbackArg = (\n descriptor: Descriptor | undefined,\n wrappedValue: unknown,\n inputs: unknown[],\n outParams: OutParam[],\n): void => {\n if (descriptor?.kind === \"ref\") {\n collectRefArg(descriptor, wrappedValue, inputs, outParams);\n\n return;\n }\n\n inputs.push(wrappedValue);\n\n if (descriptor !== undefined && isCallerAllocatedOut(descriptor)) {\n outParams.push({ value: wrappedValue, descriptor });\n }\n};\n\nconst partitionCallbackArgs = (\n effectiveTypes: Descriptor[],\n wrapped: unknown[],\n start: number,\n): { inputs: unknown[]; outParams: OutParam[] } => {\n const inputs: unknown[] = [];\n const outParams: OutParam[] = [];\n\n for (let i = start; i < effectiveTypes.length; i++) {\n collectCallbackArg(effectiveTypes[i], wrapped[i], inputs, outParams);\n }\n\n return { inputs, outParams };\n};\n\nconst writeOutParams = (outParams: OutParam[], outValues: unknown[]): void => {\n for (const [position, outParam] of outParams.entries()) {\n const outValue = outValues[position];\n\n if (outParam.descriptor.kind === \"ref\") {\n (outParam.value as { value: unknown }).value = outValue;\n } else if (outValue != null && outParam.value != null) {\n fillCallerAllocatedBuffer(outParam.descriptor, outParam.value, outValue);\n }\n }\n};\n\nconst getThisArg = (receiver: CallbackReceiver, wrapped: unknown[]): unknown =>\n receiver === \"this\" ? (wrapped[0] ?? null) : null;\n\nconst runCallback = (plan: CallbackPlan, rawArgs: unknown[]): unknown => {\n const { effectiveTypes, returnDescriptor } = plan;\n const wrapped = effectiveTypes.map((descriptor, i) => fromNative(descriptor, rawArgs[i]));\n const thisArg = getThisArg(plan.receiver, wrapped);\n const { inputs, outParams } = partitionCallbackArgs(effectiveTypes, wrapped, plan.start);\n const result = plan.fn.apply(thisArg, inputs);\n\n if (outParams.length === 0) {\n return toNative(returnDescriptor, result);\n }\n\n const { primary, outValues } = splitTupleResult(result, returnDescriptor.kind !== \"void\", outParams.length);\n writeOutParams(outParams, outValues);\n\n return toNative(returnDescriptor, primary);\n};\n\nconst getEffectiveTypes = (spec: CallbackSpec): Descriptor[] => {\n const { userDataIndex } = spec;\n\n if (userDataIndex === undefined) {\n return spec.argDescriptors;\n }\n\n return spec.argDescriptors.filter((_, i) => i !== userDataIndex);\n};\n\nconst wrapCallbackValue = (spec: CallbackDescriptor, callback: unknown): unknown =>\n callback == null ? callback : wrapCallback(callback as Callback, spec, \"none\");\n\nfunction wrapCallback(fn: Callback, spec: CallbackSpec, receiver: CallbackReceiver): Callback {\n const plan: CallbackPlan = {\n fn,\n effectiveTypes: getEffectiveTypes(spec),\n returnDescriptor: spec.returnDescriptor,\n start: receiver === \"none\" ? 0 : 1,\n receiver,\n };\n\n return (...rawArgs: unknown[]): unknown => runCallback(plan, rawArgs);\n}\n\nexport { wrapCallbackValue, wrapCallback };\n"]}
|
package/dist/descriptors.d.ts
CHANGED
|
@@ -1,95 +1,96 @@
|
|
|
1
1
|
import type { ArrayKind, Descriptor, Ownership } from "@gtkx/native";
|
|
2
2
|
import type { AnyClass } from "@gtkx/utils";
|
|
3
|
-
|
|
3
|
+
type Int8Descriptor = Extract<Descriptor, {
|
|
4
4
|
kind: "int8";
|
|
5
5
|
}>;
|
|
6
|
-
|
|
6
|
+
type Uint8Descriptor = Extract<Descriptor, {
|
|
7
7
|
kind: "uint8";
|
|
8
8
|
}>;
|
|
9
|
-
|
|
9
|
+
type Int16Descriptor = Extract<Descriptor, {
|
|
10
10
|
kind: "int16";
|
|
11
11
|
}>;
|
|
12
|
-
|
|
12
|
+
type Uint16Descriptor = Extract<Descriptor, {
|
|
13
13
|
kind: "uint16";
|
|
14
14
|
}>;
|
|
15
|
-
|
|
15
|
+
type Int32Descriptor = Extract<Descriptor, {
|
|
16
16
|
kind: "int32";
|
|
17
17
|
}>;
|
|
18
|
-
|
|
18
|
+
type Uint32Descriptor = Extract<Descriptor, {
|
|
19
19
|
kind: "uint32";
|
|
20
20
|
}>;
|
|
21
|
-
|
|
21
|
+
type Int64Descriptor = Extract<Descriptor, {
|
|
22
22
|
kind: "int64";
|
|
23
23
|
}>;
|
|
24
|
-
|
|
24
|
+
type Uint64Descriptor = Extract<Descriptor, {
|
|
25
25
|
kind: "uint64";
|
|
26
26
|
}>;
|
|
27
|
-
|
|
27
|
+
type BigInt64Descriptor = Extract<Descriptor, {
|
|
28
28
|
kind: "bigint64";
|
|
29
29
|
}>;
|
|
30
|
-
|
|
30
|
+
type BigUint64Descriptor = Extract<Descriptor, {
|
|
31
31
|
kind: "biguint64";
|
|
32
32
|
}>;
|
|
33
|
-
|
|
33
|
+
type Float32Descriptor = Extract<Descriptor, {
|
|
34
34
|
kind: "float32";
|
|
35
35
|
}>;
|
|
36
|
-
|
|
36
|
+
type Float64Descriptor = Extract<Descriptor, {
|
|
37
37
|
kind: "float64";
|
|
38
38
|
}>;
|
|
39
|
-
|
|
39
|
+
type EnumDescriptor = Extract<Descriptor, {
|
|
40
40
|
kind: "enum";
|
|
41
41
|
}>;
|
|
42
|
-
|
|
42
|
+
type FlagsDescriptor = Extract<Descriptor, {
|
|
43
43
|
kind: "flags";
|
|
44
44
|
}>;
|
|
45
|
-
|
|
45
|
+
type BooleanDescriptor = Extract<Descriptor, {
|
|
46
46
|
kind: "boolean";
|
|
47
47
|
}>;
|
|
48
|
-
|
|
48
|
+
type StringDescriptor = Extract<Descriptor, {
|
|
49
49
|
kind: "string";
|
|
50
50
|
}>;
|
|
51
|
-
|
|
51
|
+
type ObjectDescriptor = Extract<Descriptor, {
|
|
52
52
|
kind: "object";
|
|
53
53
|
}>;
|
|
54
|
-
|
|
54
|
+
type UnicharDescriptor = Extract<Descriptor, {
|
|
55
55
|
kind: "unichar";
|
|
56
56
|
}>;
|
|
57
|
-
|
|
57
|
+
type VoidDescriptor = Extract<Descriptor, {
|
|
58
58
|
kind: "void";
|
|
59
59
|
}>;
|
|
60
|
-
|
|
60
|
+
type BufferDescriptor = Extract<Descriptor, {
|
|
61
61
|
kind: "buffer";
|
|
62
62
|
}>;
|
|
63
|
-
|
|
63
|
+
type BoxedDescriptor = Extract<Descriptor, {
|
|
64
64
|
kind: "boxed";
|
|
65
65
|
}>;
|
|
66
|
-
|
|
66
|
+
type StructDescriptor = Extract<Descriptor, {
|
|
67
67
|
kind: "struct";
|
|
68
68
|
}> & {
|
|
69
69
|
wrapperClass?: AnyClass;
|
|
70
70
|
};
|
|
71
|
-
|
|
71
|
+
type FundamentalDescriptor = Extract<Descriptor, {
|
|
72
72
|
kind: "fundamental";
|
|
73
73
|
}> & {
|
|
74
74
|
wrapperClass?: AnyClass;
|
|
75
75
|
};
|
|
76
|
-
|
|
76
|
+
type ArrayDescriptor = Extract<Descriptor, {
|
|
77
77
|
kind: "array";
|
|
78
78
|
}>;
|
|
79
|
-
|
|
79
|
+
type HashTableDescriptor = Extract<Descriptor, {
|
|
80
80
|
kind: "hashtable";
|
|
81
81
|
}>;
|
|
82
|
-
|
|
82
|
+
type CallbackDescriptor = Extract<Descriptor, {
|
|
83
83
|
kind: "callback";
|
|
84
84
|
}>;
|
|
85
|
-
|
|
85
|
+
type RefDescriptor = Extract<Descriptor, {
|
|
86
86
|
kind: "ref";
|
|
87
87
|
}>;
|
|
88
|
-
|
|
88
|
+
type TypeDescriptor = BigUint64Descriptor & {
|
|
89
89
|
type: true;
|
|
90
90
|
};
|
|
91
91
|
type BoxedOptions = {
|
|
92
92
|
callerAllocated?: boolean;
|
|
93
|
+
inline?: boolean;
|
|
93
94
|
ownership?: Ownership;
|
|
94
95
|
sharedLibrary?: string;
|
|
95
96
|
getTypeFnName?: string;
|
|
@@ -110,46 +111,48 @@ type FundamentalOptions = {
|
|
|
110
111
|
ownership?: Ownership;
|
|
111
112
|
typeName?: string;
|
|
112
113
|
wrapperClass?: AnyClass;
|
|
114
|
+
inline?: boolean;
|
|
113
115
|
};
|
|
114
116
|
type StructOptions = {
|
|
115
117
|
callerAllocated?: boolean;
|
|
118
|
+
inline?: boolean;
|
|
116
119
|
size?: number;
|
|
117
120
|
wrapperClass?: AnyClass;
|
|
118
121
|
};
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
export {};
|
|
122
|
+
declare const int8T: Int8Descriptor;
|
|
123
|
+
declare const uint8T: Uint8Descriptor;
|
|
124
|
+
declare const int16T: Int16Descriptor;
|
|
125
|
+
declare const uint16T: Uint16Descriptor;
|
|
126
|
+
declare const int32T: Int32Descriptor;
|
|
127
|
+
declare const uint32T: Uint32Descriptor;
|
|
128
|
+
declare const int64T: Int64Descriptor;
|
|
129
|
+
declare const uint64T: Uint64Descriptor;
|
|
130
|
+
declare const bigint64T: BigInt64Descriptor;
|
|
131
|
+
declare const biguint64T: BigUint64Descriptor;
|
|
132
|
+
declare const gtypeT: TypeDescriptor;
|
|
133
|
+
declare const float32T: Float32Descriptor;
|
|
134
|
+
declare const float64T: Float64Descriptor;
|
|
135
|
+
declare const booleanT: BooleanDescriptor;
|
|
136
|
+
declare const voidT: VoidDescriptor;
|
|
137
|
+
declare const unicharT: UnicharDescriptor;
|
|
138
|
+
declare const bufferT: BufferDescriptor;
|
|
139
|
+
declare const stringT: (ownership?: Ownership, length?: number) => StringDescriptor;
|
|
140
|
+
declare const objectT: (ownership?: Ownership) => ObjectDescriptor;
|
|
141
|
+
declare const refT: (innerDescriptor: Descriptor, isInout?: boolean) => RefDescriptor;
|
|
142
|
+
declare const hashTableT: (keyDescriptor: Descriptor, valueDescriptor: Descriptor, ownership?: Ownership) => HashTableDescriptor;
|
|
143
|
+
declare const enumT: (sharedLibrary: string, typeFnName: string, isSigned: boolean) => EnumDescriptor;
|
|
144
|
+
declare const flagsT: (sharedLibrary: string, typeFnName: string, isSigned: boolean) => FlagsDescriptor;
|
|
145
|
+
declare const boxedT: (typeName: string, options?: BoxedOptions) => BoxedDescriptor;
|
|
146
|
+
declare const structT: (ownership?: Ownership, options?: StructOptions) => StructDescriptor;
|
|
147
|
+
declare const fundamentalT: (sharedLibrary: string, refFnName: string, unrefFnName: string, options?: FundamentalOptions) => FundamentalDescriptor;
|
|
148
|
+
declare const arrayT: (itemDescriptor: Descriptor, arrayKind?: ArrayKind, ownership?: Ownership, options?: ArrayOptions) => ArrayDescriptor;
|
|
149
|
+
declare const listT: (itemDescriptor: Descriptor, ownership?: Ownership) => ArrayDescriptor;
|
|
150
|
+
declare const slistT: (itemDescriptor: Descriptor, ownership?: Ownership) => ArrayDescriptor;
|
|
151
|
+
declare const ptrArrayT: (itemDescriptor: Descriptor, ownership?: Ownership) => ArrayDescriptor;
|
|
152
|
+
declare const gArrayT: (itemDescriptor: Descriptor, ownership?: Ownership, elementSize?: number) => ArrayDescriptor;
|
|
153
|
+
declare const byteArrayT: (ownership?: Ownership) => ArrayDescriptor;
|
|
154
|
+
declare const sizedArrayT: (itemDescriptor: Descriptor, sizeParamIndex: number, ownership?: Ownership, elementSize?: number) => ArrayDescriptor;
|
|
155
|
+
declare const fixedArrayT: (itemDescriptor: Descriptor, fixedSize: number, ownership?: Ownership, elementSize?: number) => ArrayDescriptor;
|
|
156
|
+
declare const callbackT: (argDescriptors: Descriptor[], returnDescriptor: Descriptor, options?: CallbackOptions) => CallbackDescriptor;
|
|
157
|
+
export { int8T, uint8T, int16T, uint16T, int32T, uint32T, int64T, uint64T, bigint64T, biguint64T, gtypeT, float32T, float64T, booleanT, voidT, unicharT, bufferT, stringT, objectT, refT, hashTableT, enumT, flagsT, boxedT, structT, fundamentalT, arrayT, listT, slistT, ptrArrayT, gArrayT, byteArrayT, sizedArrayT, fixedArrayT, callbackT, type Int8Descriptor, type Uint8Descriptor, type Int16Descriptor, type Uint16Descriptor, type Int32Descriptor, type Uint32Descriptor, type Int64Descriptor, type Uint64Descriptor, type BigInt64Descriptor, type BigUint64Descriptor, type Float32Descriptor, type Float64Descriptor, type EnumDescriptor, type FlagsDescriptor, type BooleanDescriptor, type StringDescriptor, type ObjectDescriptor, type UnicharDescriptor, type VoidDescriptor, type BufferDescriptor, type BoxedDescriptor, type StructDescriptor, type FundamentalDescriptor, type ArrayDescriptor, type HashTableDescriptor, type CallbackDescriptor, type RefDescriptor, type TypeDescriptor, };
|
|
155
158
|
//# sourceMappingURL=descriptors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptors.d.ts","sourceRoot":"","sources":["../src/descriptors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,
|
|
1
|
+
{"version":3,"file":"descriptors.d.ts","sourceRoot":"","sources":["../src/descriptors.ts"],"names":[],"mappings":"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"}
|