feat(lib/discord/common): export utils

This commit is contained in:
PalmDevs 2025-06-14 17:58:20 +07:00
parent 23d250d163
commit ad256fd9f3
No known key found for this signature in database
GPG key ID: 6FAE8F8677ACA8BA
4 changed files with 50 additions and 0 deletions

View file

@ -15,6 +15,9 @@
"./common/flux": {
"default": "./src/common/flux.ts"
},
"./common/utils": {
"default": "./src/common/utils.ts"
},
"./design": {
"default": "./src/design.ts"
},

View file

@ -11,6 +11,7 @@ import type { DiscordModules } from '../types'
export { AppStartPerformance } from '../preinit'
export * as Flux from './flux'
export * as utils from './utils'
const { loose, relative } = byDependencies

View file

@ -0,0 +1,33 @@
import {
byDependencies,
byName,
preferExports,
} from '@revenge-mod/modules/finders/filters'
import { lookupModule } from '@revenge-mod/modules/finders/lookup'
import { proxify } from '@revenge-mod/utils/proxy'
import type { DiscordModules } from '../types'
const [, _createClassModuleId] = lookupModule(byName('_createClass'))
const [, _classCallCheckModuleId] = lookupModule(byName('_classCallCheck'))
export let TypedEventEmitter: typeof DiscordModules.Utils.TypedEventEmitter =
proxify(() => {
const [module] = lookupModule(
preferExports(
byName<typeof DiscordModules.Utils.TypedEventEmitter>(
'TypedEventEmitter',
),
byDependencies([
_classCallCheckModuleId,
_createClassModuleId,
[],
2,
]),
),
{
includeUninitialized: true,
},
)
if (module) return (TypedEventEmitter = module)
})!

View file

@ -1,3 +1,4 @@
import { EventEmitter } from 'node:events'
import type { ComponentProps, ComponentType, FC, ReactNode } from 'react'
import type {
ImageSourcePropType,
@ -626,4 +627,16 @@ export namespace DiscordModules {
| StaticSettingsItem
}
}
export namespace Utils {
export namespace TypedEventEmitter {
export type DefaultEventMap = [never]
export type EventMap<T> = Record<keyof T, any[]> | DefaultEventMap
}
export class TypedEventEmitter<
T extends
TypedEventEmitter.EventMap<T> = TypedEventEmitter.DefaultEventMap,
> extends EventEmitter<T> {}
}
}