@gtkx/runtime 2.0.0-beta.2 → 2.0.0-beta.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.
@@ -278,6 +278,7 @@ declare const fundamentalLifecycleFor: (typeName: string) => FundamentalLifecycl
278
278
  declare const fundamentalT: (sharedLibrary: string, refFnName: string, unrefFnName: string, options?: FundamentalOptions) => FundamentalDescriptor;
279
279
  /** Builds a descriptor for an array of items in one of the supported container layouts. */
280
280
  declare const arrayT: (itemDescriptor: Descriptor, arrayKind?: ArrayKind, ownership?: Ownership, options?: ArrayOptions) => ArrayDescriptor;
281
+ declare const preserveArrayNull: (descriptor: ArrayDescriptor) => ArrayDescriptor;
281
282
  /** Builds a descriptor for a `GList` of items. */
282
283
  declare const listT: (itemDescriptor: Descriptor, ownership?: Ownership, options?: ArrayOptions) => ArrayDescriptor;
283
284
  /** Builds a descriptor for a `GSList` of items. */
@@ -296,5 +297,5 @@ declare const cursorArrayT: (itemDescriptor: Descriptor, bounds: CursorBounds, o
296
297
  declare const fixedArrayT: (itemDescriptor: Descriptor, fixedSize: number, ownership?: Ownership, options?: ArrayOptions) => ArrayDescriptor;
297
298
  /** Builds a descriptor for a function pointer, marshalling a JavaScript function into a native closure. */
298
299
  declare const callbackT: (argDescriptors: Descriptor[], returnDescriptor: Descriptor, options?: CallbackOptions) => CallbackDescriptor;
299
- export { int8T, uint8T, int16T, uint16T, int32T, uint32T, int64T, uint64T, bigint64T, biguint64T, gtypeT, isGtypeDescriptor, float32T, float64T, booleanT, voidT, unicharT, bufferT, stringT, objectT, refT, hashTableT, enumT, flagsT, boxedT, structT, fundamentalLifecycleFor, fundamentalT, arrayT, listT, slistT, ptrArrayT, gArrayT, byteArrayT, sizedArrayT, fixedArrayT, cursorArrayT, callbackT, type BoxedDescriptor, type ObjectDescriptor, type StructDescriptor, type FundamentalDescriptor, type ArrayDescriptor, type HashTableDescriptor, type CallbackDescriptor, type RefDescriptor, };
300
+ export { int8T, uint8T, int16T, uint16T, int32T, uint32T, int64T, uint64T, bigint64T, biguint64T, gtypeT, isGtypeDescriptor, float32T, float64T, booleanT, voidT, unicharT, bufferT, stringT, objectT, refT, hashTableT, enumT, flagsT, boxedT, structT, fundamentalLifecycleFor, fundamentalT, arrayT, preserveArrayNull, listT, slistT, ptrArrayT, gArrayT, byteArrayT, sizedArrayT, fixedArrayT, cursorArrayT, callbackT, type BoxedDescriptor, type ObjectDescriptor, type StructDescriptor, type FundamentalDescriptor, type ArrayDescriptor, type HashTableDescriptor, type CallbackDescriptor, type RefDescriptor, };
300
301
  //# sourceMappingURL=descriptors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"descriptors.d.ts","sourceRoot":"","sources":["../src/descriptors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"descriptors.d.ts","sourceRoot":"","sources":["../src/descriptors.ts"],"names":[],"mappings":"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"}
@@ -220,6 +220,10 @@ const arrayT = (itemDescriptor, arrayKind = "array", ownership = "borrowed", opt
220
220
  }
221
221
  return result;
222
222
  };
223
+ const preserveArrayNull = (descriptor) => {
224
+ Reflect.set(descriptor, "preserveNull", true);
225
+ return descriptor;
226
+ };
223
227
  /** Builds a descriptor for a `GList` of items. */
224
228
  const listT = (itemDescriptor, ownership = "borrowed", options = {}) => arrayT(itemDescriptor, "glist", ownership, options);
225
229
  /** Builds a descriptor for a `GSList` of items. */
@@ -268,5 +272,5 @@ const callbackT = (argDescriptors, returnDescriptor, options) => {
268
272
  applyClosureOptions(result, options);
269
273
  return result;
270
274
  };
271
- export { int8T, uint8T, int16T, uint16T, int32T, uint32T, int64T, uint64T, bigint64T, biguint64T, gtypeT, isGtypeDescriptor, float32T, float64T, booleanT, voidT, unicharT, bufferT, stringT, objectT, refT, hashTableT, enumT, flagsT, boxedT, structT, fundamentalLifecycleFor, fundamentalT, arrayT, listT, slistT, ptrArrayT, gArrayT, byteArrayT, sizedArrayT, fixedArrayT, cursorArrayT, callbackT, };
275
+ export { int8T, uint8T, int16T, uint16T, int32T, uint32T, int64T, uint64T, bigint64T, biguint64T, gtypeT, isGtypeDescriptor, float32T, float64T, booleanT, voidT, unicharT, bufferT, stringT, objectT, refT, hashTableT, enumT, flagsT, boxedT, structT, fundamentalLifecycleFor, fundamentalT, arrayT, preserveArrayNull, listT, slistT, ptrArrayT, gArrayT, byteArrayT, sizedArrayT, fixedArrayT, cursorArrayT, callbackT, };
272
276
  //# sourceMappingURL=descriptors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"descriptors.js","sourceRoot":"","sources":["../src/descriptors.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ArrayKind, Descriptor, Ownership } from \"@gtkx/native\";\nimport type { AnyClass } from \"@gtkx/utils\";\n\n/** Descriptor variant for a `gint8`. */\ntype Int8Descriptor = Extract<Descriptor, { kind: \"int8\" }>;\n/** Descriptor variant for a `guint8`. */\ntype Uint8Descriptor = Extract<Descriptor, { kind: \"uint8\" }>;\n/** Descriptor variant for a `gint16`. */\ntype Int16Descriptor = Extract<Descriptor, { kind: \"int16\" }>;\n/** Descriptor variant for a `guint16`. */\ntype Uint16Descriptor = Extract<Descriptor, { kind: \"uint16\" }>;\n/** Descriptor variant for a `gint32`. */\ntype Int32Descriptor = Extract<Descriptor, { kind: \"int32\" }>;\n/** Descriptor variant for a `guint32`. */\ntype Uint32Descriptor = Extract<Descriptor, { kind: \"uint32\" }>;\n/** Descriptor variant for a `gint64` marshalled as a number. */\ntype Int64Descriptor = Extract<Descriptor, { kind: \"int64\" }>;\n/** Descriptor variant for a `guint64` marshalled as a number. */\ntype Uint64Descriptor = Extract<Descriptor, { kind: \"uint64\" }>;\n/** Descriptor variant for a `gint64` marshalled as a bigint. */\ntype BigInt64Descriptor = Extract<Descriptor, { kind: \"bigint64\" }>;\n/** Descriptor variant for a `guint64` marshalled as a bigint. */\ntype BigUint64Descriptor = Extract<Descriptor, { kind: \"biguint64\" }>;\n/** Descriptor variant for a `gfloat`. */\ntype Float32Descriptor = Extract<Descriptor, { kind: \"float32\" }>;\n/** Descriptor variant for a `gdouble`. */\ntype Float64Descriptor = Extract<Descriptor, { kind: \"float64\" }>;\n/** Descriptor variant for an enumeration, carrying the library and `get_type` symbol its GType comes from. */\ntype EnumDescriptor = Extract<Descriptor, { kind: \"enum\" }>;\n/** Descriptor variant for a flags type, carrying the library and `get_type` symbol its GType comes from. */\ntype FlagsDescriptor = Extract<Descriptor, { kind: \"flags\" }>;\n/** Descriptor variant for a `gboolean`. */\ntype BooleanDescriptor = Extract<Descriptor, { kind: \"boolean\" }>;\n/** Descriptor variant for a C string. */\ntype StringDescriptor = Extract<Descriptor, { kind: \"string\" }>;\n\n/** Descriptor variant for a `GObject`, extended with the statically declared type of its value. */\ntype ObjectDescriptor = Extract<Descriptor, { kind: \"object\" }> & {\n /** Retains and supplies the declared wrapper when no more-derived wrapper is registered. */\n fallbackClass?: () => AnyClass;\n};\n\n/** Descriptor variant for a `gunichar`. */\ntype UnicharDescriptor = Extract<Descriptor, { kind: \"unichar\" }>;\n/** Descriptor variant for the absence of a value. */\ntype VoidDescriptor = Extract<Descriptor, { kind: \"void\" }>;\n/** Descriptor variant for an opaque `gpointer`. */\ntype BufferDescriptor = Extract<Descriptor, { kind: \"buffer\" }>;\n\n/** Descriptor variant for a `GBoxed` value, extended with the statically declared type of its value. */\ntype BoxedDescriptor = Extract<Descriptor, { kind: \"boxed\" }> & {\n /** Retains and supplies the declared wrapper when none is registered. */\n fallbackClass?: () => AnyClass;\n};\n\n/** Descriptor variant for a plain C struct, extended with the class its decoded value is wrapped in. */\ntype StructDescriptor = Extract<Descriptor, { kind: \"struct\" }> & {\n /** Class a decoded value is wrapped in; without it the wrapper comes from the value's own GType. */\n wrapperClass?: AnyClass;\n};\n\n/** Descriptor variant for a ref-counted fundamental type, extended with the class its decoded value is wrapped in. */\ntype FundamentalDescriptor = Extract<Descriptor, { kind: \"fundamental\" }> & {\n /** Class a decoded value is wrapped in; without it the wrapper comes from the type named by `typeName`. */\n wrapperClass?: AnyClass;\n /** Retains and supplies the declared wrapper after checking the runtime-type registry. */\n fallbackClass?: () => AnyClass;\n};\n\n/** Descriptor variant for an array of items in one of the supported container layouts. */\ntype ArrayDescriptor = Extract<Descriptor, { kind: \"array\" }>;\n/** Descriptor variant for a `GHashTable`, marshalled as an array of key/value pairs. */\ntype HashTableDescriptor = Extract<Descriptor, { kind: \"hashtable\" }>;\n/** Descriptor variant for a function pointer a JavaScript function is marshalled into. */\ntype CallbackDescriptor = Extract<Descriptor, { kind: \"callback\" }>;\n/** Descriptor variant for a pointer to another descriptor's value, for an output or inout argument. */\ntype RefDescriptor = Extract<Descriptor, { kind: \"ref\" }>;\n\n/** Descriptor for a `GType`: a `guint64` marked so it resolves to `G_TYPE_GTYPE` rather than an integer. */\ntype TypeDescriptor = BigUint64Descriptor & {\n /** Distinguishes a GType from a plain `guint64` when the GLib type and the GValue type are resolved. */\n type: true;\n};\n\n/** How a boxed value is stored, and where its GType and free function are resolved from. */\ntype BoxedOptions = {\n /** The caller owns the storage the callee fills, so a decoded value is borrowed instead of copied. */\n isCallerAllocated?: boolean;\n /** The value is embedded in the containing struct rather than reached through a pointer. */\n isInline?: boolean;\n /** Whether a decoded value is owned by the caller; defaults to `\"borrowed\"`. */\n ownership?: Ownership;\n /** Library `getTypeFnName` and `freeFnName` are resolved in. */\n sharedLibrary?: string;\n /** Symbol returning the boxed GType, used when the type is not already registered under its name. */\n getTypeFnName?: string;\n /** Symbol that frees the value, for a boxed type with no GType of its own. */\n freeFnName?: string;\n /** Byte size of the value, needed to copy it into an inline field. */\n size?: number;\n /** Returns the wrapper class of the declared type, used when none is registered for the GType. */\n fallbackClass?: () => AnyClass;\n};\n\n/** Callback result, closure ownership, and lifetime options. */\ntype CallbackOptions = {\n /** The callee also takes a destroy notify, which frees the closure once it is done with it. */\n hasDestroy?: boolean;\n /** Signature of that destroy notify; defaults to `destroyNotify`, a one-argument `GDestroyNotify`. */\n destroyKind?: CallbackDescriptor[\"destroyKind\"];\n /** The callee also takes a `user_data` pointer; without one the closure can never be freed. */\n hasUserData?: boolean;\n /** Position of `user_data` among the callback's own arguments, dropped before the closure is called. */\n userDataIndex?: number;\n /** Converts a thrown value to the callback's trailing `GError**`. */\n canThrow?: boolean;\n /** Lifetime of the closure; defaults to `notified` when `hasDestroy` is set and `call` otherwise. */\n scope?: CallbackDescriptor[\"scope\"];\n};\n\n/** The lengths and strides a C array layout needs beyond its element type. */\ntype ArrayOptions = {\n /** Stride in bytes between elements stored inline in the array. */\n elementSize?: number | undefined;\n /** Position of the argument whose buffer a cursor array points into. */\n baseParamIndex?: number | undefined;\n /** Position of the argument carrying the element count, for a length-bounded array. */\n sizeParamIndex?: number | undefined;\n /** Element count of a fixed-length array. */\n fixedSize?: number | undefined;\n /** Whether the array carries raw bytes, and so decodes to a `Uint8Array` rather than to numbers. */\n isBytes?: boolean | undefined;\n /** Allocates and decodes caller-owned storage for a fixed-length out array. */\n isCallerAllocated?: boolean | undefined;\n /** Adds a zero element after the declared length. */\n isZeroTerminated?: boolean | undefined;\n};\n\n/** Where a cursor array's base buffer and total length come from. */\ntype CursorBounds = {\n /** Position of the argument holding the buffer the cursor points into. */\n baseParamIndex: number;\n /** Position of the argument carrying that buffer's element count. */\n sizeParamIndex: number;\n};\n\n/** How a ref-counted fundamental value is named, wrapped and stored. */\ntype FundamentalOptions = {\n /** Whether a decoded value is owned by the caller; defaults to `\"borrowed\"`. */\n ownership?: Ownership;\n /** GLib type name the wrapper class is looked up by. */\n typeName?: string;\n /** Class a decoded value is wrapped in, instead of the one registered for `typeName`. */\n wrapperClass?: AnyClass;\n /** Returns the wrapper class of the declared type, used when none is registered for the value's type. */\n fallbackClass?: () => AnyClass;\n /** The caller owns the storage the callee fills, so a decoded value is borrowed instead of acquired. */\n isCallerAllocated?: boolean;\n /** The value is embedded in the containing struct rather than reached through a pointer. */\n isInline?: boolean;\n};\n\ntype FundamentalLifecycle = {\n sharedLibrary: string;\n refFnName: string;\n unrefFnName: string;\n};\n\n/** How a plain C struct is stored and wrapped. */\ntype StructOptions = {\n /** The caller owns the storage the callee fills, so a decoded value is borrowed instead of copied. */\n isCallerAllocated?: boolean;\n /** The value is embedded in the containing struct rather than reached through a pointer. */\n isInline?: boolean;\n /** Byte size of the struct, needed to copy it rather than borrow the pointer. */\n size?: number;\n /** Class a decoded value is wrapped in, instead of the one registered for its GType. */\n wrapperClass?: AnyClass;\n /** Library the struct's declared copy and free functions are resolved from; without it neither is used. */\n sharedLibrary?: string;\n /** Function duplicating an instance, used instead of a byte copy when the struct declares one. */\n copyFnName?: string;\n /** Function releasing an instance, used instead of `g_free` when the struct declares one. */\n freeFnName?: string;\n};\n\n/** Descriptor for a `gint8`, marshalled as a number. */\nconst int8T: Int8Descriptor = { kind: \"int8\" };\n/** Descriptor for a `guint8`, marshalled as a number. */\nconst uint8T: Uint8Descriptor = { kind: \"uint8\" };\n/** Descriptor for a `gint16`, marshalled as a number. */\nconst int16T: Int16Descriptor = { kind: \"int16\" };\n/** Descriptor for a `guint16`, marshalled as a number. */\nconst uint16T: Uint16Descriptor = { kind: \"uint16\" };\n/** Descriptor for a `gint32`, marshalled as a number. */\nconst int32T: Int32Descriptor = { kind: \"int32\" };\n/** Descriptor for a `guint32`, marshalled as a number. */\nconst uint32T: Uint32Descriptor = { kind: \"uint32\" };\n/** Descriptor for a `gint64`, marshalled as a number and rejected outside the 2^53 safe range. */\nconst int64T: Int64Descriptor = { kind: \"int64\" };\n/** Descriptor for a `guint64`, marshalled as a number and rejected outside the 2^53 safe range. */\nconst uint64T: Uint64Descriptor = { kind: \"uint64\" };\n/** Descriptor for a `gint64`, marshalled as a bigint so the full 64-bit range survives. */\nconst bigint64T: BigInt64Descriptor = { kind: \"bigint64\" };\n/** Descriptor for a `guint64`, marshalled as a bigint so the full 64-bit range survives. */\nconst biguint64T: BigUint64Descriptor = { kind: \"biguint64\" };\n/** Descriptor for a `GType`, marshalled as a bigint and recognized as a GType by GValue conversion. */\nconst gtypeT: TypeDescriptor = { kind: \"biguint64\", type: true };\n/** Descriptor for a `gfloat`. */\nconst float32T: Float32Descriptor = { kind: \"float32\" };\n/** Descriptor for a `gdouble`. */\nconst float64T: Float64Descriptor = { kind: \"float64\" };\n/** Descriptor for a `gboolean`, marshalled as a JavaScript boolean. */\nconst booleanT: BooleanDescriptor = { kind: \"boolean\" };\n/** Descriptor for the absence of a value, used as the return descriptor of a `void` function. */\nconst voidT: VoidDescriptor = { kind: \"void\" };\n/** Descriptor for a `gunichar`, marshalled as a single-character string or a codepoint number. */\nconst unicharT: UnicharDescriptor = { kind: \"unichar\" };\n/** Descriptor for an opaque `gpointer`, taken from a typed array's memory or a numeric address. */\nconst bufferT: BufferDescriptor = { kind: \"buffer\" };\nconst fundamentalLifecycles: Map<string, FundamentalLifecycle> = new Map();\n\nconst isGtypeDescriptor = (descriptor: Descriptor): descriptor is TypeDescriptor =>\n descriptor.kind === \"biguint64\" && \"type\" in descriptor;\n\n/** Builds a C-string descriptor, including optional buffer length and record-owned storage. */\nconst stringT = (\n ownership: Ownership = \"borrowed\",\n length?: number,\n hasOwnedStorage?: boolean,\n): StringDescriptor => {\n const result: StringDescriptor = { kind: \"string\", ownership };\n\n if (length !== undefined) {\n result.length = length;\n }\n\n if (hasOwnedStorage === true) {\n result.hasOwnedStorage = true;\n }\n\n return result;\n};\n\n/** Builds a runtime-typed `GObject` descriptor with an optional retained fallback class. */\nconst objectT = (\n ownership: Ownership = \"borrowed\",\n fallbackClass?: () => AnyClass,\n typeName?: string,\n): ObjectDescriptor => {\n const result: ObjectDescriptor = { kind: \"object\", ownership };\n\n if (fallbackClass !== undefined) {\n result.fallbackClass = fallbackClass;\n }\n\n if (typeName !== undefined) {\n result.typeName = typeName;\n }\n\n return result;\n};\n\n/** Wraps a descriptor in a pointer to it, for an output or inout argument. */\nconst refT = (innerDescriptor: Descriptor, isInout = false): RefDescriptor =>\n isInout ? { kind: \"ref\", innerDescriptor, inout: true } : { kind: \"ref\", innerDescriptor };\n\n/** Builds a descriptor for a `GHashTable`, marshalled as an array of key/value pairs. */\nconst hashTableT = (\n keyDescriptor: Descriptor,\n valueDescriptor: Descriptor,\n ownership: Ownership = \"borrowed\",\n): HashTableDescriptor => ({\n kind: \"hashtable\",\n keyDescriptor,\n valueDescriptor,\n ownership,\n});\n\n/** Builds an enum descriptor from a GType function or an explicit set of members. */\nconst enumT = (\n sharedLibrary: string,\n typeFnName: string,\n isSigned: boolean,\n members?: number[],\n): EnumDescriptor => {\n const result: EnumDescriptor = {\n kind: \"enum\",\n sharedLibrary,\n getTypeFnName: typeFnName,\n isSigned,\n };\n\n if (members !== undefined) {\n result.members = members;\n }\n\n return result;\n};\n\n/** Builds a flags descriptor from a GType function or an explicit bit mask. */\nconst flagsT = (sharedLibrary: string, typeFnName: string, isSigned: boolean, mask?: number): FlagsDescriptor => {\n const result: FlagsDescriptor = {\n kind: \"flags\",\n sharedLibrary,\n getTypeFnName: typeFnName,\n isSigned,\n };\n\n if (mask !== undefined) {\n result.mask = mask;\n }\n\n return result;\n};\n\nconst applyBoxedNames = (result: BoxedDescriptor, options: BoxedOptions): void => {\n if (options.sharedLibrary !== undefined) {\n result.sharedLibrary = options.sharedLibrary;\n }\n\n if (options.getTypeFnName !== undefined) {\n result.getTypeFnName = options.getTypeFnName;\n }\n\n if (options.freeFnName !== undefined) {\n result.freeFnName = options.freeFnName;\n }\n};\n\nconst applyBoxedOptions = (result: BoxedDescriptor, options: BoxedOptions): void => {\n applyBoxedNames(result, options);\n\n if (options.fallbackClass !== undefined) {\n result.fallbackClass = options.fallbackClass;\n }\n\n if (options.isCallerAllocated) {\n result.isCallerAllocated = true;\n }\n\n if (options.isInline) {\n result.isInline = true;\n }\n\n if (options.size !== undefined) {\n result.size = options.size;\n }\n};\n\n/** Builds a descriptor for a `GBoxed` value of the named type. */\nconst boxedT = (typeName: string, options: BoxedOptions = {}): BoxedDescriptor => {\n const result: BoxedDescriptor = {\n kind: \"boxed\",\n ownership: options.ownership ?? \"borrowed\",\n typeName,\n };\n\n applyBoxedOptions(result, options);\n\n return result;\n};\n\nconst applyStructLifecycle = (result: StructDescriptor, options: StructOptions): void => {\n if (options.sharedLibrary === undefined) {\n return;\n }\n\n result.sharedLibrary = options.sharedLibrary;\n\n if (options.copyFnName !== undefined) {\n result.copyFnName = options.copyFnName;\n }\n\n if (options.freeFnName !== undefined) {\n result.freeFnName = options.freeFnName;\n }\n};\n\n/** Builds a descriptor for a plain C struct. */\nconst structT = (ownership: Ownership = \"borrowed\", options: StructOptions = {}): StructDescriptor => {\n const result: StructDescriptor = { kind: \"struct\", ownership };\n\n if (options.size !== undefined) {\n result.size = options.size;\n }\n\n if (options.wrapperClass !== undefined) {\n result.wrapperClass = options.wrapperClass;\n }\n\n if (options.isCallerAllocated) {\n result.isCallerAllocated = true;\n }\n\n if (options.isInline) {\n result.isInline = true;\n }\n\n applyStructLifecycle(result, options);\n\n return result;\n};\n\nconst recordFundamentalLifecycle = (typeName: string, lifecycle: FundamentalLifecycle): void => {\n if (!fundamentalLifecycles.has(typeName)) {\n fundamentalLifecycles.set(typeName, lifecycle);\n }\n};\n\nconst fundamentalLifecycleFor = (typeName: string): FundamentalLifecycle | undefined =>\n fundamentalLifecycles.get(typeName);\n\nconst applyFundamentalClasses = (result: FundamentalDescriptor, options: FundamentalOptions): void => {\n if (options.wrapperClass !== undefined) {\n result.wrapperClass = options.wrapperClass;\n }\n\n if (options.fallbackClass !== undefined) {\n result.fallbackClass = options.fallbackClass;\n }\n};\n\n/** Builds a descriptor for a fundamental type whose lifetime is managed by named ref and unref functions. */\nconst fundamentalT = (\n sharedLibrary: string,\n refFnName: string,\n unrefFnName: string,\n options: FundamentalOptions = {},\n): FundamentalDescriptor => {\n const ownership = options.ownership ?? \"borrowed\";\n const result: FundamentalDescriptor = { kind: \"fundamental\", ownership, sharedLibrary, refFnName, unrefFnName };\n\n if (options.typeName !== undefined) {\n result.typeName = options.typeName;\n recordFundamentalLifecycle(options.typeName, { sharedLibrary, refFnName, unrefFnName });\n }\n\n applyFundamentalClasses(result, options);\n\n if (options.isCallerAllocated) {\n result.isCallerAllocated = true;\n }\n\n if (options.isInline) {\n result.isInline = true;\n }\n\n return result;\n};\n\nconst applyArrayBounds = (result: ArrayDescriptor, options: ArrayOptions): void => {\n if (options.baseParamIndex !== undefined) {\n result.baseParamIndex = options.baseParamIndex;\n }\n\n if (options.sizeParamIndex !== undefined) {\n result.sizeParamIndex = options.sizeParamIndex;\n }\n\n if (options.fixedSize !== undefined) {\n result.fixedSize = options.fixedSize;\n }\n};\n\n/** Builds a descriptor for an array of items in one of the supported container layouts. */\nconst arrayT = (\n itemDescriptor: Descriptor,\n arrayKind: ArrayKind = \"array\",\n ownership: Ownership = \"borrowed\",\n options?: ArrayOptions,\n): ArrayDescriptor => {\n const result: ArrayDescriptor = { kind: \"array\", itemDescriptor, arrayKind, ownership };\n\n if (options === undefined) {\n return result;\n }\n\n applyArrayBounds(result, options);\n\n if (options.elementSize !== undefined) {\n result.elementSize = options.elementSize;\n }\n\n if (options.isBytes === true) {\n result.isBytes = true;\n }\n\n if (options.isCallerAllocated === true) {\n result.isCallerAllocated = true;\n }\n\n if (options.isZeroTerminated === true) {\n result.isZeroTerminated = true;\n }\n\n return result;\n};\n\n/** Builds a descriptor for a `GList` of items. */\nconst listT = (\n itemDescriptor: Descriptor,\n ownership: Ownership = \"borrowed\",\n options: ArrayOptions = {},\n): ArrayDescriptor => arrayT(itemDescriptor, \"glist\", ownership, options);\n\n/** Builds a descriptor for a `GSList` of items. */\nconst slistT = (\n itemDescriptor: Descriptor,\n ownership: Ownership = \"borrowed\",\n options: ArrayOptions = {},\n): ArrayDescriptor => arrayT(itemDescriptor, \"gslist\", ownership, options);\n\n/** Builds a descriptor for a `GPtrArray` of items. */\nconst ptrArrayT = (\n itemDescriptor: Descriptor,\n ownership: Ownership = \"borrowed\",\n options: ArrayOptions = {},\n): ArrayDescriptor => arrayT(itemDescriptor, \"gptrarray\", ownership, options);\n\n/** Builds a descriptor for a `GArray` of items. */\nconst gArrayT = (\n itemDescriptor: Descriptor,\n ownership: Ownership = \"borrowed\",\n options: ArrayOptions = {},\n): ArrayDescriptor => arrayT(itemDescriptor, \"garray\", ownership, options);\n\n/** Builds a descriptor for a `GByteArray`. */\nconst byteArrayT = (ownership: Ownership = \"borrowed\"): ArrayDescriptor =>\n arrayT(uint8T, \"gbytearray\", ownership, { isBytes: true });\n\n/** Builds a descriptor for a C array whose length is carried by another argument. */\nconst sizedArrayT = (\n itemDescriptor: Descriptor,\n sizeParamIndex: number,\n ownership: Ownership = \"borrowed\",\n options: ArrayOptions = {},\n): ArrayDescriptor => arrayT(itemDescriptor, \"sized\", ownership, { ...options, sizeParamIndex });\n\n/** Builds an out-array cursor into another argument's buffer. */\nconst cursorArrayT = (\n itemDescriptor: Descriptor,\n bounds: CursorBounds,\n ownership: Ownership = \"borrowed\",\n options: ArrayOptions = {},\n): ArrayDescriptor => arrayT(itemDescriptor, \"cursor\", ownership, { ...options, ...bounds });\n\n/** Builds a descriptor for a C array of a fixed length. */\nconst fixedArrayT = (\n itemDescriptor: Descriptor,\n fixedSize: number,\n ownership: Ownership = \"borrowed\",\n options: ArrayOptions = {},\n): ArrayDescriptor => arrayT(itemDescriptor, \"fixed\", ownership, { ...options, fixedSize });\n\nconst applyClosureLifetimeOptions = (result: CallbackDescriptor, options: CallbackOptions): void => {\n if (options.hasDestroy !== undefined) {\n result.hasDestroy = options.hasDestroy;\n }\n\n if (options.destroyKind !== undefined) {\n result.destroyKind = options.destroyKind;\n }\n\n if (options.scope !== undefined) {\n result.scope = options.scope;\n }\n};\n\nconst applyClosureOptions = (result: CallbackDescriptor, options: CallbackOptions): void => {\n applyClosureLifetimeOptions(result, options);\n\n if (options.hasUserData !== undefined) {\n result.hasUserData = options.hasUserData;\n }\n\n if (options.userDataIndex !== undefined) {\n result.userDataIndex = options.userDataIndex;\n }\n\n if (options.canThrow !== undefined) {\n result.canThrow = options.canThrow;\n }\n};\n\n/** Builds a descriptor for a function pointer, marshalling a JavaScript function into a native closure. */\nconst callbackT = (\n argDescriptors: Descriptor[],\n returnDescriptor: Descriptor,\n options?: CallbackOptions,\n): CallbackDescriptor => {\n const result: CallbackDescriptor = { kind: \"callback\", argDescriptors, returnDescriptor };\n\n if (options === undefined) {\n return result;\n }\n\n applyClosureOptions(result, options);\n\n return result;\n};\n\nexport {\n int8T,\n uint8T,\n int16T,\n uint16T,\n int32T,\n uint32T,\n int64T,\n uint64T,\n bigint64T,\n biguint64T,\n gtypeT,\n isGtypeDescriptor,\n float32T,\n float64T,\n booleanT,\n voidT,\n unicharT,\n bufferT,\n stringT,\n objectT,\n refT,\n hashTableT,\n enumT,\n flagsT,\n boxedT,\n structT,\n fundamentalLifecycleFor,\n fundamentalT,\n arrayT,\n listT,\n slistT,\n ptrArrayT,\n gArrayT,\n byteArrayT,\n sizedArrayT,\n fixedArrayT,\n cursorArrayT,\n callbackT,\n type BoxedDescriptor,\n type ObjectDescriptor,\n type StructDescriptor,\n type FundamentalDescriptor,\n type ArrayDescriptor,\n type HashTableDescriptor,\n type CallbackDescriptor,\n type RefDescriptor,\n};\n"]}
1
+ {"version":3,"file":"descriptors.js","sourceRoot":"","sources":["../src/descriptors.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ArrayKind, Descriptor, Ownership } from \"@gtkx/native\";\nimport type { AnyClass } from \"@gtkx/utils\";\n\n/** Descriptor variant for a `gint8`. */\ntype Int8Descriptor = Extract<Descriptor, { kind: \"int8\" }>;\n/** Descriptor variant for a `guint8`. */\ntype Uint8Descriptor = Extract<Descriptor, { kind: \"uint8\" }>;\n/** Descriptor variant for a `gint16`. */\ntype Int16Descriptor = Extract<Descriptor, { kind: \"int16\" }>;\n/** Descriptor variant for a `guint16`. */\ntype Uint16Descriptor = Extract<Descriptor, { kind: \"uint16\" }>;\n/** Descriptor variant for a `gint32`. */\ntype Int32Descriptor = Extract<Descriptor, { kind: \"int32\" }>;\n/** Descriptor variant for a `guint32`. */\ntype Uint32Descriptor = Extract<Descriptor, { kind: \"uint32\" }>;\n/** Descriptor variant for a `gint64` marshalled as a number. */\ntype Int64Descriptor = Extract<Descriptor, { kind: \"int64\" }>;\n/** Descriptor variant for a `guint64` marshalled as a number. */\ntype Uint64Descriptor = Extract<Descriptor, { kind: \"uint64\" }>;\n/** Descriptor variant for a `gint64` marshalled as a bigint. */\ntype BigInt64Descriptor = Extract<Descriptor, { kind: \"bigint64\" }>;\n/** Descriptor variant for a `guint64` marshalled as a bigint. */\ntype BigUint64Descriptor = Extract<Descriptor, { kind: \"biguint64\" }>;\n/** Descriptor variant for a `gfloat`. */\ntype Float32Descriptor = Extract<Descriptor, { kind: \"float32\" }>;\n/** Descriptor variant for a `gdouble`. */\ntype Float64Descriptor = Extract<Descriptor, { kind: \"float64\" }>;\n/** Descriptor variant for an enumeration, carrying the library and `get_type` symbol its GType comes from. */\ntype EnumDescriptor = Extract<Descriptor, { kind: \"enum\" }>;\n/** Descriptor variant for a flags type, carrying the library and `get_type` symbol its GType comes from. */\ntype FlagsDescriptor = Extract<Descriptor, { kind: \"flags\" }>;\n/** Descriptor variant for a `gboolean`. */\ntype BooleanDescriptor = Extract<Descriptor, { kind: \"boolean\" }>;\n/** Descriptor variant for a C string. */\ntype StringDescriptor = Extract<Descriptor, { kind: \"string\" }>;\n\n/** Descriptor variant for a `GObject`, extended with the statically declared type of its value. */\ntype ObjectDescriptor = Extract<Descriptor, { kind: \"object\" }> & {\n /** Retains and supplies the declared wrapper when no more-derived wrapper is registered. */\n fallbackClass?: () => AnyClass;\n};\n\n/** Descriptor variant for a `gunichar`. */\ntype UnicharDescriptor = Extract<Descriptor, { kind: \"unichar\" }>;\n/** Descriptor variant for the absence of a value. */\ntype VoidDescriptor = Extract<Descriptor, { kind: \"void\" }>;\n/** Descriptor variant for an opaque `gpointer`. */\ntype BufferDescriptor = Extract<Descriptor, { kind: \"buffer\" }>;\n\n/** Descriptor variant for a `GBoxed` value, extended with the statically declared type of its value. */\ntype BoxedDescriptor = Extract<Descriptor, { kind: \"boxed\" }> & {\n /** Retains and supplies the declared wrapper when none is registered. */\n fallbackClass?: () => AnyClass;\n};\n\n/** Descriptor variant for a plain C struct, extended with the class its decoded value is wrapped in. */\ntype StructDescriptor = Extract<Descriptor, { kind: \"struct\" }> & {\n /** Class a decoded value is wrapped in; without it the wrapper comes from the value's own GType. */\n wrapperClass?: AnyClass;\n};\n\n/** Descriptor variant for a ref-counted fundamental type, extended with the class its decoded value is wrapped in. */\ntype FundamentalDescriptor = Extract<Descriptor, { kind: \"fundamental\" }> & {\n /** Class a decoded value is wrapped in; without it the wrapper comes from the type named by `typeName`. */\n wrapperClass?: AnyClass;\n /** Retains and supplies the declared wrapper after checking the runtime-type registry. */\n fallbackClass?: () => AnyClass;\n};\n\n/** Descriptor variant for an array of items in one of the supported container layouts. */\ntype ArrayDescriptor = Extract<Descriptor, { kind: \"array\" }>;\n/** Descriptor variant for a `GHashTable`, marshalled as an array of key/value pairs. */\ntype HashTableDescriptor = Extract<Descriptor, { kind: \"hashtable\" }>;\n/** Descriptor variant for a function pointer a JavaScript function is marshalled into. */\ntype CallbackDescriptor = Extract<Descriptor, { kind: \"callback\" }>;\n/** Descriptor variant for a pointer to another descriptor's value, for an output or inout argument. */\ntype RefDescriptor = Extract<Descriptor, { kind: \"ref\" }>;\n\n/** Descriptor for a `GType`: a `guint64` marked so it resolves to `G_TYPE_GTYPE` rather than an integer. */\ntype TypeDescriptor = BigUint64Descriptor & {\n /** Distinguishes a GType from a plain `guint64` when the GLib type and the GValue type are resolved. */\n type: true;\n};\n\n/** How a boxed value is stored, and where its GType and free function are resolved from. */\ntype BoxedOptions = {\n /** The caller owns the storage the callee fills, so a decoded value is borrowed instead of copied. */\n isCallerAllocated?: boolean;\n /** The value is embedded in the containing struct rather than reached through a pointer. */\n isInline?: boolean;\n /** Whether a decoded value is owned by the caller; defaults to `\"borrowed\"`. */\n ownership?: Ownership;\n /** Library `getTypeFnName` and `freeFnName` are resolved in. */\n sharedLibrary?: string;\n /** Symbol returning the boxed GType, used when the type is not already registered under its name. */\n getTypeFnName?: string;\n /** Symbol that frees the value, for a boxed type with no GType of its own. */\n freeFnName?: string;\n /** Byte size of the value, needed to copy it into an inline field. */\n size?: number;\n /** Returns the wrapper class of the declared type, used when none is registered for the GType. */\n fallbackClass?: () => AnyClass;\n};\n\n/** Callback result, closure ownership, and lifetime options. */\ntype CallbackOptions = {\n /** The callee also takes a destroy notify, which frees the closure once it is done with it. */\n hasDestroy?: boolean;\n /** Signature of that destroy notify; defaults to `destroyNotify`, a one-argument `GDestroyNotify`. */\n destroyKind?: CallbackDescriptor[\"destroyKind\"];\n /** The callee also takes a `user_data` pointer; without one the closure can never be freed. */\n hasUserData?: boolean;\n /** Position of `user_data` among the callback's own arguments, dropped before the closure is called. */\n userDataIndex?: number;\n /** Converts a thrown value to the callback's trailing `GError**`. */\n canThrow?: boolean;\n /** Lifetime of the closure; defaults to `notified` when `hasDestroy` is set and `call` otherwise. */\n scope?: CallbackDescriptor[\"scope\"];\n};\n\n/** The lengths and strides a C array layout needs beyond its element type. */\ntype ArrayOptions = {\n /** Stride in bytes between elements stored inline in the array. */\n elementSize?: number | undefined;\n /** Position of the argument whose buffer a cursor array points into. */\n baseParamIndex?: number | undefined;\n /** Position of the argument carrying the element count, for a length-bounded array. */\n sizeParamIndex?: number | undefined;\n /** Element count of a fixed-length array. */\n fixedSize?: number | undefined;\n /** Whether the array carries raw bytes, and so decodes to a `Uint8Array` rather than to numbers. */\n isBytes?: boolean | undefined;\n /** Allocates and decodes caller-owned storage for a fixed-length out array. */\n isCallerAllocated?: boolean | undefined;\n /** Adds a zero element after the declared length. */\n isZeroTerminated?: boolean | undefined;\n};\n\n/** Where a cursor array's base buffer and total length come from. */\ntype CursorBounds = {\n /** Position of the argument holding the buffer the cursor points into. */\n baseParamIndex: number;\n /** Position of the argument carrying that buffer's element count. */\n sizeParamIndex: number;\n};\n\n/** How a ref-counted fundamental value is named, wrapped and stored. */\ntype FundamentalOptions = {\n /** Whether a decoded value is owned by the caller; defaults to `\"borrowed\"`. */\n ownership?: Ownership;\n /** GLib type name the wrapper class is looked up by. */\n typeName?: string;\n /** Class a decoded value is wrapped in, instead of the one registered for `typeName`. */\n wrapperClass?: AnyClass;\n /** Returns the wrapper class of the declared type, used when none is registered for the value's type. */\n fallbackClass?: () => AnyClass;\n /** The caller owns the storage the callee fills, so a decoded value is borrowed instead of acquired. */\n isCallerAllocated?: boolean;\n /** The value is embedded in the containing struct rather than reached through a pointer. */\n isInline?: boolean;\n};\n\ntype FundamentalLifecycle = {\n sharedLibrary: string;\n refFnName: string;\n unrefFnName: string;\n};\n\n/** How a plain C struct is stored and wrapped. */\ntype StructOptions = {\n /** The caller owns the storage the callee fills, so a decoded value is borrowed instead of copied. */\n isCallerAllocated?: boolean;\n /** The value is embedded in the containing struct rather than reached through a pointer. */\n isInline?: boolean;\n /** Byte size of the struct, needed to copy it rather than borrow the pointer. */\n size?: number;\n /** Class a decoded value is wrapped in, instead of the one registered for its GType. */\n wrapperClass?: AnyClass;\n /** Library the struct's declared copy and free functions are resolved from; without it neither is used. */\n sharedLibrary?: string;\n /** Function duplicating an instance, used instead of a byte copy when the struct declares one. */\n copyFnName?: string;\n /** Function releasing an instance, used instead of `g_free` when the struct declares one. */\n freeFnName?: string;\n};\n\n/** Descriptor for a `gint8`, marshalled as a number. */\nconst int8T: Int8Descriptor = { kind: \"int8\" };\n/** Descriptor for a `guint8`, marshalled as a number. */\nconst uint8T: Uint8Descriptor = { kind: \"uint8\" };\n/** Descriptor for a `gint16`, marshalled as a number. */\nconst int16T: Int16Descriptor = { kind: \"int16\" };\n/** Descriptor for a `guint16`, marshalled as a number. */\nconst uint16T: Uint16Descriptor = { kind: \"uint16\" };\n/** Descriptor for a `gint32`, marshalled as a number. */\nconst int32T: Int32Descriptor = { kind: \"int32\" };\n/** Descriptor for a `guint32`, marshalled as a number. */\nconst uint32T: Uint32Descriptor = { kind: \"uint32\" };\n/** Descriptor for a `gint64`, marshalled as a number and rejected outside the 2^53 safe range. */\nconst int64T: Int64Descriptor = { kind: \"int64\" };\n/** Descriptor for a `guint64`, marshalled as a number and rejected outside the 2^53 safe range. */\nconst uint64T: Uint64Descriptor = { kind: \"uint64\" };\n/** Descriptor for a `gint64`, marshalled as a bigint so the full 64-bit range survives. */\nconst bigint64T: BigInt64Descriptor = { kind: \"bigint64\" };\n/** Descriptor for a `guint64`, marshalled as a bigint so the full 64-bit range survives. */\nconst biguint64T: BigUint64Descriptor = { kind: \"biguint64\" };\n/** Descriptor for a `GType`, marshalled as a bigint and recognized as a GType by GValue conversion. */\nconst gtypeT: TypeDescriptor = { kind: \"biguint64\", type: true };\n/** Descriptor for a `gfloat`. */\nconst float32T: Float32Descriptor = { kind: \"float32\" };\n/** Descriptor for a `gdouble`. */\nconst float64T: Float64Descriptor = { kind: \"float64\" };\n/** Descriptor for a `gboolean`, marshalled as a JavaScript boolean. */\nconst booleanT: BooleanDescriptor = { kind: \"boolean\" };\n/** Descriptor for the absence of a value, used as the return descriptor of a `void` function. */\nconst voidT: VoidDescriptor = { kind: \"void\" };\n/** Descriptor for a `gunichar`, marshalled as a single-character string or a codepoint number. */\nconst unicharT: UnicharDescriptor = { kind: \"unichar\" };\n/** Descriptor for an opaque `gpointer`, taken from a typed array's memory or a numeric address. */\nconst bufferT: BufferDescriptor = { kind: \"buffer\" };\nconst fundamentalLifecycles: Map<string, FundamentalLifecycle> = new Map();\n\nconst isGtypeDescriptor = (descriptor: Descriptor): descriptor is TypeDescriptor =>\n descriptor.kind === \"biguint64\" && \"type\" in descriptor;\n\n/** Builds a C-string descriptor, including optional buffer length and record-owned storage. */\nconst stringT = (\n ownership: Ownership = \"borrowed\",\n length?: number,\n hasOwnedStorage?: boolean,\n): StringDescriptor => {\n const result: StringDescriptor = { kind: \"string\", ownership };\n\n if (length !== undefined) {\n result.length = length;\n }\n\n if (hasOwnedStorage === true) {\n result.hasOwnedStorage = true;\n }\n\n return result;\n};\n\n/** Builds a runtime-typed `GObject` descriptor with an optional retained fallback class. */\nconst objectT = (\n ownership: Ownership = \"borrowed\",\n fallbackClass?: () => AnyClass,\n typeName?: string,\n): ObjectDescriptor => {\n const result: ObjectDescriptor = { kind: \"object\", ownership };\n\n if (fallbackClass !== undefined) {\n result.fallbackClass = fallbackClass;\n }\n\n if (typeName !== undefined) {\n result.typeName = typeName;\n }\n\n return result;\n};\n\n/** Wraps a descriptor in a pointer to it, for an output or inout argument. */\nconst refT = (innerDescriptor: Descriptor, isInout = false): RefDescriptor =>\n isInout ? { kind: \"ref\", innerDescriptor, inout: true } : { kind: \"ref\", innerDescriptor };\n\n/** Builds a descriptor for a `GHashTable`, marshalled as an array of key/value pairs. */\nconst hashTableT = (\n keyDescriptor: Descriptor,\n valueDescriptor: Descriptor,\n ownership: Ownership = \"borrowed\",\n): HashTableDescriptor => ({\n kind: \"hashtable\",\n keyDescriptor,\n valueDescriptor,\n ownership,\n});\n\n/** Builds an enum descriptor from a GType function or an explicit set of members. */\nconst enumT = (\n sharedLibrary: string,\n typeFnName: string,\n isSigned: boolean,\n members?: number[],\n): EnumDescriptor => {\n const result: EnumDescriptor = {\n kind: \"enum\",\n sharedLibrary,\n getTypeFnName: typeFnName,\n isSigned,\n };\n\n if (members !== undefined) {\n result.members = members;\n }\n\n return result;\n};\n\n/** Builds a flags descriptor from a GType function or an explicit bit mask. */\nconst flagsT = (sharedLibrary: string, typeFnName: string, isSigned: boolean, mask?: number): FlagsDescriptor => {\n const result: FlagsDescriptor = {\n kind: \"flags\",\n sharedLibrary,\n getTypeFnName: typeFnName,\n isSigned,\n };\n\n if (mask !== undefined) {\n result.mask = mask;\n }\n\n return result;\n};\n\nconst applyBoxedNames = (result: BoxedDescriptor, options: BoxedOptions): void => {\n if (options.sharedLibrary !== undefined) {\n result.sharedLibrary = options.sharedLibrary;\n }\n\n if (options.getTypeFnName !== undefined) {\n result.getTypeFnName = options.getTypeFnName;\n }\n\n if (options.freeFnName !== undefined) {\n result.freeFnName = options.freeFnName;\n }\n};\n\nconst applyBoxedOptions = (result: BoxedDescriptor, options: BoxedOptions): void => {\n applyBoxedNames(result, options);\n\n if (options.fallbackClass !== undefined) {\n result.fallbackClass = options.fallbackClass;\n }\n\n if (options.isCallerAllocated) {\n result.isCallerAllocated = true;\n }\n\n if (options.isInline) {\n result.isInline = true;\n }\n\n if (options.size !== undefined) {\n result.size = options.size;\n }\n};\n\n/** Builds a descriptor for a `GBoxed` value of the named type. */\nconst boxedT = (typeName: string, options: BoxedOptions = {}): BoxedDescriptor => {\n const result: BoxedDescriptor = {\n kind: \"boxed\",\n ownership: options.ownership ?? \"borrowed\",\n typeName,\n };\n\n applyBoxedOptions(result, options);\n\n return result;\n};\n\nconst applyStructLifecycle = (result: StructDescriptor, options: StructOptions): void => {\n if (options.sharedLibrary === undefined) {\n return;\n }\n\n result.sharedLibrary = options.sharedLibrary;\n\n if (options.copyFnName !== undefined) {\n result.copyFnName = options.copyFnName;\n }\n\n if (options.freeFnName !== undefined) {\n result.freeFnName = options.freeFnName;\n }\n};\n\n/** Builds a descriptor for a plain C struct. */\nconst structT = (ownership: Ownership = \"borrowed\", options: StructOptions = {}): StructDescriptor => {\n const result: StructDescriptor = { kind: \"struct\", ownership };\n\n if (options.size !== undefined) {\n result.size = options.size;\n }\n\n if (options.wrapperClass !== undefined) {\n result.wrapperClass = options.wrapperClass;\n }\n\n if (options.isCallerAllocated) {\n result.isCallerAllocated = true;\n }\n\n if (options.isInline) {\n result.isInline = true;\n }\n\n applyStructLifecycle(result, options);\n\n return result;\n};\n\nconst recordFundamentalLifecycle = (typeName: string, lifecycle: FundamentalLifecycle): void => {\n if (!fundamentalLifecycles.has(typeName)) {\n fundamentalLifecycles.set(typeName, lifecycle);\n }\n};\n\nconst fundamentalLifecycleFor = (typeName: string): FundamentalLifecycle | undefined =>\n fundamentalLifecycles.get(typeName);\n\nconst applyFundamentalClasses = (result: FundamentalDescriptor, options: FundamentalOptions): void => {\n if (options.wrapperClass !== undefined) {\n result.wrapperClass = options.wrapperClass;\n }\n\n if (options.fallbackClass !== undefined) {\n result.fallbackClass = options.fallbackClass;\n }\n};\n\n/** Builds a descriptor for a fundamental type whose lifetime is managed by named ref and unref functions. */\nconst fundamentalT = (\n sharedLibrary: string,\n refFnName: string,\n unrefFnName: string,\n options: FundamentalOptions = {},\n): FundamentalDescriptor => {\n const ownership = options.ownership ?? \"borrowed\";\n const result: FundamentalDescriptor = { kind: \"fundamental\", ownership, sharedLibrary, refFnName, unrefFnName };\n\n if (options.typeName !== undefined) {\n result.typeName = options.typeName;\n recordFundamentalLifecycle(options.typeName, { sharedLibrary, refFnName, unrefFnName });\n }\n\n applyFundamentalClasses(result, options);\n\n if (options.isCallerAllocated) {\n result.isCallerAllocated = true;\n }\n\n if (options.isInline) {\n result.isInline = true;\n }\n\n return result;\n};\n\nconst applyArrayBounds = (result: ArrayDescriptor, options: ArrayOptions): void => {\n if (options.baseParamIndex !== undefined) {\n result.baseParamIndex = options.baseParamIndex;\n }\n\n if (options.sizeParamIndex !== undefined) {\n result.sizeParamIndex = options.sizeParamIndex;\n }\n\n if (options.fixedSize !== undefined) {\n result.fixedSize = options.fixedSize;\n }\n};\n\n/** Builds a descriptor for an array of items in one of the supported container layouts. */\nconst arrayT = (\n itemDescriptor: Descriptor,\n arrayKind: ArrayKind = \"array\",\n ownership: Ownership = \"borrowed\",\n options?: ArrayOptions,\n): ArrayDescriptor => {\n const result: ArrayDescriptor = { kind: \"array\", itemDescriptor, arrayKind, ownership };\n\n if (options === undefined) {\n return result;\n }\n\n applyArrayBounds(result, options);\n\n if (options.elementSize !== undefined) {\n result.elementSize = options.elementSize;\n }\n\n if (options.isBytes === true) {\n result.isBytes = true;\n }\n\n if (options.isCallerAllocated === true) {\n result.isCallerAllocated = true;\n }\n\n if (options.isZeroTerminated === true) {\n result.isZeroTerminated = true;\n }\n\n return result;\n};\n\nconst preserveArrayNull = (descriptor: ArrayDescriptor): ArrayDescriptor => {\n Reflect.set(descriptor, \"preserveNull\", true);\n\n return descriptor;\n};\n\n/** Builds a descriptor for a `GList` of items. */\nconst listT = (\n itemDescriptor: Descriptor,\n ownership: Ownership = \"borrowed\",\n options: ArrayOptions = {},\n): ArrayDescriptor => arrayT(itemDescriptor, \"glist\", ownership, options);\n\n/** Builds a descriptor for a `GSList` of items. */\nconst slistT = (\n itemDescriptor: Descriptor,\n ownership: Ownership = \"borrowed\",\n options: ArrayOptions = {},\n): ArrayDescriptor => arrayT(itemDescriptor, \"gslist\", ownership, options);\n\n/** Builds a descriptor for a `GPtrArray` of items. */\nconst ptrArrayT = (\n itemDescriptor: Descriptor,\n ownership: Ownership = \"borrowed\",\n options: ArrayOptions = {},\n): ArrayDescriptor => arrayT(itemDescriptor, \"gptrarray\", ownership, options);\n\n/** Builds a descriptor for a `GArray` of items. */\nconst gArrayT = (\n itemDescriptor: Descriptor,\n ownership: Ownership = \"borrowed\",\n options: ArrayOptions = {},\n): ArrayDescriptor => arrayT(itemDescriptor, \"garray\", ownership, options);\n\n/** Builds a descriptor for a `GByteArray`. */\nconst byteArrayT = (ownership: Ownership = \"borrowed\"): ArrayDescriptor =>\n arrayT(uint8T, \"gbytearray\", ownership, { isBytes: true });\n\n/** Builds a descriptor for a C array whose length is carried by another argument. */\nconst sizedArrayT = (\n itemDescriptor: Descriptor,\n sizeParamIndex: number,\n ownership: Ownership = \"borrowed\",\n options: ArrayOptions = {},\n): ArrayDescriptor => arrayT(itemDescriptor, \"sized\", ownership, { ...options, sizeParamIndex });\n\n/** Builds an out-array cursor into another argument's buffer. */\nconst cursorArrayT = (\n itemDescriptor: Descriptor,\n bounds: CursorBounds,\n ownership: Ownership = \"borrowed\",\n options: ArrayOptions = {},\n): ArrayDescriptor => arrayT(itemDescriptor, \"cursor\", ownership, { ...options, ...bounds });\n\n/** Builds a descriptor for a C array of a fixed length. */\nconst fixedArrayT = (\n itemDescriptor: Descriptor,\n fixedSize: number,\n ownership: Ownership = \"borrowed\",\n options: ArrayOptions = {},\n): ArrayDescriptor => arrayT(itemDescriptor, \"fixed\", ownership, { ...options, fixedSize });\n\nconst applyClosureLifetimeOptions = (result: CallbackDescriptor, options: CallbackOptions): void => {\n if (options.hasDestroy !== undefined) {\n result.hasDestroy = options.hasDestroy;\n }\n\n if (options.destroyKind !== undefined) {\n result.destroyKind = options.destroyKind;\n }\n\n if (options.scope !== undefined) {\n result.scope = options.scope;\n }\n};\n\nconst applyClosureOptions = (result: CallbackDescriptor, options: CallbackOptions): void => {\n applyClosureLifetimeOptions(result, options);\n\n if (options.hasUserData !== undefined) {\n result.hasUserData = options.hasUserData;\n }\n\n if (options.userDataIndex !== undefined) {\n result.userDataIndex = options.userDataIndex;\n }\n\n if (options.canThrow !== undefined) {\n result.canThrow = options.canThrow;\n }\n};\n\n/** Builds a descriptor for a function pointer, marshalling a JavaScript function into a native closure. */\nconst callbackT = (\n argDescriptors: Descriptor[],\n returnDescriptor: Descriptor,\n options?: CallbackOptions,\n): CallbackDescriptor => {\n const result: CallbackDescriptor = { kind: \"callback\", argDescriptors, returnDescriptor };\n\n if (options === undefined) {\n return result;\n }\n\n applyClosureOptions(result, options);\n\n return result;\n};\n\nexport {\n int8T,\n uint8T,\n int16T,\n uint16T,\n int32T,\n uint32T,\n int64T,\n uint64T,\n bigint64T,\n biguint64T,\n gtypeT,\n isGtypeDescriptor,\n float32T,\n float64T,\n booleanT,\n voidT,\n unicharT,\n bufferT,\n stringT,\n objectT,\n refT,\n hashTableT,\n enumT,\n flagsT,\n boxedT,\n structT,\n fundamentalLifecycleFor,\n fundamentalT,\n arrayT,\n preserveArrayNull,\n listT,\n slistT,\n ptrArrayT,\n gArrayT,\n byteArrayT,\n sizedArrayT,\n fixedArrayT,\n cursorArrayT,\n callbackT,\n type BoxedDescriptor,\n type ObjectDescriptor,\n type StructDescriptor,\n type FundamentalDescriptor,\n type ArrayDescriptor,\n type HashTableDescriptor,\n type CallbackDescriptor,\n type RefDescriptor,\n};\n"]}
package/dist/index.d.ts CHANGED
@@ -8,7 +8,7 @@ export { onExit, quit, quitApplication, runApplication, type RunApplicationResul
8
8
  export { offSignal, onceSignal, onSignal } from "./listeners.js";
9
9
  export { installMixins, type Mixin } from "./mixin.js";
10
10
  export { fromNative, toHashTableEntries, toNative } from "./native-value.js";
11
- export { type ConstructBinding, type ConstructBindings, getObjectProperty, newObjectWithProperties, registerConstructProperties, setObjectProperty, } from "./object.js";
11
+ export { type ConstructBinding, type ConstructBindings, getProperty, newObjectWithProperties, registerConstructProperties, setProperty, } from "./object.js";
12
12
  export { getParamSpecFlags, getParamSpecOwnerType, getParamSpecValueType } from "./param-spec.js";
13
13
  export { promisify, trimFinish } from "./promisify.js";
14
14
  export { coerceObjectProperty, getDeclaredPropertyName, isReadableProperty, newParamSpecOverride, } from "./properties.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,7 +8,7 @@ export { onExit, quit, quitApplication, runApplication } from "./lifecycle.js";
8
8
  export { offSignal, onceSignal, onSignal } from "./listeners.js";
9
9
  export { installMixins } from "./mixin.js";
10
10
  export { fromNative, toHashTableEntries, toNative } from "./native-value.js";
11
- export { getObjectProperty, newObjectWithProperties, registerConstructProperties, setObjectProperty, } from "./object.js";
11
+ export { getProperty, newObjectWithProperties, registerConstructProperties, setProperty, } from "./object.js";
12
12
  export { getParamSpecFlags, getParamSpecOwnerType, getParamSpecValueType } from "./param-spec.js";
13
13
  export { promisify, trimFinish } from "./promisify.js";
14
14
  export { coerceObjectProperty, getDeclaredPropertyName, isReadableProperty, newParamSpecOverride, } from "./properties.js";
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,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"]}
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,WAAW,EACX,uBAAuB,EACvB,2BAA2B,EAC3B,WAAW,GACd,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 getProperty,\n newObjectWithProperties,\n registerConstructProperties,\n setProperty,\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"]}
@@ -8,19 +8,20 @@ declare const signalEmit: typeof signalEmitImpl;
8
8
  type SignalMethodReceiver<T, K extends PropertyKey> = T extends {
9
9
  [naturalSignalMember]?: infer TMembers;
10
10
  } ? K extends keyof NonNullable<TMembers> ? never : unknown : unknown;
11
+ export { preserveArrayNull } from "./descriptors.js";
11
12
  /** @internal */
12
13
  export { registerElementMetadata } from "./element-metadata.js";
13
14
  export { elementMetadataVersion, registeredElementProperties, registeredElementSignals, } from "./element-metadata.js";
14
15
  export { createErrorDomain } from "./error.js";
15
- export { type ApplicationInstance, getApplicationInstance } from "./lifecycle.js";
16
16
  export { markSyntheticSignalMembers };
17
+ export { type ApplicationInstance, getApplicationInstance } from "./lifecycle.js";
17
18
  export { descriptorFreePropertySpec, propertyMapOverride, writablePropertyMapOverride, } from "./property-brand.js";
18
19
  export { getExactWrapperClass, resolveWrapperClass } from "./registry.js";
19
- export { classSignalMember, naturalSignalMember, signalEmitMapOverride, signalMapOverride, } from "./signal-brand.js";
20
20
  export type { SignalMethodReceiver };
21
+ export { classSignalMember, naturalSignalMember, signalEmitMapOverride, signalMapOverride, } from "./signal-brand.js";
21
22
  export { hasSignalListener } from "./signal.js";
22
- export { canonicalDetailedSignalName, canonicalSignalName, connectSignalByName, installSignalDispatch, } from "./signal.js";
23
23
  export { emitSignalByName, signalConnect, signalEmit };
24
+ export { canonicalDetailedSignalName, canonicalSignalName, connectSignalByName, installSignalDispatch, } from "./signal.js";
24
25
  export { resolveType } from "./type.js";
25
26
  export { fromValue, getBoxedValue, getValueType, inoutValueForBoxedDescriptor, newValueForDescriptor, outValueForBoxedDescriptor, toValue, } from "./value.js";
26
27
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
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"}
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,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,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,0BAA0B,EAAE,CAAC;AACtC,OAAO,EAAE,KAAK,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,EACH,0BAA0B,EAC1B,mBAAmB,EACnB,2BAA2B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC1E,YAAY,EAAE,oBAAoB,EAAE,CAAC;AACrC,OAAO,EACH,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvD,OAAO,EACH,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GACxB,MAAM,aAAa,CAAC;AACrB,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
@@ -5,18 +5,19 @@ const markSyntheticSignalMembers = markSyntheticSignalMembersImpl;
5
5
  const emitSignalByName = emitSignalByNameImpl;
6
6
  const signalConnect = signalConnectImpl;
7
7
  const signalEmit = signalEmitImpl;
8
+ export { preserveArrayNull } from "./descriptors.js";
8
9
  /** @internal */
9
10
  export { registerElementMetadata } from "./element-metadata.js";
10
11
  export { elementMetadataVersion, registeredElementProperties, registeredElementSignals, } from "./element-metadata.js";
11
12
  export { createErrorDomain } from "./error.js";
12
- export { getApplicationInstance } from "./lifecycle.js";
13
13
  export { markSyntheticSignalMembers };
14
+ export { getApplicationInstance } from "./lifecycle.js";
14
15
  export { descriptorFreePropertySpec, propertyMapOverride, writablePropertyMapOverride, } from "./property-brand.js";
15
16
  export { getExactWrapperClass, resolveWrapperClass } from "./registry.js";
16
17
  export { classSignalMember, naturalSignalMember, signalEmitMapOverride, signalMapOverride, } from "./signal-brand.js";
17
18
  export { hasSignalListener } from "./signal.js";
18
- export { canonicalDetailedSignalName, canonicalSignalName, connectSignalByName, installSignalDispatch, } from "./signal.js";
19
19
  export { emitSignalByName, signalConnect, signalEmit };
20
+ export { canonicalDetailedSignalName, canonicalSignalName, connectSignalByName, installSignalDispatch, } from "./signal.js";
20
21
  export { resolveType } from "./type.js";
21
22
  export { fromValue, getBoxedValue, getValueType, inoutValueForBoxedDescriptor, newValueForDescriptor, outValueForBoxedDescriptor, toValue, } from "./value.js";
22
23
  //# sourceMappingURL=internal.js.map
@@ -1 +1 @@
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"]}
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,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,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,0BAA0B,EAAE,CAAC;AACtC,OAAO,EAA4B,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,EACH,0BAA0B,EAC1B,mBAAmB,EACnB,2BAA2B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAE1E,OAAO,EACH,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvD,OAAO,EACH,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GACxB,MAAM,aAAa,CAAC;AACrB,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\nexport { preserveArrayNull } from \"./descriptors.js\";\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 { markSyntheticSignalMembers };\nexport { type ApplicationInstance, getApplicationInstance } from \"./lifecycle.js\";\nexport {\n descriptorFreePropertySpec,\n propertyMapOverride,\n writablePropertyMapOverride,\n} from \"./property-brand.js\";\nexport { getExactWrapperClass, resolveWrapperClass } from \"./registry.js\";\nexport type { SignalMethodReceiver };\nexport {\n classSignalMember,\n naturalSignalMember,\n signalEmitMapOverride,\n signalMapOverride,\n} from \"./signal-brand.js\";\nexport { hasSignalListener } from \"./signal.js\";\nexport { emitSignalByName, signalConnect, signalEmit };\nexport {\n canonicalDetailedSignalName,\n canonicalSignalName,\n connectSignalByName,\n installSignalDispatch,\n} from \"./signal.js\";\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/object.d.ts CHANGED
@@ -55,12 +55,12 @@ declare function newObjectWithProperties<T extends object>(gtype: bigint, props:
55
55
  * @param propertyName The property name.
56
56
  * @param descriptor Describes the property's type.
57
57
  */
58
- declare function getObjectProperty<TObject extends {
58
+ declare function getProperty<TObject extends {
59
59
  __properties__: object;
60
60
  }, TPropertyMap extends object = TObject extends {
61
61
  [propertyMapOverride]?: infer TResolver;
62
62
  } ? TResolver extends () => infer TMap ? Extract<NonNullable<TMap>, object> : TObject["__properties__"] : TObject["__properties__"], TName extends Extract<keyof NoInfer<TPropertyMap>, string> = Extract<keyof NoInfer<TPropertyMap>, string>>(obj: TObject, propertyName: TName): NoInfer<TPropertyMap>[TName];
63
- declare function getObjectProperty(obj: object, propertyName: string, descriptor: Descriptor): unknown;
63
+ declare function getProperty(obj: object, propertyName: string, descriptor: Descriptor): unknown;
64
64
  /**
65
65
  * Writes a JavaScript value to a GObject property, converting it to native form
66
66
  * using the descriptor. The descriptor converts what it is given rather than checking it against
@@ -74,11 +74,11 @@ declare function getObjectProperty(obj: object, propertyName: string, descriptor
74
74
  * @param descriptor Describes the property's type.
75
75
  * @param jsValue The value to set.
76
76
  */
77
- declare function setObjectProperty<TObject extends {
77
+ declare function setProperty<TObject extends {
78
78
  __writableProperties__: object;
79
79
  }, TPropertyMap extends object = TObject extends {
80
80
  [writablePropertyMapOverride]?: infer TResolver;
81
81
  } ? TResolver extends () => infer TMap ? Extract<NonNullable<TMap>, object> : TObject["__writableProperties__"] : TObject["__writableProperties__"], TName extends Extract<keyof NoInfer<TPropertyMap>, string> = Extract<keyof NoInfer<TPropertyMap>, string>>(obj: TObject, propertyName: TName, jsValue: NoInfer<TPropertyMap>[TName]): void;
82
- declare function setObjectProperty(obj: object, propertyName: string, descriptor: Descriptor, jsValue: unknown): void;
83
- export { newObjectWithProperties, getObjectProperty, registerConstructProperties, setObjectProperty, type ConstructBinding, type ConstructBindings, };
82
+ declare function setProperty(obj: object, propertyName: string, descriptor: Descriptor, jsValue: unknown): void;
83
+ export { newObjectWithProperties, getProperty, registerConstructProperties, setProperty, type ConstructBinding, type ConstructBindings, };
84
84
  //# sourceMappingURL=object.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../src/object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAA+C,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,aAAa,CAAC;AAW5D,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAIvF;;;GAGG;AACH,KAAK,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC/D,wGAAwG;AACxG,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAmE1D;;;;;;;;;GASG;AACH,iBAAS,2BAA2B,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAGrF;AAoBD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,iBAAS,uBAAuB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAsB9F;AAED;;;;;;;GAOG;AACH,iBAAS,iBAAiB,CACtB,OAAO,SAAS;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,EAC1C,YAAY,SAAS,MAAM,GAAG,OAAO,SAAS;IAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,MAAM,SAAS,CAAA;CAAE,GACnF,SAAS,SAAS,MAAM,MAAM,IAAI,GAC9B,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,GAClC,OAAO,CAAC,gBAAgB,CAAC,GAC7B,OAAO,CAAC,gBAAgB,CAAC,EAC/B,KAAK,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAC3G,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC;AACnE,iBAAS,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC;AAmB/F;;;;;;;;;;;;GAYG;AACH,iBAAS,iBAAiB,CACtB,OAAO,SAAS;IAAE,sBAAsB,EAAE,MAAM,CAAA;CAAE,EAClD,YAAY,SAAS,MAAM,GAAG,OAAO,SAAS;IAAE,CAAC,2BAA2B,CAAC,CAAC,EAAE,MAAM,SAAS,CAAA;CAAE,GAC3F,SAAS,SAAS,MAAM,MAAM,IAAI,GAC9B,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,GAClC,OAAO,CAAC,wBAAwB,CAAC,GACrC,OAAO,CAAC,wBAAwB,CAAC,EACvC,KAAK,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAC3G,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAClF,iBAAS,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;AAiB9G,OAAO,EACH,uBAAuB,EACvB,iBAAiB,EACjB,2BAA2B,EAC3B,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACzB,CAAC"}
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../src/object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAA+C,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,aAAa,CAAC;AAW5D,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAIvF;;;GAGG;AACH,KAAK,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC/D,wGAAwG;AACxG,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAmE1D;;;;;;;;;GASG;AACH,iBAAS,2BAA2B,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAGrF;AAoBD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,iBAAS,uBAAuB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAsB9F;AAED;;;;;;;GAOG;AACH,iBAAS,WAAW,CAChB,OAAO,SAAS;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,EAC1C,YAAY,SAAS,MAAM,GAAG,OAAO,SAAS;IAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,MAAM,SAAS,CAAA;CAAE,GACnF,SAAS,SAAS,MAAM,MAAM,IAAI,GAC9B,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,GAClC,OAAO,CAAC,gBAAgB,CAAC,GAC7B,OAAO,CAAC,gBAAgB,CAAC,EAC/B,KAAK,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAC3G,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC;AACnE,iBAAS,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC;AAmBzF;;;;;;;;;;;;GAYG;AACH,iBAAS,WAAW,CAChB,OAAO,SAAS;IAAE,sBAAsB,EAAE,MAAM,CAAA;CAAE,EAClD,YAAY,SAAS,MAAM,GAAG,OAAO,SAAS;IAAE,CAAC,2BAA2B,CAAC,CAAC,EAAE,MAAM,SAAS,CAAA;CAAE,GAC3F,SAAS,SAAS,MAAM,MAAM,IAAI,GAC9B,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,GAClC,OAAO,CAAC,wBAAwB,CAAC,GACrC,OAAO,CAAC,wBAAwB,CAAC,EACvC,KAAK,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAC3G,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAClF,iBAAS,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;AAiBxG,OAAO,EACH,uBAAuB,EACvB,WAAW,EACX,2BAA2B,EAC3B,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACzB,CAAC"}
package/dist/object.js CHANGED
@@ -6,7 +6,7 @@ import { LIB, VALUE_T } from "./library.js";
6
6
  import { coercePropertyValue, constructPropertyFor, readableObjectPropertyFor, writableObjectPropertyFor, } from "./properties.js";
7
7
  import { propertyMapOverride, writablePropertyMapOverride } from "./property-brand.js";
8
8
  import { getHandle, registerWrapper } from "./registry.js";
9
- import { fromValue, fromValueForDescriptor, newValueForDescriptor, toValue } from "./value.js";
9
+ import { fromObjectPropertyValue, fromValueForDescriptor, newValueForDescriptor, toValue } from "./value.js";
10
10
  const declaredBindings = new WeakMap();
11
11
  const resolvedBindings = new WeakMap();
12
12
  const declarations = { generation: 0 };
@@ -114,20 +114,20 @@ function newObjectWithProperties(gtype, props, wrapper) {
114
114
  }
115
115
  return wrapper;
116
116
  }
117
- function getObjectProperty(obj, propertyName, descriptor) {
117
+ function getProperty(obj, propertyName, descriptor) {
118
118
  if (arguments.length === 2) {
119
119
  const property = readableObjectPropertyFor(obj, propertyName);
120
120
  gObjectGetProperty(getHandle(obj), property.name, property.value);
121
- return fromValue(property.value);
121
+ return fromObjectPropertyValue(property.value);
122
122
  }
123
123
  if (descriptor === undefined) {
124
- throw new TypeError("getObjectProperty requires a property descriptor when called with three arguments");
124
+ throw new TypeError("getProperty requires a property descriptor when called with three arguments");
125
125
  }
126
126
  const value = newValueForDescriptor(descriptor);
127
127
  gObjectGetProperty(getHandle(obj), propertyName, value);
128
128
  return fromValueForDescriptor(descriptor, value);
129
129
  }
130
- function setObjectProperty(obj, propertyName, descriptorOrValue, jsValue) {
130
+ function setProperty(obj, propertyName, descriptorOrValue, jsValue) {
131
131
  if (arguments.length === 3) {
132
132
  const property = writableObjectPropertyFor(obj, propertyName, descriptorOrValue);
133
133
  gObjectSetProperty(getHandle(obj), property.name, property.value);
@@ -135,5 +135,5 @@ function setObjectProperty(obj, propertyName, descriptorOrValue, jsValue) {
135
135
  }
136
136
  gObjectSetProperty(getHandle(obj), propertyName, toValue(descriptorOrValue, jsValue));
137
137
  }
138
- export { newObjectWithProperties, getObjectProperty, registerConstructProperties, setObjectProperty, };
138
+ export { newObjectWithProperties, getProperty, registerConstructProperties, setProperty, };
139
139
  //# sourceMappingURL=object.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"object.js","sourceRoot":"","sources":["../src/object.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Descriptor, type ExternalObject, type Handle, newObject } from \"@gtkx/native\";\nimport { type AnyClass, getParentClass } from \"@gtkx/utils\";\nimport { bind } from \"./bind.js\";\nimport { objectT, stringT, voidT } from \"./descriptors.js\";\nimport { LIB, VALUE_T } from \"./library.js\";\nimport {\n coercePropertyValue,\n type ConstructProperty,\n constructPropertyFor,\n readableObjectPropertyFor,\n writableObjectPropertyFor,\n} from \"./properties.js\";\nimport { propertyMapOverride, writablePropertyMapOverride } from \"./property-brand.js\";\nimport { getHandle, registerWrapper } from \"./registry.js\";\nimport { fromValue, fromValueForDescriptor, newValueForDescriptor, toValue } from \"./value.js\";\n\n/**\n * One construct property a wrapper class accepts: the canonical `GObject` name it is set under,\n * and the descriptor its value is marshalled through.\n */\ntype ConstructBinding = [name: string, descriptor: Descriptor];\n/** The construct properties a wrapper class accepts, keyed by the camelCased name callers give them. */\ntype ConstructBindings = Record<string, ConstructBinding>;\ntype ResolvedBindings = { generation: number; bindings: ConstructBindings };\n\nconst declaredBindings: WeakMap<AnyClass, ConstructBindings> = new WeakMap();\nconst resolvedBindings: WeakMap<AnyClass, ResolvedBindings> = new WeakMap();\nconst declarations = { generation: 0 };\nconst NO_BINDINGS: ConstructBindings = Object.create(null) as ConstructBindings;\n\nconst gObjectGetProperty = bind(\n LIB,\n \"g_object_get_property\",\n [objectT(\"borrowed\"), stringT(\"borrowed\"), VALUE_T],\n voidT,\n);\n\nconst gObjectSetProperty = bind(\n LIB,\n \"g_object_set_property\",\n [objectT(\"borrowed\"), stringT(\"borrowed\"), VALUE_T],\n voidT,\n);\n\nfunction collectDeclaredBindings(cls: AnyClass): ConstructBindings[] {\n const declared: ConstructBindings[] = [];\n let current: AnyClass | null = cls;\n\n while (current !== null) {\n const own = declaredBindings.get(current);\n\n if (own !== undefined) {\n declared.push(own);\n }\n\n current = getParentClass(current);\n }\n\n return declared;\n}\n\nfunction mergeDeclaredBindings(cls: AnyClass): ConstructBindings {\n const declared = collectDeclaredBindings(cls);\n const merged: ConstructBindings = Object.create(null) as ConstructBindings;\n\n for (let index = declared.length - 1; index >= 0; index--) {\n Object.assign(merged, declared[index]);\n }\n\n return merged;\n}\n\nfunction constructBindingsFor(cls: AnyClass | undefined): ConstructBindings {\n if (cls === undefined) {\n return NO_BINDINGS;\n }\n\n const cached = resolvedBindings.get(cls);\n\n if (cached?.generation === declarations.generation) {\n return cached.bindings;\n }\n\n const bindings = mergeDeclaredBindings(cls);\n resolvedBindings.set(cls, { generation: declarations.generation, bindings });\n\n return bindings;\n}\n\n/**\n * Declares the construct properties a wrapper class accepts, so `newObjectWithProperties`\n * marshals each one through its descriptor rather than resolving it from the\n * `GObject.ParamSpec` the type installs. A class inherits the declarations of its ancestors.\n * Registering takes effect immediately, including for classes already constructed from and for\n * subclasses that already inherited an earlier declaration.\n *\n * @param cls The wrapper class the properties are declared on.\n * @param bindings CamelCased property names mapped to their canonical name and descriptor.\n */\nfunction registerConstructProperties(cls: AnyClass, bindings: ConstructBindings): void {\n declaredBindings.set(cls, bindings);\n declarations.generation += 1;\n}\n\nfunction constructPropertyForEntry(\n source: { gtype: bigint; bindings: ConstructBindings; wrapper: object },\n name: string,\n value: unknown,\n): ConstructProperty | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n const binding = source.bindings[name];\n\n if (binding === undefined) {\n return constructPropertyFor(source.gtype, name, value, source.wrapper);\n }\n\n return { name: binding[0], value: toValue(binding[1], coercePropertyValue(source.gtype, binding[0], value)) };\n}\n\n/**\n * Constructs a new GObject of the given type, setting the supplied construct\n * properties, and binds `wrapper` to it. A property the wrapper's class declares\n * through `registerConstructProperties` is marshalled through its descriptor; any\n * other one is marshalled through the `GObject.ParamSpec` the type installs under\n * that name, dashed or camelCased, and is skipped when the type installs none.\n * A value that ParamSpec would refuse throws before GObject sees it: a `TypeError`\n * for a read-only property and for a value of a type the property cannot hold, and\n * a `RangeError` for a value the ParamSpec rejects. A value marshalled through a\n * declared descriptor is converted rather than checked, so a `null` handed to a\n * numeric one of those lands 0 rather than being refused, and a number is fitted to\n * the property first, as `coerceObjectProperty` does: truncated toward zero for a\n * whole-number property and clamped to the range its `GObject.ParamSpec` allows.\n * Properties whose value is `undefined` are skipped. A type registered with\n * `registerClass` binds the wrapper before its `constructed` slot runs, so an\n * override of that slot already sees a usable instance.\n * When construction returns an object that already has a wrapper — it reached\n * JavaScript and was wrapped before `g_object_new` returned, for example a\n * `Gtk.Window` observed through the toplevels list — that existing wrapper is\n * returned instead of binding `wrapper`, so both references stay one object.\n *\n * @param gtype The GType of the object to construct.\n * @param props Property names mapped to the values to set them to.\n * @param wrapper The wrapper instance to bind to the new object.\n * @returns The wrapper bound to the constructed object: `wrapper` itself, or\n * the wrapper the object already had.\n */\nfunction newObjectWithProperties<T extends object>(gtype: bigint, props: object, wrapper: T): T {\n const names: string[] = [];\n const values: ExternalObject<Handle>[] = [];\n const bindings = constructBindingsFor(wrapper.constructor as AnyClass | undefined);\n const source = { gtype, bindings, wrapper };\n\n for (const name of Object.keys(props)) {\n const property = constructPropertyForEntry(source, name, Reflect.get(props, name));\n\n if (property !== undefined) {\n names.push(property.name);\n values.push(property.value);\n }\n }\n\n const existing = newObject(gtype, names, values, wrapper, registerWrapper);\n\n if (existing !== null) {\n return existing as T;\n }\n\n return wrapper;\n}\n\n/**\n * Reads a GObject property and converts it to its JavaScript value using the\n * descriptor.\n *\n * @param obj The object to read from.\n * @param propertyName The property name.\n * @param descriptor Describes the property's type.\n */\nfunction getObjectProperty<\n TObject extends { __properties__: object },\n TPropertyMap extends object = TObject extends { [propertyMapOverride]?: infer TResolver }\n ? TResolver extends () => infer TMap\n ? Extract<NonNullable<TMap>, object>\n : TObject[\"__properties__\"]\n : TObject[\"__properties__\"],\n TName extends Extract<keyof NoInfer<TPropertyMap>, string> = Extract<keyof NoInfer<TPropertyMap>, string>,\n>(obj: TObject, propertyName: TName): NoInfer<TPropertyMap>[TName];\nfunction getObjectProperty(obj: object, propertyName: string, descriptor: Descriptor): unknown;\nfunction getObjectProperty(obj: object, propertyName: string, descriptor?: Descriptor): unknown {\n if (arguments.length === 2) {\n const property = readableObjectPropertyFor(obj, propertyName);\n gObjectGetProperty(getHandle(obj), property.name, property.value);\n\n return fromValue(property.value);\n }\n\n if (descriptor === undefined) {\n throw new TypeError(\"getObjectProperty requires a property descriptor when called with three arguments\");\n }\n\n const value = newValueForDescriptor(descriptor);\n gObjectGetProperty(getHandle(obj), propertyName, value);\n\n return fromValueForDescriptor(descriptor, value);\n}\n\n/**\n * Writes a JavaScript value to a GObject property, converting it to native form\n * using the descriptor. The descriptor converts what it is given rather than checking it against\n * the property's `GObject.ParamSpec`, so `null` and `undefined` written to a numeric or enum\n * property land 0, and a fractional number written to a whole-number property is truncated toward\n * zero, where the same writes to a property installed through `registerClass` are refused with a\n * `TypeError`.\n *\n * @param obj The object to write to.\n * @param propertyName The property name.\n * @param descriptor Describes the property's type.\n * @param jsValue The value to set.\n */\nfunction setObjectProperty<\n TObject extends { __writableProperties__: object },\n TPropertyMap extends object = TObject extends { [writablePropertyMapOverride]?: infer TResolver }\n ? TResolver extends () => infer TMap\n ? Extract<NonNullable<TMap>, object>\n : TObject[\"__writableProperties__\"]\n : TObject[\"__writableProperties__\"],\n TName extends Extract<keyof NoInfer<TPropertyMap>, string> = Extract<keyof NoInfer<TPropertyMap>, string>,\n>(obj: TObject, propertyName: TName, jsValue: NoInfer<TPropertyMap>[TName]): void;\nfunction setObjectProperty(obj: object, propertyName: string, descriptor: Descriptor, jsValue: unknown): void;\nfunction setObjectProperty(\n obj: object,\n propertyName: string,\n descriptorOrValue: unknown,\n jsValue?: unknown,\n): void {\n if (arguments.length === 3) {\n const property = writableObjectPropertyFor(obj, propertyName, descriptorOrValue);\n gObjectSetProperty(getHandle(obj), property.name, property.value);\n\n return;\n }\n\n gObjectSetProperty(getHandle(obj), propertyName, toValue(descriptorOrValue as Descriptor, jsValue));\n}\n\nexport {\n newObjectWithProperties,\n getObjectProperty,\n registerConstructProperties,\n setObjectProperty,\n type ConstructBinding,\n type ConstructBindings,\n};\n"]}
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../src/object.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Descriptor, type ExternalObject, type Handle, newObject } from \"@gtkx/native\";\nimport { type AnyClass, getParentClass } from \"@gtkx/utils\";\nimport { bind } from \"./bind.js\";\nimport { objectT, stringT, voidT } from \"./descriptors.js\";\nimport { LIB, VALUE_T } from \"./library.js\";\nimport {\n coercePropertyValue,\n type ConstructProperty,\n constructPropertyFor,\n readableObjectPropertyFor,\n writableObjectPropertyFor,\n} from \"./properties.js\";\nimport { propertyMapOverride, writablePropertyMapOverride } from \"./property-brand.js\";\nimport { getHandle, registerWrapper } from \"./registry.js\";\nimport { fromObjectPropertyValue, fromValueForDescriptor, newValueForDescriptor, toValue } from \"./value.js\";\n\n/**\n * One construct property a wrapper class accepts: the canonical `GObject` name it is set under,\n * and the descriptor its value is marshalled through.\n */\ntype ConstructBinding = [name: string, descriptor: Descriptor];\n/** The construct properties a wrapper class accepts, keyed by the camelCased name callers give them. */\ntype ConstructBindings = Record<string, ConstructBinding>;\ntype ResolvedBindings = { generation: number; bindings: ConstructBindings };\n\nconst declaredBindings: WeakMap<AnyClass, ConstructBindings> = new WeakMap();\nconst resolvedBindings: WeakMap<AnyClass, ResolvedBindings> = new WeakMap();\nconst declarations = { generation: 0 };\nconst NO_BINDINGS: ConstructBindings = Object.create(null) as ConstructBindings;\n\nconst gObjectGetProperty = bind(\n LIB,\n \"g_object_get_property\",\n [objectT(\"borrowed\"), stringT(\"borrowed\"), VALUE_T],\n voidT,\n);\n\nconst gObjectSetProperty = bind(\n LIB,\n \"g_object_set_property\",\n [objectT(\"borrowed\"), stringT(\"borrowed\"), VALUE_T],\n voidT,\n);\n\nfunction collectDeclaredBindings(cls: AnyClass): ConstructBindings[] {\n const declared: ConstructBindings[] = [];\n let current: AnyClass | null = cls;\n\n while (current !== null) {\n const own = declaredBindings.get(current);\n\n if (own !== undefined) {\n declared.push(own);\n }\n\n current = getParentClass(current);\n }\n\n return declared;\n}\n\nfunction mergeDeclaredBindings(cls: AnyClass): ConstructBindings {\n const declared = collectDeclaredBindings(cls);\n const merged: ConstructBindings = Object.create(null) as ConstructBindings;\n\n for (let index = declared.length - 1; index >= 0; index--) {\n Object.assign(merged, declared[index]);\n }\n\n return merged;\n}\n\nfunction constructBindingsFor(cls: AnyClass | undefined): ConstructBindings {\n if (cls === undefined) {\n return NO_BINDINGS;\n }\n\n const cached = resolvedBindings.get(cls);\n\n if (cached?.generation === declarations.generation) {\n return cached.bindings;\n }\n\n const bindings = mergeDeclaredBindings(cls);\n resolvedBindings.set(cls, { generation: declarations.generation, bindings });\n\n return bindings;\n}\n\n/**\n * Declares the construct properties a wrapper class accepts, so `newObjectWithProperties`\n * marshals each one through its descriptor rather than resolving it from the\n * `GObject.ParamSpec` the type installs. A class inherits the declarations of its ancestors.\n * Registering takes effect immediately, including for classes already constructed from and for\n * subclasses that already inherited an earlier declaration.\n *\n * @param cls The wrapper class the properties are declared on.\n * @param bindings CamelCased property names mapped to their canonical name and descriptor.\n */\nfunction registerConstructProperties(cls: AnyClass, bindings: ConstructBindings): void {\n declaredBindings.set(cls, bindings);\n declarations.generation += 1;\n}\n\nfunction constructPropertyForEntry(\n source: { gtype: bigint; bindings: ConstructBindings; wrapper: object },\n name: string,\n value: unknown,\n): ConstructProperty | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n const binding = source.bindings[name];\n\n if (binding === undefined) {\n return constructPropertyFor(source.gtype, name, value, source.wrapper);\n }\n\n return { name: binding[0], value: toValue(binding[1], coercePropertyValue(source.gtype, binding[0], value)) };\n}\n\n/**\n * Constructs a new GObject of the given type, setting the supplied construct\n * properties, and binds `wrapper` to it. A property the wrapper's class declares\n * through `registerConstructProperties` is marshalled through its descriptor; any\n * other one is marshalled through the `GObject.ParamSpec` the type installs under\n * that name, dashed or camelCased, and is skipped when the type installs none.\n * A value that ParamSpec would refuse throws before GObject sees it: a `TypeError`\n * for a read-only property and for a value of a type the property cannot hold, and\n * a `RangeError` for a value the ParamSpec rejects. A value marshalled through a\n * declared descriptor is converted rather than checked, so a `null` handed to a\n * numeric one of those lands 0 rather than being refused, and a number is fitted to\n * the property first, as `coerceObjectProperty` does: truncated toward zero for a\n * whole-number property and clamped to the range its `GObject.ParamSpec` allows.\n * Properties whose value is `undefined` are skipped. A type registered with\n * `registerClass` binds the wrapper before its `constructed` slot runs, so an\n * override of that slot already sees a usable instance.\n * When construction returns an object that already has a wrapper — it reached\n * JavaScript and was wrapped before `g_object_new` returned, for example a\n * `Gtk.Window` observed through the toplevels list — that existing wrapper is\n * returned instead of binding `wrapper`, so both references stay one object.\n *\n * @param gtype The GType of the object to construct.\n * @param props Property names mapped to the values to set them to.\n * @param wrapper The wrapper instance to bind to the new object.\n * @returns The wrapper bound to the constructed object: `wrapper` itself, or\n * the wrapper the object already had.\n */\nfunction newObjectWithProperties<T extends object>(gtype: bigint, props: object, wrapper: T): T {\n const names: string[] = [];\n const values: ExternalObject<Handle>[] = [];\n const bindings = constructBindingsFor(wrapper.constructor as AnyClass | undefined);\n const source = { gtype, bindings, wrapper };\n\n for (const name of Object.keys(props)) {\n const property = constructPropertyForEntry(source, name, Reflect.get(props, name));\n\n if (property !== undefined) {\n names.push(property.name);\n values.push(property.value);\n }\n }\n\n const existing = newObject(gtype, names, values, wrapper, registerWrapper);\n\n if (existing !== null) {\n return existing as T;\n }\n\n return wrapper;\n}\n\n/**\n * Reads a GObject property and converts it to its JavaScript value using the\n * descriptor.\n *\n * @param obj The object to read from.\n * @param propertyName The property name.\n * @param descriptor Describes the property's type.\n */\nfunction getProperty<\n TObject extends { __properties__: object },\n TPropertyMap extends object = TObject extends { [propertyMapOverride]?: infer TResolver }\n ? TResolver extends () => infer TMap\n ? Extract<NonNullable<TMap>, object>\n : TObject[\"__properties__\"]\n : TObject[\"__properties__\"],\n TName extends Extract<keyof NoInfer<TPropertyMap>, string> = Extract<keyof NoInfer<TPropertyMap>, string>,\n>(obj: TObject, propertyName: TName): NoInfer<TPropertyMap>[TName];\nfunction getProperty(obj: object, propertyName: string, descriptor: Descriptor): unknown;\nfunction getProperty(obj: object, propertyName: string, descriptor?: Descriptor): unknown {\n if (arguments.length === 2) {\n const property = readableObjectPropertyFor(obj, propertyName);\n gObjectGetProperty(getHandle(obj), property.name, property.value);\n\n return fromObjectPropertyValue(property.value);\n }\n\n if (descriptor === undefined) {\n throw new TypeError(\"getProperty requires a property descriptor when called with three arguments\");\n }\n\n const value = newValueForDescriptor(descriptor);\n gObjectGetProperty(getHandle(obj), propertyName, value);\n\n return fromValueForDescriptor(descriptor, value);\n}\n\n/**\n * Writes a JavaScript value to a GObject property, converting it to native form\n * using the descriptor. The descriptor converts what it is given rather than checking it against\n * the property's `GObject.ParamSpec`, so `null` and `undefined` written to a numeric or enum\n * property land 0, and a fractional number written to a whole-number property is truncated toward\n * zero, where the same writes to a property installed through `registerClass` are refused with a\n * `TypeError`.\n *\n * @param obj The object to write to.\n * @param propertyName The property name.\n * @param descriptor Describes the property's type.\n * @param jsValue The value to set.\n */\nfunction setProperty<\n TObject extends { __writableProperties__: object },\n TPropertyMap extends object = TObject extends { [writablePropertyMapOverride]?: infer TResolver }\n ? TResolver extends () => infer TMap\n ? Extract<NonNullable<TMap>, object>\n : TObject[\"__writableProperties__\"]\n : TObject[\"__writableProperties__\"],\n TName extends Extract<keyof NoInfer<TPropertyMap>, string> = Extract<keyof NoInfer<TPropertyMap>, string>,\n>(obj: TObject, propertyName: TName, jsValue: NoInfer<TPropertyMap>[TName]): void;\nfunction setProperty(obj: object, propertyName: string, descriptor: Descriptor, jsValue: unknown): void;\nfunction setProperty(\n obj: object,\n propertyName: string,\n descriptorOrValue: unknown,\n jsValue?: unknown,\n): void {\n if (arguments.length === 3) {\n const property = writableObjectPropertyFor(obj, propertyName, descriptorOrValue);\n gObjectSetProperty(getHandle(obj), property.name, property.value);\n\n return;\n }\n\n gObjectSetProperty(getHandle(obj), propertyName, toValue(descriptorOrValue as Descriptor, jsValue));\n}\n\nexport {\n newObjectWithProperties,\n getProperty,\n registerConstructProperties,\n setProperty,\n type ConstructBinding,\n type ConstructBindings,\n};\n"]}
package/dist/value.d.ts CHANGED
@@ -57,6 +57,7 @@ declare function toValue(descriptor: Descriptor, value: unknown): ExternalObject
57
57
  * @throws {Error} When the GType it holds has no JavaScript form, such as a non-null `gpointer`.
58
58
  */
59
59
  declare function fromValue(value: ExternalObject<Handle>): unknown;
60
+ declare const fromObjectPropertyValue: (value: ExternalObject<Handle>) => unknown;
60
61
  declare const fromValueForDescriptor: (descriptor: Descriptor, value: ExternalObject<Handle>) => unknown;
61
62
  declare const valueGuardOverrideFor: (valueType: bigint) => ValueGuard | undefined;
62
63
  declare function newValueForDescriptor(descriptor: Descriptor): ExternalObject<Handle>;
@@ -71,5 +72,5 @@ declare class ValueMarshalError extends TypeError {
71
72
  /** Name callers match on when the error is caught as a plain `TypeError`. */
72
73
  name: string;
73
74
  }
74
- export { getValueType, intoValue, copyValue, getBoxedValue, setBoxedValue, type JsValue, toValue, toValueHandle, tryToValueHandle, ValueMarshalError, fromValue, fromValueForDescriptor, valueGuardOverrideFor, newValueForDescriptor, newValueForType, outValueForDescriptor, outValueForBoxedDescriptor, inoutValueForBoxedDescriptor, type ValueNarrower, valueNarrowerFor, type ValueWriter, valueWriterFor, };
75
+ export { getValueType, intoValue, copyValue, getBoxedValue, setBoxedValue, type JsValue, toValue, toValueHandle, tryToValueHandle, ValueMarshalError, fromValue, fromObjectPropertyValue, fromValueForDescriptor, valueGuardOverrideFor, newValueForDescriptor, newValueForType, outValueForDescriptor, outValueForBoxedDescriptor, inoutValueForBoxedDescriptor, type ValueNarrower, valueNarrowerFor, type ValueWriter, valueWriterFor, };
75
76
  //# sourceMappingURL=value.d.ts.map