feat: update TypeScript config for platform services

- Add useDefineForClassFields for class field initialization
- Remove test-playwright from includes
- Add tsconfig.node.json reference
- Remove redundant node_modules exclude
This commit is contained in:
Matthew Raymer
2025-04-06 06:58:25 +00:00
parent f72562804d
commit abf18835f6
7 changed files with 327 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
import { PlatformService } from "../PlatformService";
import { Capacitor } from "@capacitor/core";
import { Filesystem, Directory } from "@capacitor/filesystem";
import { Camera, CameraResultType, CameraSource } from "@capacitor/camera";
import { App } from "@capacitor/app";
export class CapacitorPlatformService implements PlatformService {
async readFile(path: string): Promise<string> {
const file = await Filesystem.readFile({
path,
directory: Directory.Data,
});
return file.data;
}
async writeFile(path: string, content: string): Promise<void> {
await Filesystem.writeFile({
path,
data: content,
directory: Directory.Data,
});
}
async deleteFile(path: string): Promise<void> {
await Filesystem.deleteFile({
path,
directory: Directory.Data,
});
}
async listFiles(directory: string): Promise<string[]> {
const result = await Filesystem.readdir({
path: directory,
directory: Directory.Data,
});
return result.files;
}
async takePicture(): Promise<string> {
const image = await Camera.getPhoto({
quality: 90,
allowEditing: true,
resultType: CameraResultType.Uri,
source: CameraSource.Camera,
});
return image.webPath || "";
}
async pickImage(): Promise<string> {
const image = await Camera.getPhoto({
quality: 90,
allowEditing: true,
resultType: CameraResultType.Uri,
source: CameraSource.Photos,
});
return image.webPath || "";
}
isCapacitor(): boolean {
return true;
}
isElectron(): boolean {
return false;
}
isPyWebView(): boolean {
return false;
}
isWeb(): boolean {
return false;
}
async handleDeepLink(url: string): Promise<void> {
// Capacitor handles deep links automatically
// This is just a placeholder for the interface
return Promise.resolve();
}
}