qrcode-reader-vue3
Version:
A set of Vue.js components for detecting and decoding QR codes.
45 lines (36 loc) • 1.16 kB
text/typescript
import type { App, Plugin } from "vue";
import QrcodeStream from "./components/QrcodeStream.vue";
import QrcodeCapture from "./components/QrcodeCapture.vue";
import QrcodeDropZone from "./components/QrcodeDropZone.vue";
// Install the components
export function install(app: App): void {
app.component("qrcode-stream", QrcodeStream);
app.component("qrcode-capture", QrcodeCapture);
app.component("qrcode-drop-zone", QrcodeDropZone);
}
// Expose the components
export { QrcodeStream, QrcodeCapture, QrcodeDropZone };
// Export types
export type { QRCodeResult, QRCodeLocation } from "./misc/scanner";
/* -- Plugin definition & Auto-install -- */
/* You shouldn't have to modify the code below */
// Plugin
const plugin: Plugin = { install };
export default plugin;
// Auto-install
declare global {
interface Window {
Vue?: App;
}
}
let GlobalVue: App | null = null;
if (typeof window !== "undefined") {
GlobalVue = window.Vue ?? null;
} else {
type GlobalWithVue = typeof globalThis & { Vue?: App };
const maybeGlobal = globalThis as GlobalWithVue;
GlobalVue = maybeGlobal.Vue ?? null;
}
if (GlobalVue) {
GlobalVue.use(plugin);
}