{"version":3,"names":["setupCallGuard","setupConsole","NativeReanimatedModule","shouldBeUseWeb","makeShareableCloneOnUIRecursive","makeShareableCloneRecursive","SHOULD_BE_USE_WEB","createWorkletRuntime","name","initializer","runOnRuntime","workletRuntime","worklet","__DEV__","__workletHash","undefined","Error","_WORKLET","_len","arguments","length","args","Array","_key","_scheduleOnRuntime","_len2","_key2","scheduleOnRuntime"],"sources":["runtimes.ts"],"sourcesContent":["'use strict';\nimport type { __ComplexWorkletFunction, WorkletFunction } from './commonTypes';\nimport { setupCallGuard, setupConsole } from './initializers';\nimport NativeReanimatedModule from './NativeReanimated';\nimport { shouldBeUseWeb } from './PlatformChecker';\nimport {\n makeShareableCloneOnUIRecursive,\n makeShareableCloneRecursive,\n} from './shareables';\n\nconst SHOULD_BE_USE_WEB = shouldBeUseWeb();\n\nexport type WorkletRuntime = {\n __hostObjectWorkletRuntime: never;\n readonly name: string;\n};\n\n/**\n * Lets you create a new JS runtime which can be used to run worklets possibly on different threads than JS or UI thread.\n *\n * @param name - A name used to identify the runtime which will appear in devices list in Chrome DevTools.\n * @param initializer - An optional worklet that will be run synchronously on the same thread immediately after the runtime is created.\n * @returns WorkletRuntime which is a jsi::HostObject\\ - {@link WorkletRuntime}\n * @see https://docs.swmansion.com/react-native-reanimated/docs/threading/createWorkletRuntime\n */\nexport function createWorkletRuntime(\n name: string,\n initializer?: __ComplexWorkletFunction<[], void>\n) {\n return NativeReanimatedModule.createWorkletRuntime(\n name,\n makeShareableCloneRecursive(() => {\n 'worklet';\n setupCallGuard();\n setupConsole();\n initializer?.();\n })\n );\n}\n\n// @ts-expect-error Check `runOnUI` overload.\nexport function runOnRuntime(\n workletRuntime: WorkletRuntime,\n worklet: (...args: Args) => ReturnValue\n): WorkletFunction;\n/**\n * Schedule a worklet to execute on the background queue.\n */\nexport function runOnRuntime(\n workletRuntime: WorkletRuntime,\n worklet: WorkletFunction\n): (...args: Args) => void {\n 'worklet';\n if (__DEV__ && !SHOULD_BE_USE_WEB && worklet.__workletHash === undefined) {\n throw new Error(\n '[Reanimated] The function passed to `runOnRuntime` is not a worklet.' +\n (_WORKLET\n ? ' Please make sure that `processNestedWorklets` option in Reanimated Babel plugin is enabled.'\n : '')\n );\n }\n if (_WORKLET) {\n return (...args) =>\n _scheduleOnRuntime(\n workletRuntime,\n makeShareableCloneOnUIRecursive(() => {\n 'worklet';\n worklet(...args);\n })\n );\n }\n return (...args) =>\n NativeReanimatedModule.scheduleOnRuntime(\n workletRuntime,\n makeShareableCloneRecursive(() => {\n 'worklet';\n worklet(...args);\n })\n );\n}\n"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,cAAc,EAAEC,YAAY,QAAQ,gBAAgB;AAC7D,OAAOC,sBAAsB,MAAM,oBAAoB;AACvD,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SACEC,+BAA+B,EAC/BC,2BAA2B,QACtB,cAAc;AAErB,MAAMC,iBAAiB,GAAGH,cAAc,EAAE;AAO1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,oBAAoBA,CAClCC,IAAY,EACZC,WAAgD,EAChD;EACA,OAAOP,sBAAsB,CAACK,oBAAoB,CAChDC,IAAI,EACJH,2BAA2B,CAAC,MAAM;IAChC,SAAS;;IACTL,cAAc,EAAE;IAChBC,YAAY,EAAE;IACdQ,WAAW,aAAXA,WAAW,uBAAXA,WAAW,EAAI;EACjB,CAAC,CAAC,CACH;AACH;;AAEA;;AAKA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAC1BC,cAA8B,EAC9BC,OAA2C,EAClB;EACzB,SAAS;;EACT,IAAIC,OAAO,IAAI,CAACP,iBAAiB,IAAIM,OAAO,CAACE,aAAa,KAAKC,SAAS,EAAE;IACxE,MAAM,IAAIC,KAAK,CACb,sEAAsE,IACnEC,QAAQ,GACL,8FAA8F,GAC9F,EAAE,CAAC,CACV;EACH;EACA,IAAIA,QAAQ,EAAE;IACZ,OAAO;MAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAIC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAAA;MAAA,OACbC,kBAAkB,CAChBb,cAAc,EACdP,+BAA+B,CAAC,MAAM;QACpC,SAAS;;QACTQ,OAAO,CAAC,GAAGS,IAAI,CAAC;MAClB,CAAC,CAAC,CACH;IAAA;EACL;EACA,OAAO;IAAA,SAAAI,KAAA,GAAAN,SAAA,CAAAC,MAAA,EAAIC,IAAI,OAAAC,KAAA,CAAAG,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;MAAJL,IAAI,CAAAK,KAAA,IAAAP,SAAA,CAAAO,KAAA;IAAA;IAAA,OACbxB,sBAAsB,CAACyB,iBAAiB,CACtChB,cAAc,EACdN,2BAA2B,CAAC,MAAM;MAChC,SAAS;;MACTO,OAAO,CAAC,GAAGS,IAAI,CAAC;IAClB,CAAC,CAAC,CACH;EAAA;AACL"}