feat(lib/modules/native): add fs

This commit is contained in:
PalmDevs 2025-08-19 22:13:13 +07:00
parent d8d85cfab1
commit 97534c9d04
No known key found for this signature in database
GPG key ID: 6FAE8F8677ACA8BA
3 changed files with 55 additions and 2 deletions

View file

@ -21,6 +21,9 @@
"./native": {
"default": "./src/native/index.ts"
},
"./native/fs": {
"default": "./src/native/fs.ts"
},
"./types": {
"types": "./src/types.ts"
}

View file

@ -0,0 +1,45 @@
import {
callBridgeMethod,
callBridgeMethodSync,
} from '@revenge-mod/modules/native'
export function readFile(path: string) {
return callBridgeMethod('revenge.fs.read', [path])
}
export function writeFile(path: string, data: string) {
return callBridgeMethod('revenge.fs.write', [path, data])
}
export function exists(path: string) {
return callBridgeMethod('revenge.fs.exists', [path])
}
export function deleteFile(path: string) {
return callBridgeMethod('revenge.fs.delete', [path])
}
export function readFileSync(path: string) {
return callBridgeMethodSync('revenge.fs.read', [path])
}
export function writeFileSync(path: string, data: string) {
return callBridgeMethodSync('revenge.fs.write', [path, data])
}
export function existsSync(path: string) {
return callBridgeMethodSync('revenge.fs.exists', [path])
}
export function deleteFileSync(path: string) {
return callBridgeMethodSync('revenge.fs.delete', [path])
}
declare module '@revenge-mod/modules/native' {
export interface Methods {
'revenge.fs.read': [[path: string], string]
'revenge.fs.write': [[path: string, data: string], void]
'revenge.fs.exists': [[path: string], boolean]
'revenge.fs.delete': [[path: string], boolean]
}
}

View file

@ -3,6 +3,7 @@ import * as PluginApiModulesFindersFilters from '@revenge-mod/modules/finders/fi
import * as PluginApiModulesMetroSubscriptions from '@revenge-mod/modules/metro/subscriptions'
import * as PluginApiModulesMetroUtils from '@revenge-mod/modules/metro/utils'
import * as PluginApiModulesNative_ from '@revenge-mod/modules/native'
import * as PluginApiModulesNativeFileSystem from '@revenge-mod/modules/native/fs'
import { spreadDescriptors } from '.'
export interface PluginApiModules {
@ -11,7 +12,9 @@ export interface PluginApiModules {
native: PluginApiModulesNative
}
export type PluginApiModulesNative = typeof PluginApiModulesNative_
export type PluginApiModulesNative = typeof PluginApiModulesNative_ & {
fs: typeof PluginApiModulesNativeFileSystem
}
export type PluginApiModulesMetro =
// biome-ignore format: Don't
@ -30,5 +33,7 @@ export const modules: PluginApiModules = {
PluginApiModulesMetroUtils,
spreadDescriptors(PluginApiModulesMetroSubscriptions, {}),
),
native: PluginApiModulesNative_,
native: spreadDescriptors(PluginApiModulesNative_, {
fs: PluginApiModulesNativeFileSystem,
}),
}