{"version":3,"sources":["jsdelivr-header.js","/npm/convex-vue@0.1.5/dist/index.mjs"],"names":[],"mappings":"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","file":"/npm/convex-vue@0.1.5/dist/index.mjs","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/convex-vue@0.1.5/dist/index.mjs\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { computed, inject, onScopeDispose, ref, shallowRef, toValue, watch } from \"vue\";\nimport { getFunctionName } from \"convex/server\";\nimport { ConvexClient, ConvexHttpClient } from \"convex/browser\";\n\n//#region src/composables/useConvexContext.ts\n/**\n* Returns the Convex plugin context\n*/\nfunction useConvexContext() {\n\tconst convexVueContext = inject(\"convex-vue\");\n\tif (!convexVueContext) throw new Error(\"Context not found\");\n\treturn convexVueContext;\n}\n\n//#endregion\n//#region src/composables/useConvexClient.ts\n/**\n* Returns the Convex client instance.\n*/\nfunction useConvexClient() {\n\tconst convexVueContext = useConvexContext();\n\tif (!convexVueContext.clientRef.value) throw new Error(\"Client not initialized\");\n\treturn convexVueContext.clientRef.value;\n}\n\n//#endregion\n//#region src/composables/useConvexHttpClient.ts\n/**\n* Returns the Convex HTTP client instance.\n*/\nfunction useConvexHttpClient() {\n\tconst convexVueContext = useConvexContext();\n\tif (!convexVueContext.httpClientRef.value) throw new Error(\"HTTP client not initialized\");\n\treturn convexVueContext.httpClientRef.value;\n}\n\n//#endregion\n//#region src/composables/useConvexHttpQuery.ts\n/**\n* A composable that returns a function to call a Convex query via the Convex HTTP API.\n* This is useful for server-side rendering or static site generation.\n*/\nfunction useConvexHttpQuery(query, args = {}) {\n\tconst client = useConvexHttpClient();\n\treturn client.query(query, toValue(args));\n}\n\n//#endregion\n//#region src/composables/useConvexMutation.ts\n/**\n* Appliess a mutation to the Convex server.\n*/\nfunction useConvexMutation(mutationReference, { optimisticUpdate } = {}) {\n\tconst client = useConvexClient();\n\tconst error = ref(null);\n\tconst isPendingCount = ref(0);\n\tconst mutate = async (args) => {\n\t\t++isPendingCount.value;\n\t\terror.value = null;\n\t\treturn await client.mutation(mutationReference, toValue(args), { optimisticUpdate }).catch((e) => {\n\t\t\terror.value = e;\n\t\t\tthrow e;\n\t\t}).finally(() => {\n\t\t\t--isPendingCount.value;\n\t\t});\n\t};\n\treturn {\n\t\tmutate,\n\t\terror,\n\t\tisPending: computed(() => Boolean(isPendingCount.value))\n\t};\n}\n\n//#endregion\n//#region src/composables/useConvexQuery.ts\nfunction useConvexQuery(query, ...rest) {\n\tconst queryArgs = computed(() => toValue(rest[0]));\n\tconst queryOpts = rest[1];\n\tconst convexContext = useConvexContext();\n\tconst isServer = typeof window === \"undefined\";\n\tconst ssrEnabled = queryOpts?.server ?? convexContext.options.server ?? true;\n\tif (isServer && !ssrEnabled) return {\n\t\tdata: ref(void 0),\n\t\terror: ref(null),\n\t\tisPending: ref(false),\n\t\tsuspense: () => Promise.resolve(void 0)\n\t};\n\tif (isServer) {\n\t\tconst convex$1 = useConvexHttpClient();\n\t\tconst data$1 = ref(void 0);\n\t\tconst error$1 = ref(null);\n\t\tconst promise = convex$1.query(query, queryArgs.value).then((result) => {\n\t\t\tdata$1.value = result;\n\t\t\terror$1.value = null;\n\t\t\treturn result;\n\t\t}).catch((err) => {\n\t\t\tdata$1.value = void 0;\n\t\t\terror$1.value = err;\n\t\t\tthrow err;\n\t\t});\n\t\treturn {\n\t\t\tdata: data$1,\n\t\t\terror: error$1,\n\t\t\tisPending: computed(() => data$1.value === void 0),\n\t\t\tsuspense: () => promise\n\t\t};\n\t}\n\tconst convex = useConvexClient();\n\tconst data = ref(convex.client.localQueryResult(getFunctionName(query), queryArgs.value));\n\tconst error = ref(null);\n\tconst suspense = () => {\n\t\tif (data.value) return Promise.resolve(data.value);\n\t\tif (error.value) return Promise.reject(error.value);\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst stop = watch(() => [data.value, error.value], ([newData, newError]) => {\n\t\t\t\tif (newData) {\n\t\t\t\t\tstop();\n\t\t\t\t\tresolve(newData);\n\t\t\t\t} else if (newError) {\n\t\t\t\t\tstop();\n\t\t\t\t\treject(newError);\n\t\t\t\t}\n\t\t\t}, { immediate: true });\n\t\t});\n\t};\n\tconst handleError = (err) => {\n\t\tdata.value = null;\n\t\terror.value = err;\n\t};\n\tconst handleResult = (result) => {\n\t\tdata.value = result;\n\t\terror.value = null;\n\t};\n\tconst createSubscription = (args) => {\n\t\treturn convex.onUpdate(query, args, handleResult, handleError);\n\t};\n\tlet cancelSubscription;\n\twatch(queryArgs, (newArgs) => {\n\t\tcancelSubscription?.();\n\t\tcancelSubscription = createSubscription(newArgs);\n\t}, { immediate: true });\n\tonScopeDispose(() => cancelSubscription?.());\n\treturn {\n\t\tdata,\n\t\terror,\n\t\tisPending: computed(() => data.value === void 0),\n\t\tsuspense\n\t};\n}\n\n//#endregion\n//#region src/plugin.ts\nconst convexVue = { install(app, initialOptions) {\n\tconst clientRef = shallowRef();\n\tconst httpClientRef = shallowRef();\n\tconst initClient = (options) => {\n\t\toptions ??= initialOptions;\n\t\tclientRef.value = new ConvexClient(options.url, options.clientOptions);\n\t\thttpClientRef.value = new ConvexHttpClient(options.url, {\n\t\t\tlogger: options?.clientOptions?.logger,\n\t\t\tskipConvexDeploymentUrlCheck: options.clientOptions?.skipConvexDeploymentUrlCheck\n\t\t});\n\t};\n\tif (!initialOptions.manualInit) initClient(initialOptions);\n\tapp.provide(\"convex-vue\", {\n\t\toptions: initialOptions,\n\t\tclientRef,\n\t\thttpClientRef,\n\t\tinitClient\n\t});\n} };\n\n//#endregion\nexport { convexVue, useConvexClient, useConvexHttpClient, useConvexHttpQuery, useConvexMutation, useConvexQuery };"]}