aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorzwlucas <lucas.fariamo08@gmail.com>2026-06-05 20:52:54 +0000
committerzwlucas <lucas.fariamo08@gmail.com>2026-06-05 20:52:54 +0000
commit09f964451d7d92e9891430ec4595c1276d486aab (patch)
tree28da4483f5c28924a8c47fceb648b1baebe88224 /src/lib
downloadyace-09f964451d7d92e9891430ec4595c1276d486aab.tar.gz
yace-09f964451d7d92e9891430ec4595c1276d486aab.zip
feat: uploadHEADmaster
Signed-off-by: zwlucas <lucas.fariamo08@gmail.com>
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/languageMap.ts23
-rw-r--r--src/lib/tauri.ts46
2 files changed, 69 insertions, 0 deletions
diff --git a/src/lib/languageMap.ts b/src/lib/languageMap.ts
new file mode 100644
index 0000000..ec8d6b7
--- /dev/null
+++ b/src/lib/languageMap.ts
@@ -0,0 +1,23 @@
+import type { Language } from '@/types'
+
+const extensionMap: Record<string, Language> = {
+ ts: 'typescript',
+ tsx: 'typescript',
+ js: 'javascript',
+ jsx: 'javascript',
+ mjs: 'javascript',
+ cjs: 'javascript',
+ rs: 'rust',
+ json: 'json',
+ md: 'markdown',
+ mdx: 'markdown',
+ html: 'html',
+ htm: 'html',
+ css: 'css',
+ py: 'python',
+}
+
+export function detectLanguage(filename: string): Language {
+ const ext = filename.split('.').pop()?.toLowerCase() ?? ''
+ return extensionMap[ext] ?? 'plaintext'
+}
diff --git a/src/lib/tauri.ts b/src/lib/tauri.ts
new file mode 100644
index 0000000..294f117
--- /dev/null
+++ b/src/lib/tauri.ts
@@ -0,0 +1,46 @@
+import { invoke } from '@tauri-apps/api/tauri'
+import type { FileEntry } from '@/types'
+
+export async function readFile(path: string): Promise<string> {
+ return invoke<string>('read_file', { path })
+}
+
+export async function writeFile(path: string, content: string): Promise<void> {
+ return invoke<void>('write_file', { path, content })
+}
+
+export async function openDir(path: string): Promise<FileEntry[]> {
+ return invoke<FileEntry[]>('open_dir', { path })
+}
+
+export async function pickDirectory(): Promise<string | null> {
+ const { open } = await import('@tauri-apps/api/dialog')
+ const selected = await open({
+ directory: true,
+ multiple: false,
+ title: 'Open Folder',
+ })
+ return selected as string | null
+}
+
+export async function createDir(path: string): Promise<void> {
+ return invoke<void>('create_dir', { path })
+}
+
+export async function pickFile(): Promise<string | null> {
+ const { open } = await import('@tauri-apps/api/dialog')
+ const selected = await open({
+ multiple: false,
+ title: 'Open File',
+ })
+ return (selected as string) ?? null
+}
+
+export async function saveDialog(defaultName?: string): Promise<string | null> {
+ const { save } = await import('@tauri-apps/api/dialog')
+ const selected = await save({
+ defaultPath: defaultName,
+ title: 'Save File',
+ })
+ return selected ?? null
+}