chore(lib/plugins): move utils assignments to own lib

This commit is contained in:
PalmDevs 2025-07-11 17:55:54 +07:00
parent b3d9f0c9ec
commit 0746db3648
No known key found for this signature in database
GPG key ID: 6FAE8F8677ACA8BA
7 changed files with 30 additions and 11 deletions

View file

@ -2,13 +2,13 @@ import * as patcher from '@revenge-mod/patcher'
import * as storage from '@revenge-mod/storage'
import { modules } from './modules'
import { plugins } from './plugins'
import { utils } from './utils'
import type {
UnscopedInitPluginApi,
UnscopedPluginApi,
UnscopedPreInitPluginApi,
} from '../types'
// @ts-expect-error: This will be modified by libraries later
export const pUnscopedApi:
| UnscopedPreInitPluginApi
| UnscopedInitPluginApi
@ -17,5 +17,4 @@ export const pUnscopedApi:
patcher,
plugins,
storage,
utils,
}

View file

@ -10,8 +10,6 @@ import type { UnscopedInitPluginApi } from './types'
const uapi = pUnscopedApi as UnscopedInitPluginApi
uapi.assets = AssetsLibrary
uapi.react = react
uapi.utils.discord = require('@revenge-mod/utils/discord')
uapi.utils.react = require('@revenge-mod/utils/react')
for (const plugin of pList.values())
if (plugin.flags & PluginFlags.Enabled) initPlugin(plugin)

View file

@ -2,7 +2,6 @@ import type { FunctionComponent } from 'react'
import type { PluginApiModules } from './apis/modules'
import type { PluginApiPlugins } from './apis/plugins'
import type { PluginApiReact } from './apis/react'
import type { PluginApiUtils, PreInitPluginApiUtils } from './apis/utils'
import type { PluginFlags, PluginStatus } from './constants'
// biome-ignore lint/suspicious/noEmptyInterface: To be extended by actual extensions
@ -20,7 +19,6 @@ export interface UnscopedPreInitPluginApi<
patcher: typeof import('@revenge-mod/patcher')
plugins: PluginApiPlugins
storage: typeof import('@revenge-mod/storage')
utils: PreInitPluginApiUtils
}
/**
@ -32,7 +30,6 @@ export interface UnscopedInitPluginApi<
> extends UnscopedPreInitPluginApi<O> {
assets: typeof import('@revenge-mod/assets')
react: PluginApiReact
utils: PluginApiUtils
}
/**
@ -41,9 +38,7 @@ export interface UnscopedInitPluginApi<
*/
export interface UnscopedPluginApi<
O extends PluginApiExtensionsOptions = PluginApiExtensionsOptions,
> extends UnscopedInitPluginApi<O> {
components: typeof import('@revenge-mod/components')
}
> extends UnscopedInitPluginApi<O> {}
export type PluginCleanup = () => any
export type PluginCleanupApi = (...fns: PluginCleanup[]) => void

View file

@ -35,6 +35,12 @@
},
"./types": {
"types": "./src/types.ts"
},
"./preinit": {
"default": "./src/preinit.ts"
},
"./init": {
"default": "./src/init.ts"
}
}
}

7
lib/utils/src/init.ts Normal file
View file

@ -0,0 +1,7 @@
import { pUnscopedApi } from '@revenge-mod/plugins/_'
import type { PluginApiUtils } from './preinit'
const utils = pUnscopedApi.utils as PluginApiUtils
utils.discord = require('@revenge-mod/utils/discord')
utils.react = require('@revenge-mod/utils/react')

View file

@ -1,4 +1,6 @@
export const utils: PreInitPluginApiUtils = {
import { pUnscopedApi } from '@revenge-mod/plugins/_'
pUnscopedApi.utils = {
callback: require('@revenge-mod/utils/callback'),
error: require('@revenge-mod/utils/error'),
object: require('@revenge-mod/utils/object'),
@ -20,3 +22,13 @@ export interface PluginApiUtils extends PreInitPluginApiUtils {
react: typeof import('@revenge-mod/utils/react')
discord: typeof import('@revenge-mod/utils/discord')
}
declare module '@revenge-mod/plugins/types' {
export interface UnscopedPreInitPluginApi {
utils: PreInitPluginApiUtils
}
export interface UnscopedInitPluginApi {
utils: PluginApiUtils
}
}

View file

@ -19,6 +19,7 @@ onModuleFirstRequired(IndexModuleId, function onIndexRequired() {
nativeLoggingHook(`\u001b[31m--- PREINIT STAGE ---\u001b[0m`, 1)
// Initialize preinit libraries
require('@revenge-mod/utils/preinit')
require('@revenge-mod/react/preinit')
require('@revenge-mod/assets/preinit')
require('@revenge-mod/storage/preinit')
@ -37,6 +38,7 @@ onModuleFirstRequired(IndexModuleId, function onIndexRequired() {
)
// Initialize init libraries
require('@revenge-mod/utils/init')
require('@revenge-mod/storage/init')
require('@revenge-mod/discord/init')
require('@revenge-mod/components/init')