diff --git a/packages/api/index.ts b/packages/api/index.ts index 57afaf51d..5f00f81b0 100644 --- a/packages/api/index.ts +++ b/packages/api/index.ts @@ -60,11 +60,11 @@ export interface OpaqueRefMethods { setSchema(schema: JSONSchema): void; map( fn: ( - element: T extends Array ? Opaque : Opaque, - index: Opaque, - array: T, + element: T extends Array ? OpaqueRef : OpaqueRef, + index: OpaqueRef, + array: OpaqueRef, ) => Opaque, - ): Opaque; + ): OpaqueRef; } // Factory types diff --git a/packages/runner/src/builder/opaque-ref.ts b/packages/runner/src/builder/opaque-ref.ts index 328466f4b..93823e543 100644 --- a/packages/runner/src/builder/opaque-ref.ts +++ b/packages/runner/src/builder/opaque-ref.ts @@ -120,8 +120,8 @@ export function opaqueRef( }, map: ( fn: ( - element: Opaque ? U : T>>, - index: Opaque, + element: OpaqueRef ? U : T>>, + index: OpaqueRef, array: T, ) => Opaque, ) => { diff --git a/packages/runner/src/builder/types.ts b/packages/runner/src/builder/types.ts index 0e50903c6..2d771e68b 100644 --- a/packages/runner/src/builder/types.ts +++ b/packages/runner/src/builder/types.ts @@ -123,11 +123,11 @@ declare module "@commontools/api" { unsafe_getExternal(): OpaqueRef; map( fn: ( - element: T extends Array ? Opaque : Opaque, - index: Opaque, - array: T, + element: T extends Array ? OpaqueRef : OpaqueRef, + index: OpaqueRef, + array: OpaqueRef, ) => Opaque, - ): Opaque; + ): OpaqueRef; toJSON(): unknown; [Symbol.iterator](): Iterator; [Symbol.toPrimitive](hint: string): T; diff --git a/packages/static/assets/types/commontools.d.ts b/packages/static/assets/types/commontools.d.ts index c78ea1b7a..5accd4f7a 100644 --- a/packages/static/assets/types/commontools.d.ts +++ b/packages/static/assets/types/commontools.d.ts @@ -35,7 +35,7 @@ export interface OpaqueRefMethods { setDefault(value: Opaque | T): void; setName(name: string): void; setSchema(schema: JSONSchema): void; - map(fn: (element: T extends Array ? Opaque : Opaque, index: Opaque, array: T) => Opaque): Opaque; + map(fn: (element: T extends Array ? OpaqueRef : OpaqueRef, index: OpaqueRef, array: OpaqueRef) => Opaque): OpaqueRef; } export interface Recipe { argumentSchema: JSONSchema;