Keeta LogoKeeta Logo@keetanetwork/keetanet-client
    Preparing search index...
    SchemaMapJS: T extends () => infer U
        ? U extends Schema ? SchemaMapJS<U> : never
        : T extends keyof BasicSchemaMapJS
            ? BasicSchemaMapJS[T]
            : T extends { choice: Schema[] }
                ? SchemaMapJS<T["choice"][number]>
                : T extends { choice: readonly Schema[] }
                    ? SchemaMapJS<T["choice"][number]>
                    : T extends {
                        choice: infer C extends
                            { [name: string]: Schema }
                            | { readonly [name: string]: Schema };
                    }
                        ? {
                            [K in keyof C]: {
                                [P in K]: C[K] extends Schema ? SchemaMapJS<C[K]> : unknown
                            }
                        }[keyof C]
                        : T extends { sequenceOf: Schema }
                            ? SchemaMapJS<T["sequenceOf"]>[]
                            : T extends { optional: Schema }
                                ? SchemaMapJS<T["optional"]> | undefined
                                : T extends bigint
                                    ? T
                                    : T extends {
                                        contains: Schema;
                                        kind: infer _U extends ASN1ContextTag["kind"];
                                        type: "context";
                                        value: number;
                                    }
                                        ? SchemaMapJS<T["contains"]>
                                        : T extends { oid: string; type: "oid" }
                                            ? T["oid"]
                                            : T extends { kind: "printable"
                                            | "ia5"
                                            | "utf8"; type: "string" }
                                                ? string
                                                : T extends { kind: "general"
                                                | "utc"; type: "date" }
                                                    ? Date
                                                    : T extends {
                                                        contains: infer C extends
                                                            | { [name: string]: Schema }
                                                            | { readonly [name: string]: Schema };
                                                        fieldNames: infer F extends readonly string[] | string[];
                                                        type: "struct";
                                                    }
                                                        ? {
                                                            [K in (
                                                                F extends readonly (infer U)[]
                                                                    ? U
                                                                    : F extends (infer U)[] ? U : never
                                                            ) & string]: K extends keyof C
                                                                ? C[K] extends Schema ? SchemaMapJS<C[K]> : unknown
                                                                : unknown
                                                        }
                                                        : T extends readonly [Schema, ...Schema[]]
                                                            ? {
                                                                [K in keyof T]: T[K] extends Schema
                                                                    ? SchemaMapJS<T[K]>
                                                                    : never
                                                            }
                                                            : unknown

    Maps a Schema to its plain JavaScript object representation (without ASN.1 wrapper types). For structs with kind-ed fields, metadata fields like '$.kind' are added. For named choices, returns an object with one property matching the choice name.

    Type Parameters