{"version":3,"file":"json_schema.cjs","sources":["../../../src/loaders/json_schema.ts"],"sourcesContent":["import { TypeLoaderFn } from '../types.js'\n\nexport interface WithJSONSchema {\n  toJSONSchema(): Record<string, unknown>\n}\n\nfunction supportsToJSONSchema(value: unknown): value is WithJSONSchema {\n  return (\n    typeof value === 'object' &&\n    value !== null &&\n    'toJSONSchema' in value &&\n    typeof value.toJSONSchema === 'function'\n  )\n}\n\n/**\n * Type loader to load WithJSONSchema implementation.\n *\n * @example\n * class MyModel implements WithJSONSchema {\n *  toJSONSchema() { ... }\n * }\n */\nexport const JSONSchemaTypeLoader: TypeLoaderFn = async (_, value) => {\n  if (supportsToJSONSchema(value)) {\n    return value.toJSONSchema()\n  }\n}\n"],"names":[],"mappings":";;AAMA,SAAS,qBAAqB,KAAA,EAAyC;AACrE,EAAA,OACE,OAAO,UAAU,QAAA,IACjB,KAAA,KAAU,QACV,cAAA,IAAkB,KAAA,IAClB,OAAO,KAAA,CAAM,YAAA,KAAiB,UAAA;AAElC;AAUO,MAAM,oBAAA,GAAqC,OAAO,CAAA,EAAG,KAAA,KAAU;AACpE,EAAA,IAAI,oBAAA,CAAqB,KAAK,CAAA,EAAG;AAC/B,IAAA,OAAO,MAAM,YAAA,EAAa;AAAA,EAC5B;AACF;;;;"}