{"version":3,"file":"default.cjs","names":["BaseSchema"],"sources":["../../src/schemas/default.ts"],"sourcesContent":["import type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport { BaseSchema } from \"../core/base\";\nimport type { CombinedStandardProps, Schema } from \"../core/types\";\n\nexport class DefaultSchema<I, O> extends BaseSchema<I, O> {\n  /** Marker used by object schemas and type inference to identify defaulted fields. */\n  readonly _isDefault = true;\n  private readonly innerSchema: Schema<I, O>;\n  private readonly defaultValue: O | (() => O);\n\n  constructor(innerSchema: Schema<I, O>, defaultValue: O | (() => O)) {\n    super();\n    this.innerSchema = innerSchema;\n    this.defaultValue = defaultValue;\n    this.jsonSchema = {\n      ...innerSchema.jsonSchema,\n      default: typeof defaultValue === \"function\" ? undefined : defaultValue,\n    };\n  }\n\n  private getDefault(): O {\n    return typeof this.defaultValue === \"function\"\n      ? (this.defaultValue as () => O)()\n      : this.defaultValue;\n  }\n\n  get [\"~standard\"](): CombinedStandardProps<I, O> {\n    return {\n      version: 1,\n      vendor: \"h-schema\",\n      jsonSchema: {\n        input: () => this.jsonSchema,\n        output: () => this.jsonSchema,\n      },\n      validate: (value: unknown) => {\n        if (value === undefined || value === null) {\n          return { value: this.getDefault() };\n        }\n        return this.innerSchema[\"~standard\"].validate(value) as StandardSchemaV1.Result<O>;\n      },\n      types: {\n        input: {} as I,\n        output: {} as O,\n      },\n    };\n  }\n}\n"],"mappings":";;AAIA,IAAa,gBAAb,cAAyCA,aAAAA,WAAiB;;CAExD,aAAsB;CACtB;CACA;CAEA,YAAY,aAA2B,cAA6B;EAClE,MAAM;EACN,KAAK,cAAc;EACnB,KAAK,eAAe;EACpB,KAAK,aAAa;GAChB,GAAG,YAAY;GACf,SAAS,OAAO,iBAAiB,aAAa,KAAA,IAAY;EAC5D;CACF;CAEA,aAAwB;EACtB,OAAO,OAAO,KAAK,iBAAiB,aAC/B,KAAK,aAAyB,IAC/B,KAAK;CACX;CAEA,KAAK,eAA4C;EAC/C,OAAO;GACL,SAAS;GACT,QAAQ;GACR,YAAY;IACV,aAAa,KAAK;IAClB,cAAc,KAAK;GACrB;GACA,WAAW,UAAmB;IAC5B,IAAI,UAAU,KAAA,KAAa,UAAU,MACnC,OAAO,EAAE,OAAO,KAAK,WAAW,EAAE;IAEpC,OAAO,KAAK,YAAY,YAAY,CAAC,SAAS,KAAK;GACrD;GACA,OAAO;IACL,OAAO,CAAC;IACR,QAAQ,CAAC;GACX;EACF;CACF;AACF"}