@gtkx/runtime 1.6.0 → 2.0.0-beta.2
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/README.md +5 -5
- package/dist/application-class.d.ts +1 -1
- package/dist/application-class.d.ts.map +1 -1
- package/dist/application-class.js +1 -2
- package/dist/application-class.js.map +1 -1
- package/dist/arg.d.ts +4 -1
- package/dist/arg.d.ts.map +1 -1
- package/dist/arg.js.map +1 -1
- package/dist/bind.d.ts.map +1 -1
- package/dist/bind.js +1 -9
- package/dist/bind.js.map +1 -1
- package/dist/callback.d.ts +6 -1
- package/dist/callback.d.ts.map +1 -1
- package/dist/callback.js +33 -21
- package/dist/callback.js.map +1 -1
- package/dist/closure.d.ts +3 -1
- package/dist/closure.d.ts.map +1 -1
- package/dist/closure.js +17 -6
- package/dist/closure.js.map +1 -1
- package/dist/descriptors.d.ts +22 -51
- package/dist/descriptors.d.ts.map +1 -1
- package/dist/descriptors.js +53 -27
- package/dist/descriptors.js.map +1 -1
- package/dist/fn.d.ts.map +1 -1
- package/dist/fn.js +23 -9
- package/dist/fn.js.map +1 -1
- package/dist/folded-lengths.d.ts +2 -1
- package/dist/folded-lengths.d.ts.map +1 -1
- package/dist/folded-lengths.js +17 -7
- package/dist/folded-lengths.js.map +1 -1
- package/dist/index.d.ts +2 -24
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -24
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +18 -2
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +14 -2
- package/dist/internal.js.map +1 -1
- package/dist/listeners.d.ts +3 -13
- package/dist/listeners.d.ts.map +1 -1
- package/dist/listeners.js +12 -12
- package/dist/listeners.js.map +1 -1
- package/dist/mixin.d.ts +5 -3
- package/dist/mixin.d.ts.map +1 -1
- package/dist/mixin.js +36 -9
- package/dist/mixin.js.map +1 -1
- package/dist/native-value.d.ts +9 -1
- package/dist/native-value.d.ts.map +1 -1
- package/dist/native-value.js +20 -3
- package/dist/native-value.js.map +1 -1
- package/dist/object.d.ts +11 -0
- package/dist/object.d.ts.map +1 -1
- package/dist/object.js +18 -25
- package/dist/object.js.map +1 -1
- package/dist/properties.d.ts +5 -3
- package/dist/properties.d.ts.map +1 -1
- package/dist/properties.js +67 -23
- package/dist/properties.js.map +1 -1
- package/dist/property-brand.d.ts +5 -0
- package/dist/property-brand.d.ts.map +1 -0
- package/dist/property-brand.js +5 -0
- package/dist/property-brand.js.map +1 -0
- package/dist/register-class.d.ts +142 -264
- package/dist/register-class.d.ts.map +1 -1
- package/dist/register-class.js +19 -37
- package/dist/register-class.js.map +1 -1
- package/dist/registry.d.ts +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +4 -4
- package/dist/registry.js.map +1 -1
- package/dist/signal-brand.d.ts +12 -0
- package/dist/signal-brand.d.ts.map +1 -0
- package/dist/signal-brand.js +6 -0
- package/dist/signal-brand.js.map +1 -0
- package/dist/signal.d.ts +39 -2
- package/dist/signal.d.ts.map +1 -1
- package/dist/signal.js +84 -27
- package/dist/signal.js.map +1 -1
- package/dist/t.d.ts +5 -21
- package/dist/t.d.ts.map +1 -1
- package/dist/t.js +1 -5
- package/dist/t.js.map +1 -1
- package/dist/type.d.ts.map +1 -1
- package/dist/type.js +8 -2
- package/dist/type.js.map +1 -1
- package/dist/value.d.ts.map +1 -1
- package/dist/value.js +7 -1
- package/dist/value.js.map +1 -1
- package/dist/variant.d.ts +2 -6
- package/dist/variant.d.ts.map +1 -1
- package/dist/variant.js.map +1 -1
- package/dist/vfunc-call.d.ts.map +1 -1
- package/dist/vfunc-call.js +2 -11
- package/dist/vfunc-call.js.map +1 -1
- package/package.json +9 -5
- package/src/application-class.ts +2 -2
- package/src/arg.ts +4 -1
- package/src/bind.ts +1 -12
- package/src/callback.ts +53 -29
- package/src/closure.ts +31 -6
- package/src/descriptors.ts +95 -59
- package/src/fn.ts +31 -10
- package/src/folded-lengths.ts +23 -10
- package/src/index.ts +2 -24
- package/src/internal.ts +43 -2
- package/src/listeners.ts +21 -26
- package/src/mixin.ts +55 -9
- package/src/native-value.ts +24 -3
- package/src/object.ts +55 -5
- package/src/properties.ts +90 -26
- package/src/property-brand.ts +5 -0
- package/src/register-class.ts +338 -341
- package/src/registry.ts +4 -4
- package/src/signal-brand.ts +29 -0
- package/src/signal.ts +185 -39
- package/src/t.ts +5 -21
- package/src/type.ts +10 -2
- package/src/value.ts +9 -1
- package/src/variant.ts +2 -6
- package/src/vfunc-call.ts +3 -16
package/dist/fn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fn.js","sourceRoot":"","sources":["../src/fn.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CallDescriptor, Descriptor, ExternalObject, Handle, Ref } from \"@gtkx/native\";\nimport { call, bind as nativeBind } from \"@gtkx/native\";\nimport type { RefSeeds } from \"./vfunc-seeds.js\";\nimport { type Arg, isCallerAllocatedArg, isOutputArg, isRefArg, isUnpackedArg, requiresInputArg } from \"./arg.js\";\nimport { wrapCallbackValue } from \"./callback.js\";\nimport { boxedT, isGtypeDescriptor, refT } from \"./descriptors.js\";\nimport { checkError } from \"./error.js\";\nimport { LIB } from \"./library.js\";\nimport { fromNative, toNative } from \"./native-value.js\";\nimport { getHandle } from \"./registry.js\";\nimport { hasSurfacedPrimary, packTupleResult } from \"./tuple.js\";\nimport { TYPE_INVALID } from \"./type.js\";\nimport { fromValue, getValueType } from \"./value.js\";\n\n/** The signature a native function is bound against. */\ntype FnSpec = {\n /** The C arguments in declaration order, including the ones the callee writes into. */\n args: Arg[];\n /** Descriptor for the C return value, packed first when output arguments are also returned. */\n returns: Descriptor;\n /**\n * The callee returns a value the bindings do not surface, so the call is made against the\n * declared return type and the value is dropped instead of being packed into the result.\n */\n isReturnSkipped?: boolean;\n /** The function takes a trailing `GError**`, whose contents are thrown as an error on return. */\n canThrow?: boolean;\n /**\n * How many of `args` precede the callee's ellipsis, marking it variadic. Omitting it binds a\n * fixed-arity call, which passes the wrong argument classes to a variadic callee on some\n * architectures.\n */\n fixedArgCount?: number;\n /** The callee returns a `GValue`, surfaced as what it holds rather than as the value itself. */\n isReturnUnpacked?: boolean;\n};\n\ntype ArgSpec = {\n arg: Arg;\n index: number;\n isRef: boolean;\n isCallerAllocated: boolean;\n isUnpacked: boolean;\n requiresInput: boolean;\n inputIndex: number;\n isOutParam: boolean;\n carriesGtype: boolean;\n};\n\nconst NO_OUT_PARAMS: unknown[] = [];\n\nconst hasGtypeInput = (descriptor: Descriptor): boolean =>\n isGtypeDescriptor(descriptor) || (descriptor.kind === \"array\" && isGtypeDescriptor(descriptor.itemDescriptor));\n\nconst buildNativeArgTypes = (args: Arg[], canThrow: boolean): Descriptor[] => {\n const nativeArgTypes = args.map((argSpec) =>\n argSpec.direction !== undefined && argSpec.isCallerAllocated !== true ? refT(argSpec.type) : argSpec.type,\n );\n\n if (canThrow) {\n nativeArgTypes.push(\n refT(boxedT(\"GError\", { ownership: \"full\", sharedLibrary: LIB, getTypeFnName: \"g_error_get_type\" })),\n );\n }\n\n return nativeArgTypes;\n};\n\nconst buildArgSpecs = (args: Arg[]): ArgSpec[] => {\n let inputCursor = 0;\n\n return args.map((arg, index) => {\n const isRef = isRefArg(arg);\n const requiresInput = requiresInputArg(arg);\n const isOutParam = isOutputArg(arg) && arg.isConsumed !== true;\n\n return {\n arg,\n index,\n isRef,\n isCallerAllocated: isCallerAllocatedArg(arg),\n isUnpacked: isUnpackedArg(arg),\n requiresInput,\n inputIndex: requiresInput ? inputCursor++ : -1,\n isOutParam,\n carriesGtype: hasGtypeInput(arg.type),\n };\n });\n};\n\nconst resolveCallerAllocated = (inputs: unknown[], inputIndex: number): unknown => {\n const wrapper = inputs[inputIndex];\n\n return wrapper == null ? wrapper : getHandle(wrapper);\n};\n\nconst inputValueFor = (spec: ArgSpec, inputs: unknown[]): unknown =>\n spec.carriesGtype ? toNative(spec.arg.type, inputs[spec.inputIndex]) : inputs[spec.inputIndex];\n\nconst buildRefValue = (spec: ArgSpec, inputs: unknown[], seeds: RefSeeds | undefined): Ref => ({\n value: spec.requiresInput ? inputValueFor(spec, inputs) : (seeds?.get(spec.index) ?? null),\n});\n\nconst buildNativeValue = (spec: ArgSpec, inputs: unknown[], seeds: RefSeeds | undefined): unknown => {\n const { arg, isRef, isCallerAllocated, inputIndex } = spec;\n\n if (isCallerAllocated) {\n return resolveCallerAllocated(inputs, inputIndex);\n }\n\n if (isRef) {\n return buildRefValue(spec, inputs, seeds);\n }\n\n if (arg.type.kind === \"callback\") {\n return wrapCallbackValue(arg.type, inputs[inputIndex]);\n }\n\n return inputValueFor(spec, inputs);\n};\n\nconst buildNativeValues = (plans: ArgSpec[], inputs: unknown[], seeds: RefSeeds | undefined): unknown[] =>\n plans.map((plan) => buildNativeValue(plan, inputs, seeds));\n\nconst unpackValueHandle = (handle: ExternalObject<Handle> | null): unknown => {\n if (handle === null || getValueType(handle) === TYPE_INVALID) {\n return null;\n }\n\n return fromValue(handle);\n};\n\nconst readCallerAllocated = (plan: ArgSpec, inputs: unknown[]): unknown => {\n const wrapper = inputs[plan.inputIndex];\n\n if (!plan.isUnpacked) {\n return wrapper;\n }\n\n return unpackValueHandle(wrapper == null ? null : getHandle(wrapper));\n};\n\nconst readOutParams = (outPlans: ArgSpec[], inputs: unknown[], nativeValues: unknown[]): unknown[] => {\n if (outPlans.length === 0) {\n return NO_OUT_PARAMS;\n }\n\n return Array.from(outPlans, (plan) =>\n plan.isCallerAllocated\n ? readCallerAllocated(plan, inputs)\n : fromNative(plan.arg.type, (nativeValues[plan.index] as Ref).value));\n};\n\nconst isPassThroughPlan = (plan: ArgSpec, index: number): boolean =>\n plan.inputIndex === index &&\n !plan.isRef &&\n !plan.isCallerAllocated &&\n !plan.carriesGtype &&\n plan.arg.type.kind !== \"callback\";\n\nconst requiredInputIndices = (plans: ArgSpec[]): number[] =>\n plans.filter((plan) => plan.requiresInput && plan.arg.isRequired === true).map((plan) => plan.inputIndex);\n\nconst assertRequiredInputs = (requiredIndices: number[], inputs: unknown[]): void => {\n for (const index of requiredIndices) {\n if (inputs[index] === undefined) {\n throw new TypeError(`Missing required argument at position ${String(index + 1)}`);\n }\n }\n};\n\nconst resizeInputs = (inputs: unknown[], argCount: number): unknown[] => {\n while (inputs.length < argCount) {\n inputs.push(undefined);\n }\n\n if (inputs.length > argCount) {\n inputs.length = argCount;\n }\n\n return inputs;\n};\n\nconst returnReader = (spec: FnSpec): ((nativeResult: unknown) => unknown) =>\n spec.isReturnUnpacked === true\n ? (nativeResult) => unpackValueHandle((nativeResult ?? null) as ExternalObject<Handle> | null)\n : (nativeResult) => fromNative(spec.returns, nativeResult);\n\nconst directCallable = (\n descriptor: ExternalObject<CallDescriptor>,\n readReturn: (nativeResult: unknown) => unknown,\n hasPrimary: boolean,\n plans: ArgSpec[],\n): ((...inputs: unknown[]) => unknown) => {\n const argCount = plans.length;\n const requiredIndices = requiredInputIndices(plans);\n\n const marshal = (inputs: unknown[]): unknown => {\n assertRequiredInputs(requiredIndices, inputs);\n\n return readReturn(call(descriptor, resizeInputs(inputs, argCount)));\n };\n\n if (hasPrimary) {\n return (...inputs) => marshal(inputs);\n }\n\n return (...inputs) => {\n marshal(inputs);\n };\n};\n\nfunction fromNativeCallable(\n descriptor: ExternalObject<CallDescriptor>,\n spec: FnSpec,\n getRefSeeds?: () => RefSeeds | undefined,\n): (...inputs: unknown[]) => unknown {\n const { args, returns: returnDescriptor, canThrow = false } = spec;\n const hasPrimary = hasSurfacedPrimary(returnDescriptor, spec.isReturnSkipped);\n const plans = buildArgSpecs(args);\n const outPlans = plans.filter((plan) => plan.isOutParam);\n const arePassThrough = plans.every((plan, index) => isPassThroughPlan(plan, index));\n const readReturn = returnReader(spec);\n\n if (!canThrow && arePassThrough) {\n return directCallable(descriptor, readReturn, hasPrimary, plans);\n }\n\n const requiredIndices = requiredInputIndices(plans);\n\n const shape = (inputs: unknown[], nativeValues: unknown[], nativeResult: unknown): unknown =>\n packTupleResult(readOutParams(outPlans, inputs, nativeValues), readReturn(nativeResult), hasPrimary);\n\n if (canThrow) {\n return (...inputs) => {\n assertRequiredInputs(requiredIndices, inputs);\n const nativeValues = buildNativeValues(plans, inputs, getRefSeeds?.());\n const errorRef: Ref = { value: null };\n nativeValues.push(errorRef);\n const nativeResult = call(descriptor, nativeValues);\n checkError(errorRef);\n\n return shape(inputs, nativeValues, nativeResult);\n };\n }\n\n return (...inputs) => {\n assertRequiredInputs(requiredIndices, inputs);\n const nativeValues = buildNativeValues(plans, inputs, getRefSeeds?.());\n\n return shape(inputs, nativeValues, call(descriptor, nativeValues));\n };\n}\n\nconst bindNativeCallable = (\n sharedLibrary: string,\n symbol: string,\n spec: FnSpec,\n): ((...inputs: unknown[]) => unknown) => {\n const nativeArgTypes = buildNativeArgTypes(spec.args, spec.canThrow ?? false);\n const descriptor = nativeBind(sharedLibrary, symbol, nativeArgTypes, spec.returns, spec.fixedArgCount);\n\n return fromNativeCallable(descriptor, spec);\n};\n\n/**\n * Binds a symbol in a shared library to a callable that marshals its inputs and packs output\n * arguments into the result. When the spec sets `canThrow`, the reported `GError` is thrown.\n *\n * A plain spec is bound when `fn` is called, so a malformed descriptor throws at binding time.\n * Passing a function returning the spec instead defers building the descriptors and the binding\n * to the first call, so describing such a binding costs nothing until something calls it and a\n * module full of them loads without touching the shared library.\n *\n * @param sharedLibrary Shared library the symbol is looked up in.\n * @param symbol Name of the C symbol to bind.\n * @param spec Argument and return descriptors the call is marshalled through, or a function\n * returning them, which defers building the descriptors and the binding to the first call.\n */\nfunction fn(\n sharedLibrary: string,\n symbol: string,\n spec: FnSpec | (() => FnSpec),\n): (...inputs: unknown[]) => unknown {\n if (typeof spec !== \"function\") {\n return bindNativeCallable(sharedLibrary, symbol, spec);\n }\n\n let bound: ((...inputs: unknown[]) => unknown) | undefined;\n\n return (...inputs) => {\n bound ??= bindNativeCallable(sharedLibrary, symbol, spec());\n\n return bound(...inputs);\n };\n}\n\nexport { buildNativeArgTypes, fn, fromNativeCallable };\n"]}
|
|
1
|
+
{"version":3,"file":"fn.js","sourceRoot":"","sources":["../src/fn.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CallDescriptor, Descriptor, ExternalObject, Handle, Ref } from \"@gtkx/native\";\nimport { call, bind as nativeBind } from \"@gtkx/native\";\nimport type { RefSeeds } from \"./vfunc-seeds.js\";\nimport { type Arg, isCallerAllocatedArg, isOutputArg, isRefArg, isUnpackedArg, requiresInputArg } from \"./arg.js\";\nimport { wrapCallbackValue } from \"./callback.js\";\nimport { boxedT, isGtypeDescriptor, refT } from \"./descriptors.js\";\nimport { checkError } from \"./error.js\";\nimport { LIB } from \"./library.js\";\nimport { fromNative, toNative } from \"./native-value.js\";\nimport { getHandle } from \"./registry.js\";\nimport { hasSurfacedPrimary, packTupleResult } from \"./tuple.js\";\nimport { TYPE_INVALID } from \"./type.js\";\nimport { fromValue, getValueType } from \"./value.js\";\n\n/** The signature a native function is bound against. */\ntype FnSpec = {\n /** The C arguments in declaration order, including the ones the callee writes into. */\n args: Arg[];\n /** Descriptor for the C return value, packed first when output arguments are also returned. */\n returns: Descriptor;\n /**\n * The callee returns a value the bindings do not surface, so the call is made against the\n * declared return type and the value is dropped instead of being packed into the result.\n */\n isReturnSkipped?: boolean;\n /** The function takes a trailing `GError**`, whose contents are thrown as an error on return. */\n canThrow?: boolean;\n /**\n * How many of `args` precede the callee's ellipsis, marking it variadic. Omitting it binds a\n * fixed-arity call, which passes the wrong argument classes to a variadic callee on some\n * architectures.\n */\n fixedArgCount?: number;\n /** The callee returns a `GValue`, surfaced as what it holds rather than as the value itself. */\n isReturnUnpacked?: boolean;\n};\n\ntype ArgSpec = {\n arg: Arg;\n index: number;\n isRef: boolean;\n isCallerAllocated: boolean;\n isUnpacked: boolean;\n requiresInput: boolean;\n inputIndex: number;\n isOutParam: boolean;\n carriesGtype: boolean;\n};\n\nconst NO_OUT_PARAMS: unknown[] = [];\n\nconst hasGtypeInput = (descriptor: Descriptor): boolean =>\n isGtypeDescriptor(descriptor) || (descriptor.kind === \"array\" && isGtypeDescriptor(descriptor.itemDescriptor));\n\nconst buildNativeArgTypes = (args: Arg[], canThrow: boolean): Descriptor[] => {\n const nativeArgTypes = args.map((argSpec) =>\n argSpec.direction !== undefined && argSpec.isCallerAllocated !== true ? refT(argSpec.type) : argSpec.type,\n );\n\n if (canThrow) {\n nativeArgTypes.push(\n refT(boxedT(\"GError\", { ownership: \"full\", sharedLibrary: LIB, getTypeFnName: \"g_error_get_type\" })),\n );\n }\n\n return nativeArgTypes;\n};\n\nconst buildArgSpecs = (args: Arg[]): ArgSpec[] => {\n let inputCursor = 0;\n\n return args.map((arg, index) => {\n const isRef = isRefArg(arg);\n const requiresInput = requiresInputArg(arg);\n const isOutParam = isOutputArg(arg) && arg.isConsumed !== true;\n\n return {\n arg,\n index,\n isRef,\n isCallerAllocated: isCallerAllocatedArg(arg),\n isUnpacked: isUnpackedArg(arg),\n requiresInput,\n inputIndex: requiresInput ? inputCursor++ : -1,\n isOutParam,\n carriesGtype: hasGtypeInput(arg.type),\n };\n });\n};\n\nconst resolveCallerAllocated = (inputs: unknown[], inputIndex: number): unknown => {\n const wrapper = inputs[inputIndex];\n\n return wrapper == null ? wrapper : getHandle(wrapper);\n};\n\nconst inputValueFor = (spec: ArgSpec, inputs: unknown[]): unknown =>\n spec.carriesGtype ? toNative(spec.arg.type, inputs[spec.inputIndex]) : inputs[spec.inputIndex];\n\nconst buildRefValue = (spec: ArgSpec, inputs: unknown[], seeds: RefSeeds | undefined): Ref => ({\n value: spec.requiresInput ? inputValueFor(spec, inputs) : (seeds?.get(spec.index) ?? null),\n});\n\nconst buildNativeValue = (spec: ArgSpec, inputs: unknown[], seeds: RefSeeds | undefined): unknown => {\n const { arg, isRef, isCallerAllocated, inputIndex } = spec;\n\n if (isCallerAllocated) {\n return resolveCallerAllocated(inputs, inputIndex);\n }\n\n if (isRef) {\n return buildRefValue(spec, inputs, seeds);\n }\n\n if (arg.type.kind === \"callback\") {\n return wrapCallbackValue(arg.type, inputs[inputIndex]);\n }\n\n return inputValueFor(spec, inputs);\n};\n\nconst buildNativeValues = (plans: ArgSpec[], inputs: unknown[], seeds: RefSeeds | undefined): unknown[] =>\n plans.map((plan) => buildNativeValue(plan, inputs, seeds));\n\nconst unpackValueHandle = (handle: ExternalObject<Handle> | null): unknown => {\n if (handle === null || getValueType(handle) === TYPE_INVALID) {\n return null;\n }\n\n return fromValue(handle);\n};\n\nconst readCallerAllocated = (plan: ArgSpec, inputs: unknown[]): unknown => {\n const wrapper = inputs[plan.inputIndex];\n\n if (!plan.isUnpacked) {\n return wrapper;\n }\n\n return unpackValueHandle(wrapper == null ? null : getHandle(wrapper));\n};\n\nconst readOutParams = (outPlans: ArgSpec[], inputs: unknown[], nativeValues: unknown[]): unknown[] => {\n if (outPlans.length === 0) {\n return NO_OUT_PARAMS;\n }\n\n return Array.from(outPlans, (plan) =>\n plan.isCallerAllocated\n ? readCallerAllocated(plan, inputs)\n : fromNative(plan.arg.type, (nativeValues[plan.index] as Ref).value));\n};\n\nconst isPassThroughPlan = (plan: ArgSpec, index: number): boolean =>\n plan.inputIndex === index &&\n !plan.isRef &&\n !plan.isCallerAllocated &&\n !plan.carriesGtype &&\n plan.arg.type.kind !== \"callback\";\n\nconst KINDS_PASSED_AS_POINTER: ReadonlySet<Descriptor[\"kind\"]> = new Set<Descriptor[\"kind\"]>([\n \"array\",\n \"boxed\",\n \"buffer\",\n \"callback\",\n \"fundamental\",\n \"hashtable\",\n \"object\",\n \"string\",\n \"struct\",\n]);\n\ntype RequiredInput = {\n index: number;\n rejectsNull: boolean;\n};\n\nconst requiredInputs = (plans: ArgSpec[]): RequiredInput[] =>\n plans\n .filter((plan) => plan.requiresInput && plan.arg.isRequired === true)\n .map((plan) => ({ index: plan.inputIndex, rejectsNull: KINDS_PASSED_AS_POINTER.has(plan.arg.type.kind) }));\n\nconst assertRequiredInputs = (required: RequiredInput[], inputs: unknown[]): void => {\n for (const { index, rejectsNull } of required) {\n const input = inputs[index];\n\n if (input === undefined || (rejectsNull && input === null)) {\n throw new TypeError(`Missing required argument at position ${String(index + 1)}`);\n }\n }\n};\n\nconst resizeInputs = (inputs: unknown[], argCount: number): unknown[] => {\n while (inputs.length < argCount) {\n inputs.push(undefined);\n }\n\n if (inputs.length > argCount) {\n inputs.length = argCount;\n }\n\n return inputs;\n};\n\nconst returnReader = (spec: FnSpec): ((nativeResult: unknown) => unknown) =>\n spec.isReturnUnpacked === true\n ? (nativeResult) => unpackValueHandle((nativeResult ?? null) as ExternalObject<Handle> | null)\n : (nativeResult) => fromNative(spec.returns, nativeResult);\n\nconst directCallable = (\n descriptor: ExternalObject<CallDescriptor>,\n readReturn: (nativeResult: unknown) => unknown,\n hasPrimary: boolean,\n plans: ArgSpec[],\n): ((...inputs: unknown[]) => unknown) => {\n const argCount = plans.length;\n const required = requiredInputs(plans);\n\n const marshal = (inputs: unknown[]): unknown => {\n assertRequiredInputs(required, inputs);\n\n return readReturn(call(descriptor, resizeInputs(inputs, argCount)));\n };\n\n if (hasPrimary) {\n return (...inputs) => marshal(inputs);\n }\n\n return (...inputs) => {\n marshal(inputs);\n };\n};\n\nfunction fromNativeCallable(\n descriptor: ExternalObject<CallDescriptor>,\n spec: FnSpec,\n getRefSeeds?: () => RefSeeds | undefined,\n): (...inputs: unknown[]) => unknown {\n const { args, returns: returnDescriptor, canThrow = false } = spec;\n const hasPrimary = hasSurfacedPrimary(returnDescriptor, spec.isReturnSkipped);\n const plans = buildArgSpecs(args);\n const outPlans = plans.filter((plan) => plan.isOutParam);\n const arePassThrough = plans.every((plan, index) => isPassThroughPlan(plan, index));\n const readReturn = returnReader(spec);\n\n if (!canThrow && arePassThrough) {\n return directCallable(descriptor, readReturn, hasPrimary, plans);\n }\n\n const required = requiredInputs(plans);\n\n const shape = (inputs: unknown[], nativeValues: unknown[], nativeResult: unknown): unknown =>\n packTupleResult(readOutParams(outPlans, inputs, nativeValues), readReturn(nativeResult), hasPrimary);\n\n if (canThrow) {\n return (...inputs) => {\n assertRequiredInputs(required, inputs);\n const nativeValues = buildNativeValues(plans, inputs, getRefSeeds?.());\n const errorRef: Ref = { value: null };\n nativeValues.push(errorRef);\n const nativeResult = call(descriptor, nativeValues);\n checkError(errorRef);\n\n return shape(inputs, nativeValues, nativeResult);\n };\n }\n\n return (...inputs) => {\n assertRequiredInputs(required, inputs);\n const nativeValues = buildNativeValues(plans, inputs, getRefSeeds?.());\n\n return shape(inputs, nativeValues, call(descriptor, nativeValues));\n };\n}\n\nconst bindNativeCallable = (\n sharedLibrary: string,\n symbol: string,\n spec: FnSpec,\n): ((...inputs: unknown[]) => unknown) => {\n const nativeArgTypes = buildNativeArgTypes(spec.args, spec.canThrow ?? false);\n const descriptor = nativeBind(sharedLibrary, symbol, nativeArgTypes, spec.returns, spec.fixedArgCount);\n\n return fromNativeCallable(descriptor, spec);\n};\n\n/**\n * Binds a symbol in a shared library to a callable that marshals its inputs and packs output\n * arguments into the result. When the spec sets `canThrow`, the reported `GError` is thrown.\n *\n * A plain spec is bound when `fn` is called, so a malformed descriptor throws at binding time.\n * Passing a function returning the spec instead defers building the descriptors and the binding\n * to the first call, so describing such a binding costs nothing until something calls it and a\n * module full of them loads without touching the shared library.\n *\n * @param sharedLibrary Shared library the symbol is looked up in.\n * @param symbol Name of the C symbol to bind.\n * @param spec Argument and return descriptors the call is marshalled through, or a function\n * returning them, which defers building the descriptors and the binding to the first call.\n */\nfunction fn(\n sharedLibrary: string,\n symbol: string,\n spec: FnSpec | (() => FnSpec),\n): (...inputs: unknown[]) => unknown {\n if (typeof spec !== \"function\") {\n return bindNativeCallable(sharedLibrary, symbol, spec);\n }\n\n let bound: ((...inputs: unknown[]) => unknown) | undefined;\n\n return (...inputs) => {\n bound ??= bindNativeCallable(sharedLibrary, symbol, spec());\n\n return bound(...inputs);\n };\n}\n\nexport { buildNativeArgTypes, fn, fromNativeCallable };\n"]}
|
package/dist/folded-lengths.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ type FoldedLengthSpec = {
|
|
|
11
11
|
returnDescriptor: Descriptor;
|
|
12
12
|
userDataIndex?: number | undefined;
|
|
13
13
|
};
|
|
14
|
+
declare const foldedLengthArgIndices: (spec: FoldedLengthSpec) => ReadonlySet<number>;
|
|
14
15
|
declare const foldedLengthSources: (spec: FoldedLengthSpec) => LengthSources;
|
|
15
|
-
export { foldedLengthSources, type LengthSource, type LengthSources };
|
|
16
|
+
export { foldedLengthArgIndices, foldedLengthSources, type LengthSource, type LengthSources };
|
|
16
17
|
//# sourceMappingURL=folded-lengths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folded-lengths.d.ts","sourceRoot":"","sources":["../src/folded-lengths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,KAAK,YAAY,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9E,KAAK,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;AAEjD,KAAK,gBAAgB,GAAG;IACpB,cAAc,EAAE,UAAU,EAAE,CAAC;IAC7B,gBAAgB,EAAE,UAAU,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC,CAAC;
|
|
1
|
+
{"version":3,"file":"folded-lengths.d.ts","sourceRoot":"","sources":["../src/folded-lengths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,KAAK,YAAY,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9E,KAAK,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;AAEjD,KAAK,gBAAgB,GAAG;IACpB,cAAc,EAAE,UAAU,EAAE,CAAC;IAC7B,gBAAgB,EAAE,UAAU,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC,CAAC;AAqCF,QAAA,MAAM,sBAAsB,GAAI,MAAM,gBAAgB,KAAG,WAAW,CAAC,MAAM,CAmB1E,CAAC;AAEF,QAAA,MAAM,mBAAmB,GAAI,MAAM,gBAAgB,KAAG,aAOrD,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,CAAC"}
|
package/dist/folded-lengths.js
CHANGED
|
@@ -10,12 +10,7 @@ const addLengthSource = (sources, index, source) => {
|
|
|
10
10
|
if (index === undefined) {
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
13
|
-
|
|
14
|
-
if (existing === undefined) {
|
|
15
|
-
sources.set(index, [source]);
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
existing.push(source);
|
|
13
|
+
sources.getOrInsertComputed(index, () => []).push(source);
|
|
19
14
|
};
|
|
20
15
|
const addOutArgLengthSources = (sources, spec) => {
|
|
21
16
|
const { userDataIndex } = spec;
|
|
@@ -27,6 +22,21 @@ const addOutArgLengthSources = (sources, spec) => {
|
|
|
27
22
|
}
|
|
28
23
|
}
|
|
29
24
|
};
|
|
25
|
+
const foldedLengthArgIndices = (spec) => {
|
|
26
|
+
const indices = new Set();
|
|
27
|
+
const add = (declaredIndex) => {
|
|
28
|
+
const argIndex = effectiveArgIndex(declaredIndex, spec.userDataIndex);
|
|
29
|
+
if (argIndex !== undefined) {
|
|
30
|
+
indices.add(argIndex);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
add(sizedArrayLengthIndex(spec.returnDescriptor));
|
|
34
|
+
for (const descriptor of spec.argDescriptors) {
|
|
35
|
+
add(sizedArrayLengthIndex(descriptor));
|
|
36
|
+
add(outArgLengthIndex(descriptor));
|
|
37
|
+
}
|
|
38
|
+
return indices;
|
|
39
|
+
};
|
|
30
40
|
const foldedLengthSources = (spec) => {
|
|
31
41
|
const sources = new Map();
|
|
32
42
|
const returnLengthIndex = effectiveArgIndex(sizedArrayLengthIndex(spec.returnDescriptor), spec.userDataIndex);
|
|
@@ -34,5 +44,5 @@ const foldedLengthSources = (spec) => {
|
|
|
34
44
|
addOutArgLengthSources(sources, spec);
|
|
35
45
|
return sources;
|
|
36
46
|
};
|
|
37
|
-
export { foldedLengthSources };
|
|
47
|
+
export { foldedLengthArgIndices, foldedLengthSources };
|
|
38
48
|
//# sourceMappingURL=folded-lengths.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folded-lengths.js","sourceRoot":"","sources":["../src/folded-lengths.ts"],"names":[],"mappings":"AAWA,MAAM,qBAAqB,GAAG,CAAC,UAAsB,EAAsB,EAAE,CACzE,UAAU,CAAC,IAAI,KAAK,OAAO,IAAI,UAAU,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;AAE5G,MAAM,iBAAiB,GAAG,CAAC,UAAkC,EAAsB,EAAE,CACjF,UAAU,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAE/F,MAAM,iBAAiB,GAAG,CAAC,QAA4B,EAAE,aAAiC,EAAsB,EAAE;IAC9G,IAAI,QAAQ,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,IAAI,QAAQ,GAAG,aAAa,EAAE,CAAC;QACpF,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,OAAO,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,OAAsB,EAAE,KAAyB,EAAE,MAAoB,EAAQ,EAAE;IACtG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO;IACX,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"folded-lengths.js","sourceRoot":"","sources":["../src/folded-lengths.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Descriptor } from \"@gtkx/native\";\n\ntype LengthSource = { kind: \"return\" } | { kind: \"outArg\"; argIndex: number };\ntype LengthSources = Map<number, LengthSource[]>;\n\ntype FoldedLengthSpec = {\n argDescriptors: Descriptor[];\n returnDescriptor: Descriptor;\n userDataIndex?: number | undefined;\n};\n\nconst sizedArrayLengthIndex = (descriptor: Descriptor): number | undefined =>\n descriptor.kind === \"array\" && descriptor.arrayKind === \"sized\" ? descriptor.sizeParamIndex : undefined;\n\nconst outArgLengthIndex = (descriptor: Descriptor | undefined): number | undefined =>\n descriptor?.kind === \"ref\" ? sizedArrayLengthIndex(descriptor.innerDescriptor) : undefined;\n\nconst effectiveArgIndex = (argIndex: number | undefined, userDataIndex: number | undefined): number | undefined => {\n if (argIndex === undefined || userDataIndex === undefined || argIndex < userDataIndex) {\n return argIndex;\n }\n\n return argIndex === userDataIndex ? undefined : argIndex - 1;\n};\n\nconst addLengthSource = (sources: LengthSources, index: number | undefined, source: LengthSource): void => {\n if (index === undefined) {\n return;\n }\n\n sources.getOrInsertComputed(index, () => []).push(source);\n};\n\nconst addOutArgLengthSources = (sources: LengthSources, spec: FoldedLengthSpec): void => {\n const { userDataIndex } = spec;\n\n for (const [declaredIndex, descriptor] of spec.argDescriptors.entries()) {\n const argIndex = effectiveArgIndex(declaredIndex, userDataIndex);\n\n if (argIndex !== undefined) {\n const lengthIndex = effectiveArgIndex(outArgLengthIndex(descriptor), userDataIndex);\n addLengthSource(sources, lengthIndex, { kind: \"outArg\", argIndex });\n }\n }\n};\n\nconst foldedLengthArgIndices = (spec: FoldedLengthSpec): ReadonlySet<number> => {\n const indices: Set<number> = new Set();\n\n const add = (declaredIndex: number | undefined): void => {\n const argIndex = effectiveArgIndex(declaredIndex, spec.userDataIndex);\n\n if (argIndex !== undefined) {\n indices.add(argIndex);\n }\n };\n\n add(sizedArrayLengthIndex(spec.returnDescriptor));\n\n for (const descriptor of spec.argDescriptors) {\n add(sizedArrayLengthIndex(descriptor));\n add(outArgLengthIndex(descriptor));\n }\n\n return indices;\n};\n\nconst foldedLengthSources = (spec: FoldedLengthSpec): LengthSources => {\n const sources: LengthSources = new Map();\n const returnLengthIndex = effectiveArgIndex(sizedArrayLengthIndex(spec.returnDescriptor), spec.userDataIndex);\n addLengthSource(sources, returnLengthIndex, { kind: \"return\" });\n addOutArgLengthSources(sources, spec);\n\n return sources;\n};\n\nexport { foldedLengthArgIndices, foldedLengthSources, type LengthSource, type LengthSources };\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,48 +1,26 @@
|
|
|
1
1
|
import "./exit-hook.js";
|
|
2
|
-
/** @public */
|
|
3
2
|
export { type ApplicationClass, type CommandLineApplication, createApplication } from "./application-class.js";
|
|
4
|
-
|
|
3
|
+
export { CallbackMarshalError } from "./callback.js";
|
|
5
4
|
export { type ClosureCallback, ClosureMarshalError, toClosure, tryToClosure } from "./closure.js";
|
|
6
|
-
/** @public */
|
|
7
5
|
export { createErrorDomain, type ErrorDomain } from "./error.js";
|
|
8
|
-
/** @public */
|
|
9
6
|
export { type Field, type StridedField } from "./field.js";
|
|
10
|
-
/** @public */
|
|
11
7
|
export { onExit, quit, quitApplication, runApplication, type RunApplicationResult } from "./lifecycle.js";
|
|
12
|
-
/** @public */
|
|
13
8
|
export { offSignal, onceSignal, onSignal } from "./listeners.js";
|
|
14
|
-
/** @public */
|
|
15
9
|
export { installMixins, type Mixin } from "./mixin.js";
|
|
16
|
-
|
|
17
|
-
export { fromNative, toNative } from "./native-value.js";
|
|
18
|
-
/** @public */
|
|
10
|
+
export { fromNative, toHashTableEntries, toNative } from "./native-value.js";
|
|
19
11
|
export { type ConstructBinding, type ConstructBindings, getObjectProperty, newObjectWithProperties, registerConstructProperties, setObjectProperty, } from "./object.js";
|
|
20
|
-
/** @public */
|
|
21
12
|
export { getParamSpecFlags, getParamSpecOwnerType, getParamSpecValueType } from "./param-spec.js";
|
|
22
|
-
/** @public */
|
|
23
13
|
export { promisify, trimFinish } from "./promisify.js";
|
|
24
|
-
/** @public */
|
|
25
14
|
export { coerceObjectProperty, getDeclaredPropertyName, isReadableProperty, newParamSpecOverride, } from "./properties.js";
|
|
26
|
-
/** @public */
|
|
27
15
|
export { matchAllRegex, matchRegex } from "./regex.js";
|
|
28
|
-
/** @public */
|
|
29
16
|
export { type Interface, registerClass, type SignalGType, type SignalSpec } from "./register-class.js";
|
|
30
|
-
/** @public */
|
|
31
17
|
export { getClassType, getHandle, getInstanceType, getWrapperClass, installInterfaces, peekTypeClass, registerClassStruct, registerInterface, registerWrapperClass, registerWrapperClassResolver, type StaticBase, setHandle, wrapHandle, type WrapperClass, type WrapperClassResolver, } from "./registry.js";
|
|
32
|
-
/** @public */
|
|
33
18
|
export { connectSignal, disconnectSignal, emitSignal, getSignalBaseName, type SignalHandler, signalForHandlerName, } from "./signal.js";
|
|
34
|
-
/** @public */
|
|
35
19
|
export { t } from "./t.js";
|
|
36
|
-
/** @public */
|
|
37
20
|
export { resolveType, TYPE_BOOLEAN, TYPE_BOXED, TYPE_CHAR, TYPE_DOUBLE, TYPE_ENUM, TYPE_FLAGS, TYPE_FLOAT, TYPE_GTYPE, TYPE_INT, TYPE_INT64, TYPE_INTERFACE, TYPE_INVALID, TYPE_LONG, TYPE_NONE, TYPE_OBJECT, TYPE_PARAM, TYPE_POINTER, TYPE_STRING, TYPE_UCHAR, TYPE_UINT, TYPE_UINT64, TYPE_ULONG, TYPE_UNICHAR, TYPE_VARIANT, type TypedClass, retainWrapperClasses, typeFromName, typeInterfaces, typeIsA, typeName, typeParent, valueIsA, } from "./type.js";
|
|
38
|
-
/** @public */
|
|
39
21
|
export { fromValue, getBoxedValue, type JsValue, setBoxedValue, toValueHandle, tryToValueHandle, ValueMarshalError, } from "./value.js";
|
|
40
|
-
/** @public */
|
|
41
22
|
export { type ByteArray, type FromVariantOptions, fromVariant, type RecursiveFromVariantOptions, type RecursiveVariantValue, toVariant, type VariantInput, type VariantValue, } from "./variant.js";
|
|
42
|
-
/** @public */
|
|
43
23
|
export { callParent, callVfunc } from "./vfunc-call.js";
|
|
44
|
-
/** @public */
|
|
45
24
|
export { alloc, type ExternalObject, type Handle, read, write } from "@gtkx/native";
|
|
46
|
-
/** @public */
|
|
47
25
|
export { type AnyClass } from "@gtkx/utils";
|
|
48
26
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AAExB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,48 +1,26 @@
|
|
|
1
1
|
import "./exit-hook.js";
|
|
2
|
-
/** @public */
|
|
3
2
|
export { createApplication } from "./application-class.js";
|
|
4
|
-
|
|
3
|
+
export { CallbackMarshalError } from "./callback.js";
|
|
5
4
|
export { ClosureMarshalError, toClosure, tryToClosure } from "./closure.js";
|
|
6
|
-
/** @public */
|
|
7
5
|
export { createErrorDomain } from "./error.js";
|
|
8
|
-
/** @public */
|
|
9
6
|
export {} from "./field.js";
|
|
10
|
-
/** @public */
|
|
11
7
|
export { onExit, quit, quitApplication, runApplication } from "./lifecycle.js";
|
|
12
|
-
/** @public */
|
|
13
8
|
export { offSignal, onceSignal, onSignal } from "./listeners.js";
|
|
14
|
-
/** @public */
|
|
15
9
|
export { installMixins } from "./mixin.js";
|
|
16
|
-
|
|
17
|
-
export { fromNative, toNative } from "./native-value.js";
|
|
18
|
-
/** @public */
|
|
10
|
+
export { fromNative, toHashTableEntries, toNative } from "./native-value.js";
|
|
19
11
|
export { getObjectProperty, newObjectWithProperties, registerConstructProperties, setObjectProperty, } from "./object.js";
|
|
20
|
-
/** @public */
|
|
21
12
|
export { getParamSpecFlags, getParamSpecOwnerType, getParamSpecValueType } from "./param-spec.js";
|
|
22
|
-
/** @public */
|
|
23
13
|
export { promisify, trimFinish } from "./promisify.js";
|
|
24
|
-
/** @public */
|
|
25
14
|
export { coerceObjectProperty, getDeclaredPropertyName, isReadableProperty, newParamSpecOverride, } from "./properties.js";
|
|
26
|
-
/** @public */
|
|
27
15
|
export { matchAllRegex, matchRegex } from "./regex.js";
|
|
28
|
-
/** @public */
|
|
29
16
|
export { registerClass } from "./register-class.js";
|
|
30
|
-
/** @public */
|
|
31
17
|
export { getClassType, getHandle, getInstanceType, getWrapperClass, installInterfaces, peekTypeClass, registerClassStruct, registerInterface, registerWrapperClass, registerWrapperClassResolver, setHandle, wrapHandle, } from "./registry.js";
|
|
32
|
-
/** @public */
|
|
33
18
|
export { connectSignal, disconnectSignal, emitSignal, getSignalBaseName, signalForHandlerName, } from "./signal.js";
|
|
34
|
-
/** @public */
|
|
35
19
|
export { t } from "./t.js";
|
|
36
|
-
/** @public */
|
|
37
20
|
export { resolveType, TYPE_BOOLEAN, TYPE_BOXED, TYPE_CHAR, TYPE_DOUBLE, TYPE_ENUM, TYPE_FLAGS, TYPE_FLOAT, TYPE_GTYPE, TYPE_INT, TYPE_INT64, TYPE_INTERFACE, TYPE_INVALID, TYPE_LONG, TYPE_NONE, TYPE_OBJECT, TYPE_PARAM, TYPE_POINTER, TYPE_STRING, TYPE_UCHAR, TYPE_UINT, TYPE_UINT64, TYPE_ULONG, TYPE_UNICHAR, TYPE_VARIANT, retainWrapperClasses, typeFromName, typeInterfaces, typeIsA, typeName, typeParent, valueIsA, } from "./type.js";
|
|
38
|
-
/** @public */
|
|
39
21
|
export { fromValue, getBoxedValue, setBoxedValue, toValueHandle, tryToValueHandle, ValueMarshalError, } from "./value.js";
|
|
40
|
-
/** @public */
|
|
41
22
|
export { fromVariant, toVariant, } from "./variant.js";
|
|
42
|
-
/** @public */
|
|
43
23
|
export { callParent, callVfunc } from "./vfunc-call.js";
|
|
44
|
-
/** @public */
|
|
45
24
|
export { alloc, read, write } from "@gtkx/native";
|
|
46
|
-
/** @public */
|
|
47
25
|
export {} from "@gtkx/utils";
|
|
48
26
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AAExB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AAExB,OAAO,EAAsD,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC/G,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAwB,mBAAmB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAoB,MAAM,YAAY,CAAC;AACjE,OAAO,EAAiC,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,cAAc,EAA6B,MAAM,gBAAgB,CAAC;AAC1G,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAc,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAGH,iBAAiB,EACjB,uBAAuB,EACvB,2BAA2B,EAC3B,iBAAiB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EACH,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAkB,aAAa,EAAqC,MAAM,qBAAqB,CAAC;AACvG,OAAO,EACH,YAAY,EACZ,SAAS,EACT,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,4BAA4B,EAE5B,SAAS,EACT,UAAU,GAGb,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EAEjB,oBAAoB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EACH,WAAW,EACX,YAAY,EACZ,UAAU,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,cAAc,EACd,YAAY,EACZ,SAAS,EACT,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,YAAY,EAEZ,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,OAAO,EACP,QAAQ,EACR,UAAU,EACV,QAAQ,GACX,MAAM,WAAW,CAAC;AACnB,OAAO,EACH,SAAS,EACT,aAAa,EAEb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,iBAAiB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAGH,WAAW,EAGX,SAAS,GAGZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAoC,IAAI,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACpF,OAAO,EAAiB,MAAM,aAAa,CAAC","sourcesContent":["import \"./exit-hook.js\";\n\nexport { type ApplicationClass, type CommandLineApplication, createApplication } from \"./application-class.js\";\nexport { CallbackMarshalError } from \"./callback.js\";\nexport { type ClosureCallback, ClosureMarshalError, toClosure, tryToClosure } from \"./closure.js\";\nexport { createErrorDomain, type ErrorDomain } from \"./error.js\";\nexport { type Field, type StridedField } from \"./field.js\";\nexport { onExit, quit, quitApplication, runApplication, type RunApplicationResult } from \"./lifecycle.js\";\nexport { offSignal, onceSignal, onSignal } from \"./listeners.js\";\nexport { installMixins, type Mixin } from \"./mixin.js\";\nexport { fromNative, toHashTableEntries, toNative } from \"./native-value.js\";\nexport {\n type ConstructBinding,\n type ConstructBindings,\n getObjectProperty,\n newObjectWithProperties,\n registerConstructProperties,\n setObjectProperty,\n} from \"./object.js\";\nexport { getParamSpecFlags, getParamSpecOwnerType, getParamSpecValueType } from \"./param-spec.js\";\nexport { promisify, trimFinish } from \"./promisify.js\";\nexport {\n coerceObjectProperty,\n getDeclaredPropertyName,\n isReadableProperty,\n newParamSpecOverride,\n} from \"./properties.js\";\nexport { matchAllRegex, matchRegex } from \"./regex.js\";\nexport { type Interface, registerClass, type SignalGType, type SignalSpec } from \"./register-class.js\";\nexport {\n getClassType,\n getHandle,\n getInstanceType,\n getWrapperClass,\n installInterfaces,\n peekTypeClass,\n registerClassStruct,\n registerInterface,\n registerWrapperClass,\n registerWrapperClassResolver,\n type StaticBase,\n setHandle,\n wrapHandle,\n type WrapperClass,\n type WrapperClassResolver,\n} from \"./registry.js\";\nexport {\n connectSignal,\n disconnectSignal,\n emitSignal,\n getSignalBaseName,\n type SignalHandler,\n signalForHandlerName,\n} from \"./signal.js\";\nexport { t } from \"./t.js\";\nexport {\n resolveType,\n TYPE_BOOLEAN,\n TYPE_BOXED,\n TYPE_CHAR,\n TYPE_DOUBLE,\n TYPE_ENUM,\n TYPE_FLAGS,\n TYPE_FLOAT,\n TYPE_GTYPE,\n TYPE_INT,\n TYPE_INT64,\n TYPE_INTERFACE,\n TYPE_INVALID,\n TYPE_LONG,\n TYPE_NONE,\n TYPE_OBJECT,\n TYPE_PARAM,\n TYPE_POINTER,\n TYPE_STRING,\n TYPE_UCHAR,\n TYPE_UINT,\n TYPE_UINT64,\n TYPE_ULONG,\n TYPE_UNICHAR,\n TYPE_VARIANT,\n type TypedClass,\n retainWrapperClasses,\n typeFromName,\n typeInterfaces,\n typeIsA,\n typeName,\n typeParent,\n valueIsA,\n} from \"./type.js\";\nexport {\n fromValue,\n getBoxedValue,\n type JsValue,\n setBoxedValue,\n toValueHandle,\n tryToValueHandle,\n ValueMarshalError,\n} from \"./value.js\";\nexport {\n type ByteArray,\n type FromVariantOptions,\n fromVariant,\n type RecursiveFromVariantOptions,\n type RecursiveVariantValue,\n toVariant,\n type VariantInput,\n type VariantValue,\n} from \"./variant.js\";\nexport { callParent, callVfunc } from \"./vfunc-call.js\";\nexport { alloc, type ExternalObject, type Handle, read, write } from \"@gtkx/native\";\nexport { type AnyClass } from \"@gtkx/utils\";\n"]}
|
package/dist/internal.d.ts
CHANGED
|
@@ -1,10 +1,26 @@
|
|
|
1
|
+
import { markSyntheticSignalMembers as markSyntheticSignalMembersImpl } from "./mixin.js";
|
|
2
|
+
import { naturalSignalMember } from "./signal-brand.js";
|
|
3
|
+
import { emitSignalByName as emitSignalByNameImpl, signalConnect as signalConnectImpl, signalEmit as signalEmitImpl } from "./signal.js";
|
|
4
|
+
declare const markSyntheticSignalMembers: typeof markSyntheticSignalMembersImpl;
|
|
5
|
+
declare const emitSignalByName: typeof emitSignalByNameImpl;
|
|
6
|
+
declare const signalConnect: typeof signalConnectImpl;
|
|
7
|
+
declare const signalEmit: typeof signalEmitImpl;
|
|
8
|
+
type SignalMethodReceiver<T, K extends PropertyKey> = T extends {
|
|
9
|
+
[naturalSignalMember]?: infer TMembers;
|
|
10
|
+
} ? K extends keyof NonNullable<TMembers> ? never : unknown : unknown;
|
|
1
11
|
/** @internal */
|
|
2
12
|
export { registerElementMetadata } from "./element-metadata.js";
|
|
3
13
|
export { elementMetadataVersion, registeredElementProperties, registeredElementSignals, } from "./element-metadata.js";
|
|
4
|
-
export {
|
|
14
|
+
export { createErrorDomain } from "./error.js";
|
|
5
15
|
export { type ApplicationInstance, getApplicationInstance } from "./lifecycle.js";
|
|
6
|
-
export {
|
|
16
|
+
export { markSyntheticSignalMembers };
|
|
17
|
+
export { descriptorFreePropertySpec, propertyMapOverride, writablePropertyMapOverride, } from "./property-brand.js";
|
|
18
|
+
export { getExactWrapperClass, resolveWrapperClass } from "./registry.js";
|
|
19
|
+
export { classSignalMember, naturalSignalMember, signalEmitMapOverride, signalMapOverride, } from "./signal-brand.js";
|
|
20
|
+
export type { SignalMethodReceiver };
|
|
7
21
|
export { hasSignalListener } from "./signal.js";
|
|
22
|
+
export { canonicalDetailedSignalName, canonicalSignalName, connectSignalByName, installSignalDispatch, } from "./signal.js";
|
|
23
|
+
export { emitSignalByName, signalConnect, signalEmit };
|
|
8
24
|
export { resolveType } from "./type.js";
|
|
9
25
|
export { fromValue, getBoxedValue, getValueType, inoutValueForBoxedDescriptor, newValueForDescriptor, outValueForBoxedDescriptor, toValue, } from "./value.js";
|
|
10
26
|
//# sourceMappingURL=internal.d.ts.map
|
package/dist/internal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EACH,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,IAAI,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACH,gBAAgB,IAAI,oBAAoB,EACxC,aAAa,IAAI,iBAAiB,EAClC,UAAU,IAAI,cAAc,EAC/B,MAAM,aAAa,CAAC;AAErB,QAAA,MAAM,0BAA0B,EAAE,OAAO,8BAA+D,CAAC;AACzG,QAAA,MAAM,gBAAgB,EAAE,OAAO,oBAA2C,CAAC;AAC3E,QAAA,MAAM,aAAa,EAAE,OAAO,iBAAqC,CAAC;AAClE,QAAA,MAAM,UAAU,EAAE,OAAO,cAA+B,CAAC;AAEzD,KAAK,oBAAoB,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,IAAI,CAAC,SAAS;IAC5D,CAAC,mBAAmB,CAAC,CAAC,EAAE,MAAM,QAAQ,CAAC;CAC1C,GACK,CAAC,SAAS,MAAM,WAAW,CAAC,QAAQ,CAAC,GACjC,KAAK,GACL,OAAO,GACX,OAAO,CAAC;AAEd,gBAAgB;AAChB,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EACH,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,KAAK,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,CAAC;AACtC,OAAO,EACH,0BAA0B,EAC1B,mBAAmB,EACnB,2BAA2B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EACH,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,oBAAoB,EAAE,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACH,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EACH,SAAS,EACT,aAAa,EACb,YAAY,EACZ,4BAA4B,EAC5B,qBAAqB,EACrB,0BAA0B,EAC1B,OAAO,GACV,MAAM,YAAY,CAAC"}
|
package/dist/internal.js
CHANGED
|
@@ -1,10 +1,22 @@
|
|
|
1
|
+
import { markSyntheticSignalMembers as markSyntheticSignalMembersImpl } from "./mixin.js";
|
|
2
|
+
import { naturalSignalMember } from "./signal-brand.js";
|
|
3
|
+
import { emitSignalByName as emitSignalByNameImpl, signalConnect as signalConnectImpl, signalEmit as signalEmitImpl, } from "./signal.js";
|
|
4
|
+
const markSyntheticSignalMembers = markSyntheticSignalMembersImpl;
|
|
5
|
+
const emitSignalByName = emitSignalByNameImpl;
|
|
6
|
+
const signalConnect = signalConnectImpl;
|
|
7
|
+
const signalEmit = signalEmitImpl;
|
|
1
8
|
/** @internal */
|
|
2
9
|
export { registerElementMetadata } from "./element-metadata.js";
|
|
3
10
|
export { elementMetadataVersion, registeredElementProperties, registeredElementSignals, } from "./element-metadata.js";
|
|
4
|
-
export {
|
|
11
|
+
export { createErrorDomain } from "./error.js";
|
|
5
12
|
export { getApplicationInstance } from "./lifecycle.js";
|
|
6
|
-
export {
|
|
13
|
+
export { markSyntheticSignalMembers };
|
|
14
|
+
export { descriptorFreePropertySpec, propertyMapOverride, writablePropertyMapOverride, } from "./property-brand.js";
|
|
15
|
+
export { getExactWrapperClass, resolveWrapperClass } from "./registry.js";
|
|
16
|
+
export { classSignalMember, naturalSignalMember, signalEmitMapOverride, signalMapOverride, } from "./signal-brand.js";
|
|
7
17
|
export { hasSignalListener } from "./signal.js";
|
|
18
|
+
export { canonicalDetailedSignalName, canonicalSignalName, connectSignalByName, installSignalDispatch, } from "./signal.js";
|
|
19
|
+
export { emitSignalByName, signalConnect, signalEmit };
|
|
8
20
|
export { resolveType } from "./type.js";
|
|
9
21
|
export { fromValue, getBoxedValue, getValueType, inoutValueForBoxedDescriptor, newValueForDescriptor, outValueForBoxedDescriptor, toValue, } from "./value.js";
|
|
10
22
|
//# sourceMappingURL=internal.js.map
|
package/dist/internal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EACH,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,IAAI,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACH,gBAAgB,IAAI,oBAAoB,EACxC,aAAa,IAAI,iBAAiB,EAClC,UAAU,IAAI,cAAc,GAC/B,MAAM,aAAa,CAAC;AAErB,MAAM,0BAA0B,GAA0C,8BAA8B,CAAC;AACzG,MAAM,gBAAgB,GAAgC,oBAAoB,CAAC;AAC3E,MAAM,aAAa,GAA6B,iBAAiB,CAAC;AAClE,MAAM,UAAU,GAA0B,cAAc,CAAC;AAUzD,gBAAgB;AAChB,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EACH,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAA4B,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,CAAC;AACtC,OAAO,EACH,0BAA0B,EAC1B,mBAAmB,EACnB,2BAA2B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EACH,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACH,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EACH,SAAS,EACT,aAAa,EACb,YAAY,EACZ,4BAA4B,EAC5B,qBAAqB,EACrB,0BAA0B,EAC1B,OAAO,GACV,MAAM,YAAY,CAAC","sourcesContent":["import { markSyntheticSignalMembers as markSyntheticSignalMembersImpl } from \"./mixin.js\";\nimport { naturalSignalMember } from \"./signal-brand.js\";\nimport {\n emitSignalByName as emitSignalByNameImpl,\n signalConnect as signalConnectImpl,\n signalEmit as signalEmitImpl,\n} from \"./signal.js\";\n\nconst markSyntheticSignalMembers: typeof markSyntheticSignalMembersImpl = markSyntheticSignalMembersImpl;\nconst emitSignalByName: typeof emitSignalByNameImpl = emitSignalByNameImpl;\nconst signalConnect: typeof signalConnectImpl = signalConnectImpl;\nconst signalEmit: typeof signalEmitImpl = signalEmitImpl;\n\ntype SignalMethodReceiver<T, K extends PropertyKey> = T extends {\n [naturalSignalMember]?: infer TMembers;\n}\n ? K extends keyof NonNullable<TMembers>\n ? never\n : unknown\n : unknown;\n\n/** @internal */\nexport { registerElementMetadata } from \"./element-metadata.js\";\nexport {\n elementMetadataVersion,\n registeredElementProperties,\n registeredElementSignals,\n} from \"./element-metadata.js\";\nexport { createErrorDomain } from \"./error.js\";\nexport { type ApplicationInstance, getApplicationInstance } from \"./lifecycle.js\";\nexport { markSyntheticSignalMembers };\nexport {\n descriptorFreePropertySpec,\n propertyMapOverride,\n writablePropertyMapOverride,\n} from \"./property-brand.js\";\nexport { getExactWrapperClass, resolveWrapperClass } from \"./registry.js\";\nexport {\n classSignalMember,\n naturalSignalMember,\n signalEmitMapOverride,\n signalMapOverride,\n} from \"./signal-brand.js\";\nexport type { SignalMethodReceiver };\nexport { hasSignalListener } from \"./signal.js\";\nexport {\n canonicalDetailedSignalName,\n canonicalSignalName,\n connectSignalByName,\n installSignalDispatch,\n} from \"./signal.js\";\nexport { emitSignalByName, signalConnect, signalEmit };\nexport { resolveType } from \"./type.js\";\nexport {\n fromValue,\n getBoxedValue,\n getValueType,\n inoutValueForBoxedDescriptor,\n newValueForDescriptor,\n outValueForBoxedDescriptor,\n toValue,\n} from \"./value.js\";\n"]}
|
package/dist/listeners.d.ts
CHANGED
|
@@ -1,14 +1,4 @@
|
|
|
1
1
|
import { type SignalHandler } from "./signal.js";
|
|
2
|
-
/**
|
|
3
|
-
* The connect and disconnect surface {@link onSignal}, {@link onceSignal} and {@link offSignal}
|
|
4
|
-
* drive on an emitter.
|
|
5
|
-
*/
|
|
6
|
-
type SignalConnectable = {
|
|
7
|
-
/** Connects a handler to a signal and returns its handler id. */
|
|
8
|
-
connect(signal: string, handler: SignalHandler, isAfter?: boolean): number;
|
|
9
|
-
/** Disconnects the handler previously connected under the given id. */
|
|
10
|
-
disconnect(handlerId: number): void;
|
|
11
|
-
};
|
|
12
2
|
/**
|
|
13
3
|
* Connects a handler to a signal and tracks it so it can later be removed with
|
|
14
4
|
* {@link offSignal}.
|
|
@@ -18,7 +8,7 @@ type SignalConnectable = {
|
|
|
18
8
|
* @param handler The callback invoked on each emission.
|
|
19
9
|
* @param isAfter When true, run the handler after the default handler.
|
|
20
10
|
*/
|
|
21
|
-
declare function onSignal(instance:
|
|
11
|
+
declare function onSignal(instance: object, signal: string, handler: SignalHandler, isAfter?: boolean): void;
|
|
22
12
|
/**
|
|
23
13
|
* Connects a handler that runs at most once, disconnecting itself after the first
|
|
24
14
|
* emission.
|
|
@@ -28,7 +18,7 @@ declare function onSignal(instance: SignalConnectable, signal: string, handler:
|
|
|
28
18
|
* @param handler The callback invoked on the first emission.
|
|
29
19
|
* @param isAfter When true, run the handler after the default handler.
|
|
30
20
|
*/
|
|
31
|
-
declare function onceSignal(instance:
|
|
21
|
+
declare function onceSignal(instance: object, signal: string, handler: SignalHandler, isAfter?: boolean): void;
|
|
32
22
|
/**
|
|
33
23
|
* Disconnects a handler previously connected with {@link onSignal} or
|
|
34
24
|
* {@link onceSignal}. Does nothing if the handler is not currently connected.
|
|
@@ -37,6 +27,6 @@ declare function onceSignal(instance: SignalConnectable, signal: string, handler
|
|
|
37
27
|
* @param signal The signal name the handler was connected to.
|
|
38
28
|
* @param handler The handler to disconnect.
|
|
39
29
|
*/
|
|
40
|
-
declare function offSignal(instance:
|
|
30
|
+
declare function offSignal(instance: object, signal: string, handler: SignalHandler): void;
|
|
41
31
|
export { onSignal, onceSignal, offSignal };
|
|
42
32
|
//# sourceMappingURL=listeners.d.ts.map
|
package/dist/listeners.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listeners.d.ts","sourceRoot":"","sources":["../src/listeners.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"listeners.d.ts","sourceRoot":"","sources":["../src/listeners.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,KAAK,aAAa,EACrB,MAAM,aAAa,CAAC;AA+DrB;;;;;;;;GAQG;AACH,iBAAS,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAGnG;AAED;;;;;;;;GAQG;AACH,iBAAS,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAarG;AAED;;;;;;;GAOG;AACH,iBAAS,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAcjF;AAED,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC"}
|
package/dist/listeners.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import { isSignalHandlerConnected,
|
|
1
|
+
import { canonicalDetailedSignalName, connectSignalByName, disconnectSignal, isSignalHandlerConnected, } from "./signal.js";
|
|
2
2
|
const listenerTable = new WeakMap();
|
|
3
|
-
const findListenerHandlerId = (instance, signal, handler) => listenerTable.get(instance)?.get(signal)?.get(handler)?.at(-1);
|
|
3
|
+
const findListenerHandlerId = (instance, signal, handler) => listenerTable.get(instance)?.get(canonicalDetailedSignalName(signal))?.get(handler)?.at(-1);
|
|
4
4
|
const trackListener = (instance, signal, handler, handlerId) => {
|
|
5
|
+
const key = canonicalDetailedSignalName(signal);
|
|
5
6
|
let bySignal = listenerTable.get(instance);
|
|
6
7
|
if (!bySignal) {
|
|
7
8
|
bySignal = new Map();
|
|
8
9
|
listenerTable.set(instance, bySignal);
|
|
9
10
|
}
|
|
10
|
-
let byHandler = bySignal.get(
|
|
11
|
+
let byHandler = bySignal.get(key);
|
|
11
12
|
if (!byHandler) {
|
|
12
13
|
byHandler = new Map();
|
|
13
|
-
bySignal.set(
|
|
14
|
+
bySignal.set(key, byHandler);
|
|
14
15
|
}
|
|
15
16
|
let handlerIds = byHandler.get(handler);
|
|
16
17
|
if (!handlerIds) {
|
|
@@ -27,8 +28,9 @@ const removeTrackedHandlerId = (handlerIds, handlerId) => {
|
|
|
27
28
|
return handlerIds.length;
|
|
28
29
|
};
|
|
29
30
|
const untrackHandlerId = (instance, signal, handlerId) => {
|
|
31
|
+
const key = canonicalDetailedSignalName(signal);
|
|
30
32
|
const bySignal = listenerTable.get(instance);
|
|
31
|
-
const byHandler = bySignal?.get(
|
|
33
|
+
const byHandler = bySignal?.get(key);
|
|
32
34
|
if (byHandler === undefined) {
|
|
33
35
|
return;
|
|
34
36
|
}
|
|
@@ -38,7 +40,7 @@ const untrackHandlerId = (instance, signal, handlerId) => {
|
|
|
38
40
|
}
|
|
39
41
|
}
|
|
40
42
|
if (byHandler.size === 0) {
|
|
41
|
-
bySignal?.delete(
|
|
43
|
+
bySignal?.delete(key);
|
|
42
44
|
}
|
|
43
45
|
};
|
|
44
46
|
/**
|
|
@@ -51,7 +53,7 @@ const untrackHandlerId = (instance, signal, handlerId) => {
|
|
|
51
53
|
* @param isAfter When true, run the handler after the default handler.
|
|
52
54
|
*/
|
|
53
55
|
function onSignal(instance, signal, handler, isAfter) {
|
|
54
|
-
const handlerId = instance
|
|
56
|
+
const handlerId = connectSignalByName(instance, signal, handler, isAfter);
|
|
55
57
|
trackListener(instance, signal, handler, handlerId);
|
|
56
58
|
}
|
|
57
59
|
/**
|
|
@@ -67,11 +69,10 @@ function onceSignal(instance, signal, handler, isAfter) {
|
|
|
67
69
|
let handlerId = 0;
|
|
68
70
|
const wrapped = (...args) => {
|
|
69
71
|
untrackHandlerId(instance, signal, handlerId);
|
|
70
|
-
|
|
71
|
-
instance.disconnect(handlerId);
|
|
72
|
+
disconnectSignal(instance, handlerId);
|
|
72
73
|
return handler(...args);
|
|
73
74
|
};
|
|
74
|
-
handlerId = instance
|
|
75
|
+
handlerId = connectSignalByName(instance, signal, wrapped, isAfter);
|
|
75
76
|
trackListener(instance, signal, wrapped, handlerId);
|
|
76
77
|
trackListener(instance, signal, handler, handlerId);
|
|
77
78
|
}
|
|
@@ -89,11 +90,10 @@ function offSignal(instance, signal, handler) {
|
|
|
89
90
|
return;
|
|
90
91
|
}
|
|
91
92
|
untrackHandlerId(instance, signal, handlerId);
|
|
92
|
-
untrackConnection(instance, handlerId);
|
|
93
93
|
if (!isSignalHandlerConnected(instance, handlerId)) {
|
|
94
94
|
return;
|
|
95
95
|
}
|
|
96
|
-
instance
|
|
96
|
+
disconnectSignal(instance, handlerId);
|
|
97
97
|
}
|
|
98
98
|
export { onSignal, onceSignal, offSignal };
|
|
99
99
|
//# sourceMappingURL=listeners.js.map
|
package/dist/listeners.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listeners.js","sourceRoot":"","sources":["../src/listeners.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"listeners.js","sourceRoot":"","sources":["../src/listeners.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n canonicalDetailedSignalName,\n connectSignalByName,\n disconnectSignal,\n isSignalHandlerConnected,\n type SignalHandler,\n} from \"./signal.js\";\n\nconst listenerTable: WeakMap<object, Map<string, Map<SignalHandler, number[]>>> = new WeakMap();\n\nconst findListenerHandlerId = (instance: object, signal: string, handler: SignalHandler): number | undefined =>\n listenerTable.get(instance)?.get(canonicalDetailedSignalName(signal))?.get(handler)?.at(-1);\n\nconst trackListener = (instance: object, signal: string, handler: SignalHandler, handlerId: number): void => {\n const key = canonicalDetailedSignalName(signal);\n let bySignal = listenerTable.get(instance);\n\n if (!bySignal) {\n bySignal = new Map();\n listenerTable.set(instance, bySignal);\n }\n\n let byHandler = bySignal.get(key);\n\n if (!byHandler) {\n byHandler = new Map();\n bySignal.set(key, byHandler);\n }\n\n let handlerIds = byHandler.get(handler);\n\n if (!handlerIds) {\n handlerIds = [];\n byHandler.set(handler, handlerIds);\n }\n\n handlerIds.push(handlerId);\n};\n\nconst removeTrackedHandlerId = (handlerIds: number[], handlerId: number): number => {\n const index = handlerIds.lastIndexOf(handlerId);\n\n if (index !== -1) {\n handlerIds.splice(index, 1);\n }\n\n return handlerIds.length;\n};\n\nconst untrackHandlerId = (instance: object, signal: string, handlerId: number): void => {\n const key = canonicalDetailedSignalName(signal);\n const bySignal = listenerTable.get(instance);\n const byHandler = bySignal?.get(key);\n\n if (byHandler === undefined) {\n return;\n }\n\n for (const [handler, handlerIds] of byHandler) {\n if (removeTrackedHandlerId(handlerIds, handlerId) === 0) {\n byHandler.delete(handler);\n }\n }\n\n if (byHandler.size === 0) {\n bySignal?.delete(key);\n }\n};\n\n/**\n * Connects a handler to a signal and tracks it so it can later be removed with\n * {@link offSignal}.\n *\n * @param instance The object emitting the signal.\n * @param signal The signal name to connect to.\n * @param handler The callback invoked on each emission.\n * @param isAfter When true, run the handler after the default handler.\n */\nfunction onSignal(instance: object, signal: string, handler: SignalHandler, isAfter?: boolean): void {\n const handlerId = connectSignalByName(instance, signal, handler, isAfter);\n trackListener(instance, signal, handler, handlerId);\n}\n\n/**\n * Connects a handler that runs at most once, disconnecting itself after the first\n * emission.\n *\n * @param instance The object emitting the signal.\n * @param signal The signal name to connect to.\n * @param handler The callback invoked on the first emission.\n * @param isAfter When true, run the handler after the default handler.\n */\nfunction onceSignal(instance: object, signal: string, handler: SignalHandler, isAfter?: boolean): void {\n let handlerId = 0;\n\n const wrapped: SignalHandler = (...args) => {\n untrackHandlerId(instance, signal, handlerId);\n disconnectSignal(instance, handlerId);\n\n return handler(...args);\n };\n\n handlerId = connectSignalByName(instance, signal, wrapped, isAfter);\n trackListener(instance, signal, wrapped, handlerId);\n trackListener(instance, signal, handler, handlerId);\n}\n\n/**\n * Disconnects a handler previously connected with {@link onSignal} or\n * {@link onceSignal}. Does nothing if the handler is not currently connected.\n *\n * @param instance The object the handler was connected to.\n * @param signal The signal name the handler was connected to.\n * @param handler The handler to disconnect.\n */\nfunction offSignal(instance: object, signal: string, handler: SignalHandler): void {\n const handlerId = findListenerHandlerId(instance, signal, handler);\n\n if (handlerId === undefined) {\n return;\n }\n\n untrackHandlerId(instance, signal, handlerId);\n\n if (!isSignalHandlerConnected(instance, handlerId)) {\n return;\n }\n\n disconnectSignal(instance, handlerId);\n}\n\nexport { onSignal, onceSignal, offSignal };\n"]}
|
package/dist/mixin.d.ts
CHANGED
|
@@ -14,7 +14,8 @@ type MixinReceiver = {
|
|
|
14
14
|
* be merged onto a target prototype.
|
|
15
15
|
*/
|
|
16
16
|
type Mixin = (base: AnyClass<MixinReceiver>) => AnyClass;
|
|
17
|
-
declare function
|
|
17
|
+
declare function markSyntheticSignalMembers(klass: AnyClass, names: readonly string[]): void;
|
|
18
|
+
declare function copyLayerMembers(target: AnyClass, layer: object, inheritedOverrides?: Set<string>): void;
|
|
18
19
|
/**
|
|
19
20
|
* Copies each mixin's prototype members onto the target class prototype, skipping
|
|
20
21
|
* any member already defined anywhere in the target's class chain.
|
|
@@ -22,7 +23,8 @@ declare function copyLayerMembers(target: AnyClass, layer: object): void;
|
|
|
22
23
|
* @param target The class whose prototype receives the mixin members.
|
|
23
24
|
* @param mixins The mixins to apply, in order.
|
|
24
25
|
*/
|
|
25
|
-
declare function installMixins(target: AnyClass, mixins: Mixin[]): void;
|
|
26
|
+
declare function installMixins(target: AnyClass, mixins: Mixin[], inheritedOverrideNames?: Iterable<string>): void;
|
|
27
|
+
declare function createMixinLayer(parent: AnyClass<MixinReceiver>, mixin: Mixin, inheritedNames: Set<string>): AnyClass;
|
|
26
28
|
declare function insertMixinLayer(target: AnyClass, mixin: Mixin, inheritedNames: Set<string>): void;
|
|
27
|
-
export { copyLayerMembers, insertMixinLayer, installMixins, type MixinReceiver, type Mixin };
|
|
29
|
+
export { copyLayerMembers, createMixinLayer, insertMixinLayer, installMixins, markSyntheticSignalMembers, type MixinReceiver, type Mixin, };
|
|
28
30
|
//# sourceMappingURL=mixin.d.ts.map
|
package/dist/mixin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mixin.d.ts","sourceRoot":"","sources":["../src/mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,aAAa,CAAC;AAE5D;;;GAGG;AACH,KAAK,aAAa,GAAG;IACjB,iEAAiE;IACjE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7F,0FAA0F;IAC1F,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;CACrD,CAAC;AAEF;;;GAGG;AACH,KAAK,KAAK,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"mixin.d.ts","sourceRoot":"","sources":["../src/mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,aAAa,CAAC;AAE5D;;;GAGG;AACH,KAAK,aAAa,GAAG;IACjB,iEAAiE;IACjE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7F,0FAA0F;IAC1F,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;CACrD,CAAC;AAEF;;;GAGG;AACH,KAAK,KAAK,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAC;AAIzD,iBAAS,0BAA0B,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAEnF;AAgDD,iBAAS,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,IAAI,CAI5G;AAED;;;;;;GAMG;AACH,iBAAS,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,sBAAsB,GAAE,QAAQ,CAAC,MAAM,CAAM,GAAG,IAAI,CAe7G;AAQD,iBAAS,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,QAAQ,CAa9G;AAED,iBAAS,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAK3F;AAED,OAAO,EACH,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,0BAA0B,EAC1B,KAAK,aAAa,EAClB,KAAK,KAAK,GACb,CAAC"}
|