forked from jsnbuchanan/crowd-funder-for-time-pwa
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:
80
src/services/platforms/CapacitorPlatformService.ts
Normal file
80
src/services/platforms/CapacitorPlatformService.ts
Normal 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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user