Skip to content

Commit f591fc7

Browse files
committed
feat(lib/plugins): expose utils, components to unscoped API
1 parent 4b2a612 commit f591fc7

File tree

5 files changed

+35
-3
lines changed

5 files changed

+35
-3
lines changed

lib/components/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
"private": true,
44
"type": "module",
55
"exports": {
6+
".": {
7+
"default": "./src/index.ts"
8+
},
69
"./FormSwitch": {
710
"default": "./src/FormSwitch.tsx"
811
},
@@ -25,4 +28,4 @@
2528
"default": "./src/_internal.ts"
2629
}
2730
}
28-
}
31+
}

lib/plugins/src/apis/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import * as patcher from '@revenge-mod/patcher'
22
import * as storage from '@revenge-mod/storage'
33
import { modules } from './modules'
44
import { plugins } from './plugins'
5+
import { utils } from './utils'
56
import type {
67
UnscopedInitPluginApi,
78
UnscopedPluginApi,
@@ -16,4 +17,5 @@ export const pUnscopedApi:
1617
patcher,
1718
plugins,
1819
storage,
20+
utils,
1921
}

lib/plugins/src/apis/utils.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
export const utils: PreInitPluginApiUtils = {
2+
callback: require('@revenge-mod/utils/callback'),
3+
error: require('@revenge-mod/utils/error'),
4+
object: require('@revenge-mod/utils/object'),
5+
promise: require('@revenge-mod/utils/promise'),
6+
proxy: require('@revenge-mod/utils/proxy'),
7+
tree: require('@revenge-mod/utils/tree'),
8+
}
9+
10+
export interface PreInitPluginApiUtils {
11+
callback: typeof import('@revenge-mod/utils/callback')
12+
error: typeof import('@revenge-mod/utils/error')
13+
object: typeof import('@revenge-mod/utils/object')
14+
promise: typeof import('@revenge-mod/utils/promise')
15+
proxy: typeof import('@revenge-mod/utils/proxy')
16+
tree: typeof import('@revenge-mod/utils/tree')
17+
}
18+
19+
export interface PluginApiUtils extends PreInitPluginApiUtils {
20+
react: typeof import('@revenge-mod/utils/react')
21+
discord: typeof import('@revenge-mod/utils/discord')
22+
}

lib/plugins/src/init.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ import type { UnscopedInitPluginApi } from './types'
99
// Setup init plugin APIs
1010
const uapi = pUnscopedApi as UnscopedInitPluginApi
1111
uapi.assets = AssetsLibrary
12+
uapi.components = require('@revenge-mod/components')
1213
uapi.react = react
14+
uapi.utils.discord = require('@revenge-mod/utils/discord')
15+
uapi.utils.react = require('@revenge-mod/utils/react')
1316

1417
for (const plugin of pList.values())
1518
if (plugin.flags & PluginFlags.Enabled) initPlugin(plugin)

lib/plugins/src/types.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import type { FunctionComponent } from 'react'
22
import type { PluginApiModules } from './apis/modules'
33
import type { PluginApiPlugins } from './apis/plugins'
44
import type { PluginApiReact } from './apis/react'
5+
import type { PluginApiUtils, PreInitPluginApiUtils } from './apis/utils'
56
import type { PluginFlags, PluginStatus } from './constants'
67

78
// biome-ignore lint/suspicious/noEmptyInterface: To be extended by actual extensions
@@ -19,7 +20,7 @@ export interface UnscopedPreInitPluginApi<
1920
patcher: typeof import('@revenge-mod/patcher')
2021
plugins: PluginApiPlugins
2122
storage: typeof import('@revenge-mod/storage')
22-
// utils: PluginApiUtils
23+
utils: PreInitPluginApiUtils
2324
}
2425

2526
/**
@@ -31,6 +32,7 @@ export interface UnscopedInitPluginApi<
3132
> extends UnscopedPreInitPluginApi<O> {
3233
assets: typeof import('@revenge-mod/assets')
3334
react: PluginApiReact
35+
utils: PluginApiUtils
3436
}
3537

3638
/**
@@ -40,7 +42,7 @@ export interface UnscopedInitPluginApi<
4042
export interface UnscopedPluginApi<
4143
O extends PluginApiExtensionsOptions = PluginApiExtensionsOptions,
4244
> extends UnscopedInitPluginApi<O> {
43-
// ui: typeof import('@revenge-mod/ui')
45+
components: typeof import('@revenge-mod/components')
4446
}
4547

4648
export type PluginCleanup = () => any

0 commit comments

Comments
 (0)