feat(lib/plugins/apis): include plugin, reduce getters on other apis

This commit is contained in:
PalmDevs 2025-05-13 10:28:55 +07:00
parent 8a8bbf7c8a
commit 4f3621ecd4
No known key found for this signature in database
GPG key ID: 6FAE8F8677ACA8BA
11 changed files with 38 additions and 57 deletions

View file

@ -3,8 +3,8 @@
"private": true,
"type": "module",
"exports": {
".": {
"default": "./src/index.ts"
"./constants": {
"default": "./src/constants.ts"
},
"./init": {
"default": "./src/init.ts"

View file

@ -27,21 +27,15 @@ export const discord: PluginApiDiscord = {
get design() {
return (this.design = require('@revenge-mod/discord/design'))
},
get native() {
return (this.native = require('@revenge-mod/discord/native'))
},
get modules() {
const api: PluginApiDiscordModules = {
get settings() {
const api = {
...require('@revenge-mod/discord/modules/settings'),
renderer: require('@revenge-mod/discord/modules/settings/renderer'),
}
native: require('@revenge-mod/discord/native'),
modules: {
get settings() {
const api = {
...require('@revenge-mod/discord/modules/settings'),
renderer: require('@revenge-mod/discord/modules/settings/renderer'),
}
return (this.settings = api)
},
}
return (this.modules = api)
return (this.settings = api)
},
},
}

View file

@ -1,21 +1,11 @@
import * as PatcherLibrary from '@revenge-mod/patcher'
import * as PluginsLibrary from '@revenge-mod/plugins'
import type { UnscopedInitPluginApi, UnscopedPluginApi } from '../types'
export const _uapi: UnscopedInitPluginApi | UnscopedPluginApi = {
get discord() {
return (this.discord = require('./discord').discord)
},
get externals() {
return (this.externals = require('./externals').externals)
},
get modules() {
return (this.modules = require('./modules').modules)
},
discord: require('./discord').discord,
externals: require('./externals').externals,
modules: require('./modules').modules,
plugins: require('./plugins').plugins,
patcher: PatcherLibrary,
plugins: PluginsLibrary,
get react() {
return (this.react = require('./react').react)
},
react: require('./react').react,
}

View file

@ -20,25 +20,15 @@ export type PluginApiModulesFinders =
}
export const modules: PluginApiModules = {
get finders() {
const api = {
...require('@revenge-mod/modules/finders/lookup'),
...require('@revenge-mod/modules/finders/wait'),
...require('@revenge-mod/modules/finders/find'),
filters: require('@revenge-mod/modules/finders/filters'),
}
return (this.finders = api)
finders: {
...require('@revenge-mod/modules/finders/lookup'),
...require('@revenge-mod/modules/finders/wait'),
...require('@revenge-mod/modules/finders/find'),
filters: require('@revenge-mod/modules/finders/filters'),
},
get metro() {
const api: PluginApiModulesMetro = {
...require('@revenge-mod/modules/metro/utils'),
...require('@revenge-mod/modules/metro/subscriptions'),
}
return (this.metro = api)
},
get native() {
return (this.native = require('@revenge-mod/modules/native'))
metro: {
...require('@revenge-mod/modules/metro/utils'),
...require('@revenge-mod/modules/metro/subscriptions'),
},
native: require('@revenge-mod/modules/native'),
}

View file

@ -0,0 +1,7 @@
export interface PluginApiPlugins {
constants: typeof import('@revenge-mod/plugins/constants')
}
export const plugins: PluginApiPlugins = {
constants: require('@revenge-mod/plugins/constants'),
}

View file

@ -1 +0,0 @@
export * from './constants'

View file

@ -6,6 +6,7 @@ import type { PluginApiDiscord } from './apis/discord'
import type { PluginApiExternals } from './apis/externals'
import type { PluginApiModules } from './apis/modules'
import type { PluginApiReact } from './apis/react'
import type { PluginApiPlugins } from './apis/plugins'
export type PluginFlags = (typeof PF)[keyof typeof PF]
export type PluginStatus = (typeof PS)[keyof typeof PS]
@ -19,7 +20,7 @@ export interface UnscopedInitPluginApi {
externals: PluginApiExternals
modules: PluginApiModules
patcher: typeof import('@revenge-mod/patcher')
plugins: typeof import('@revenge-mod/plugins')
plugins: PluginApiPlugins
react: PluginApiReact
// utils: PluginApiUtils
}

View file

@ -1,4 +1,4 @@
import { PluginFlags } from '@revenge-mod/plugins'
import { PluginFlags } from '@revenge-mod/plugins/constants'
import { InternalPluginFlags, registerPlugin } from '@revenge-mod/plugins/_'
import { _data } from '@revenge-mod/discord/_/modules/settings'

View file

@ -1,6 +1,6 @@
import { AppStartPerformance } from '@revenge-mod/discord/common'
import { PluginFlags } from '@revenge-mod/plugins'
import { PluginFlags } from '@revenge-mod/plugins/constants'
import { InternalPluginFlags, registerPlugin } from '@revenge-mod/plugins/_'
AppStartPerformance.mark('👊', 'Plugins register')

View file

@ -1,4 +1,4 @@
import { PluginFlags } from '@revenge-mod/plugins'
import { PluginFlags } from '@revenge-mod/plugins/constants'
import { InternalPluginFlags, registerPlugin } from '@revenge-mod/plugins/_'
import { byName, byProps } from '@revenge-mod/modules/finders/filters'

View file

@ -3,7 +3,7 @@ import { waitForModules } from '@revenge-mod/modules/finders/wait'
import { after } from '@revenge-mod/patcher'
import { PluginFlags } from '@revenge-mod/plugins'
import { PluginFlags } from '@revenge-mod/plugins/constants'
import { InternalPluginFlags, registerPlugin } from '@revenge-mod/plugins/_'
registerPlugin(