{"version":3,"file":"SimulatorAPI.cjs","names":["ChannelReceiver","ClientRequestType","APIRequestType"],"sources":["../src/SimulatorAPI.ts"],"sourcesContent":["import type {\n\tAllChannelReceiverOptions,\n\tTransactionMethod,\n\tTransactionsHandlers,\n\tTransactionsMethods,\n} from \"./channel\"\nimport { ChannelReceiver } from \"./channel\"\nimport type { APITransactions, ClientTransactions } from \"./types\"\nimport { APIRequestType, ClientRequestType } from \"./types\"\n\nexport type SimulatorAPIOptions = {\n\tactiveSliceAPI: boolean\n\tsliceZoneSizeAPI: boolean\n}\n\nexport const simulatorAPIDefaultOptions: Partial<AllChannelReceiverOptions> & SimulatorAPIOptions =\n\t{\n\t\trequestIDPrefix: \"api-\",\n\t\tactiveSliceAPI: false,\n\t\tsliceZoneSizeAPI: false,\n\t}\n\nexport class SimulatorAPI\n\textends ChannelReceiver<ClientTransactions, SimulatorAPIOptions>\n\timplements TransactionsMethods<APITransactions>\n{\n\tconstructor(\n\t\trequestHandlers: Omit<TransactionsHandlers<ClientTransactions>, ClientRequestType.Ping> &\n\t\t\tPartial<Pick<TransactionsHandlers<ClientTransactions>, ClientRequestType.Ping>>,\n\t\toptions?: Partial<AllChannelReceiverOptions & SimulatorAPIOptions>,\n\t) {\n\t\t// True if `options.debug` is true or `debug=true` is among query parameters\n\t\tconst debug =\n\t\t\toptions?.debug || /[?&]debug=true/i.test(decodeURIComponent(window.location.search))\n\n\t\tsuper(\n\t\t\t{\n\t\t\t\t[ClientRequestType.Ping]: (_req, res) => {\n\t\t\t\t\treturn res.success(\"pong\")\n\t\t\t\t},\n\t\t\t\t...requestHandlers,\n\t\t\t},\n\t\t\t{\n\t\t\t\t...simulatorAPIDefaultOptions,\n\t\t\t\t...options,\n\t\t\t\tdebug,\n\t\t\t},\n\t\t)\n\n\t\t// Append API to window object\n\t\tif (debug) {\n\t\t\twindow.prismic ||= {}\n\t\t\twindow.prismic.sliceSimulator ||= {}\n\t\t\twindow.prismic.sliceSimulator.api ||= []\n\t\t\twindow.prismic.sliceSimulator.api.push(this)\n\t\t}\n\t}\n\n\t[APIRequestType.SetActiveSlice]: TransactionMethod<\n\t\tAPITransactions[APIRequestType.SetActiveSlice]\n\t> = async (data) => {\n\t\treturn await this.postFormattedRequest(APIRequestType.SetActiveSlice, data)\n\t};\n\n\t[APIRequestType.SetSliceZoneSize]: TransactionMethod<\n\t\tAPITransactions[APIRequestType.SetSliceZoneSize]\n\t> = async (data) => {\n\t\treturn await this.postFormattedRequest(APIRequestType.SetSliceZoneSize, data)\n\t}\n}\n"],"mappings":";;;AAeA,MAAa,6BACZ;CACC,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB;AAEF,IAAa,eAAb,cACSA,wBAAAA,gBAET;CACC,YACC,iBAEA,SACC;EAED,MAAM,QACL,SAAS,SAAS,kBAAkB,KAAK,mBAAmB,OAAO,SAAS,OAAO,CAAC;AAErF,QACC;IACEC,cAAAA,kBAAkB,QAAQ,MAAM,QAAQ;AACxC,WAAO,IAAI,QAAQ,OAAO;;GAE3B,GAAG;GACH,EACD;GACC,GAAG;GACH,GAAG;GACH;GACA,CACD;AAGD,MAAI,OAAO;AACV,UAAO,YAAY,EAAE;AACrB,UAAO,QAAQ,mBAAmB,EAAE;AACpC,UAAO,QAAQ,eAAe,QAAQ,EAAE;AACxC,UAAO,QAAQ,eAAe,IAAI,KAAK,KAAK;;;CAI9C,CAACC,cAAAA,eAAe,kBAEZ,OAAO,SAAS;AACnB,SAAO,MAAM,KAAK,qBAAqBA,cAAAA,eAAe,gBAAgB,KAAK;;CAG5E,CAACA,cAAAA,eAAe,oBAEZ,OAAO,SAAS;AACnB,SAAO,MAAM,KAAK,qBAAqBA,cAAAA,eAAe,kBAAkB,KAAK"}