From 07c6d27e4191d8584cba7cc23b2c7e6035fce3d2 Mon Sep 17 00:00:00 2001 From: Nicola Spadari Date: Sun, 16 Jun 2024 12:47:51 +0200 Subject: [PATCH] Automatic tauri imports --- nuxt.config.ts | 20 -------------------- src/modules/tauri.ts | 26 ++++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 20 deletions(-) create mode 100644 src/modules/tauri.ts diff --git a/nuxt.config.ts b/nuxt.config.ts index 9ef9956..bf403d7 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -31,26 +31,6 @@ export default defineNuxtConfig({ css: [ "@unocss/reset/tailwind.css" ], - imports: { - presets: [ - { - from: "@tauri-apps/api/app", - imports: ["getName", "getVersion", "getTauriVersion"] - }, - { - from: "@tauri-apps/plugin-shell", - imports: ["Command"] - }, - { - from: "@tauri-apps/plugin-os", - imports: ["platform"] - }, - { - from: "@tauri-apps/plugin-notification", - imports: ["sendNotification", "requestPermission", "isPermissionGranted"] - } - ] - }, vite: { clearScreen: false, envPrefix: ["VITE_", "TAURI_"], diff --git a/src/modules/tauri.ts b/src/modules/tauri.ts new file mode 100644 index 0000000..fa2b3c5 --- /dev/null +++ b/src/modules/tauri.ts @@ -0,0 +1,26 @@ +import { addImports, defineNuxtModule } from "nuxt/kit"; +import * as tauriApp from "@tauri-apps/api/app"; +import * as tauriShell from "@tauri-apps/plugin-shell"; +import * as tauriOs from "@tauri-apps/plugin-os"; +import * as tauriNotification from "@tauri-apps/plugin-notification"; + +export default defineNuxtModule({ + meta: { + name: "nuxt-tauri", + configKey: "nuxt-tauri" + }, + setup() { + Object.keys(tauriApp).filter((name) => name !== "default").forEach((name) => { + addImports({ from: "@tauri-apps/api/app", name }); + }); + Object.keys(tauriShell).filter((name) => name !== "default").forEach((name) => { + addImports({ from: "@tauri-apps/plugin-shell", name }); + }); + Object.keys(tauriOs).filter((name) => name !== "default").forEach((name) => { + addImports({ from: "@tauri-apps/plugin-os", name }); + }); + Object.keys(tauriNotification).filter((name) => name !== "default").forEach((name) => { + addImports({ from: "@tauri-apps/plugin-notification", name }); + }); + } +});