{
  "version": 3,
  "sources": ["../../../src/binding/make-binding.ts"],
  "sourcesContent": ["import { getStatsHandler } from '../config/stats-handler.mjs';\nimport { getTypedKeys } from '../internal-utils/get-typed-keys.mjs';\nimport type { EmptyObject } from '../types/empty';\nimport { BindingImpl } from './internal/binding-impl.mjs';\nimport type { Binding } from './types/binding';\nimport type { MakeBindingArgs } from './types/binding-args';\nimport type { BindingInitializer } from './types/binding-initializer';\n\n/** Makes a binding without using any React contexts. */\nexport const makeBinding = <GetType = any, ExtraFieldsT extends object = EmptyObject>(\n  initialValue: BindingInitializer<GetType>,\n  args: MakeBindingArgs<GetType, ExtraFieldsT>\n): Binding<GetType> & ExtraFieldsT => {\n  const output = new BindingImpl<GetType>(initialValue, args) as unknown as Binding<GetType> & ExtraFieldsT;\n  const extraFields = args.addFields?.(output);\n  if (extraFields !== undefined) {\n    for (const key of getTypedKeys(extraFields)) {\n      output[key] = extraFields[key] as (typeof output)[typeof key];\n    }\n  }\n\n  getStatsHandler().trackDidMakeBinding?.({ binding: output });\n\n  return output;\n};\n"],
  "mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,oBAAoB;AAE7B,SAAS,mBAAmB;AAMrB,MAAM,cAAc,CACzB,cACA,SACoC;AACpC,QAAM,SAAS,IAAI,YAAqB,cAAc,IAAI;AAC1D,QAAM,cAAc,KAAK,YAAY,MAAM;AAC3C,MAAI,gBAAgB,QAAW;AAC7B,eAAW,OAAO,aAAa,WAAW,GAAG;AAC3C,aAAO,GAAG,IAAI,YAAY,GAAG;AAAA,IAC/B;AAAA,EACF;AAEA,kBAAgB,EAAE,sBAAsB,EAAE,SAAS,OAAO,CAAC;AAE3D,SAAO;AACT;",
  "names": []
}
