fix(lib)!: move modules/common to own libs

This commit is contained in:
PalmDevs 2025-04-29 18:25:46 +07:00
parent e2b0fba388
commit 7a7f470ff4
No known key found for this signature in database
GPG key ID: 6FAE8F8677ACA8BA
14 changed files with 93 additions and 43 deletions

View file

@ -27,6 +27,9 @@
"lib/assets": {
"name": "@revenge-mod/assets",
},
"lib/discord": {
"name": "@revenge-mod/discord",
},
"lib/init": {
"name": "@revenge-mod/init",
},
@ -36,6 +39,12 @@
"lib/patcher": {
"name": "@revenge-mod/patcher",
},
"lib/plugins": {
"name": "@revenge-mod/plugins",
},
"lib/react": {
"name": "@revenge-mod/react",
},
"lib/types": {
"name": "@revenge-mod/types",
},
@ -419,6 +428,8 @@
"@revenge-mod/assets": ["@revenge-mod/assets@workspace:lib/assets"],
"@revenge-mod/discord": ["@revenge-mod/discord@workspace:lib/discord"],
"@revenge-mod/init": ["@revenge-mod/init@workspace:lib/init"],
"@revenge-mod/modules": ["@revenge-mod/modules@workspace:lib/modules"],

View file

@ -1,4 +1,4 @@
import { ReactNative } from '@revenge-mod/modules/common/react'
import { ReactNative } from '@revenge-mod/react'
import { _assets } from './_internal'
import { AssetRegistry } from './patches'

10
lib/discord/package.json Normal file
View file

@ -0,0 +1,10 @@
{
"name": "@revenge-mod/discord",
"private": true,
"type": "module",
"exports": {
".": {
"default": "./src/index.ts"
}
}
}

View file

@ -1,7 +1,7 @@
import { waitForModules } from '../../finders'
import { byProps } from '../../finders/filters'
import { waitForModules } from '@revenge-mod/modules/finders'
import { byProps } from '@revenge-mod/modules/finders/filters'
import type { DiscordModules } from '../../../types'
import type { DiscordModules } from '@revenge-mod/modules/types/discord'
waitForModules(byProps<DiscordModules.Flux.Store>('_dispatchToken'), (_, store) => {
const name = store.getName()

View file

@ -1,7 +1,7 @@
import { lookupModule } from '../../finders'
import { byName, byProps } from '../../finders/filters'
import { lookupModule } from '@revenge-mod/modules/finders'
import { byName, byProps } from '@revenge-mod/modules/finders/filters'
import type { DiscordModules } from '../../../types/discord'
import type { DiscordModules } from '@revenge-mod/modules/types/discord'
export * as flux from './flux'

View file

@ -8,31 +8,49 @@ import { getErrorStack } from '@revenge-mod/utils/errors'
import { logger } from './shared'
onModuleFirstRequired(0, function onceIndexRequired() {
if (!__BUILD_FLAG_INIT_DISABLE_PATCH_LOG_PROMISE_REJECTIONS__) require('./patches/log-promise-rejections')
onModuleFirstRequired(
0,
runCatching(function onceIndexRequired() {
if (!__BUILD_FLAG_INIT_DISABLE_PATCH_LOG_PROMISE_REJECTIONS__) require('./patches/log-promise-rejections')
// Initialize preinit libraries
require('@revenge-mod/modules/preinit')
})
// Initialize preinit libraries
require('@revenge-mod/modules/preinit')
onModuleInitialized(0, function onceIndexInitialized() {
try {
// Initialize init libraries
require('@revenge-mod/assets/init')
onModuleInitialized(
0,
runCatching(function onceIndexInitialized() {
// Initialize init libraries
require('@revenge-mod/assets/init')
logger.log('Revenge loaded!')
} catch (e) {
const { ClientInfoModule, DeviceModule } = require('@revenge-mod/modules/native/discord') as
// biome-ignore format: Don't format this please
typeof import('@revenge-mod/modules/native/discord')
logger.log('Revenge loaded!')
// TODO(init): Move to use native module
alert(
// biome-ignore lint/style/useTemplate: I want this to be readable, thank you
'Failed to load Revenge!\n' +
`Discord: ${ClientInfoModule.Version} (${ClientInfoModule.Build})\n` +
`Device: ${DeviceModule.deviceManufacturer} ${DeviceModule.deviceModel}\n\n` +
getErrorStack(e),
setImmediate(() => {
// Call garbage collector to clean up memory
gc()
gc()
})
}),
)
}),
)
function runCatching<F extends (...args: any[]) => any>(fn: F) {
return (...args: Parameters<F>) => {
try {
fn(...args)
} catch (e) {
const { ClientInfoModule, DeviceModule } = require('@revenge-mod/modules/native/discord') as
// biome-ignore format: Don't format this please
typeof import('@revenge-mod/modules/native/discord')
// TODO(init): Move to use native module
alert(
// biome-ignore lint/style/useTemplate: I want this to be readable, thank you
'Failed to load Revenge!\n' +
`Discord: ${ClientInfoModule.Version} (${ClientInfoModule.Build})\n` +
`Device: ${DeviceModule.deviceManufacturer} ${DeviceModule.deviceModel}\n\n` +
getErrorStack(e),
)
}
}
})
}

View file

@ -6,15 +6,6 @@
".": {
"default": "./src/index.ts"
},
"./common": {
"default": "./src/common/index.ts"
},
"./common/discord": {
"default": "./src/common/discord/index.ts"
},
"./common/react": {
"default": "./src/common/react.ts"
},
"./finders": {
"default": "./src/finders/index.ts"
},
@ -36,6 +27,9 @@
"./preinit": {
"default": "./src/preinit.ts"
},
"./types": {
"default": "./types/index.ts"
},
"./types/*": {
"default": "./types/*.ts",
"types": "./types/*.ts"

View file

@ -1,2 +0,0 @@
export * as discord from './discord'
export * as react from './react'

View file

@ -1,4 +1,3 @@
export * as common from './common'
export * as finders from './finders'
export * as filters from './finders/filters'
export * as metro from './metro'

16
lib/react/package.json Normal file
View file

@ -0,0 +1,16 @@
{
"name": "@revenge-mod/react",
"private": true,
"type": "module",
"exports": {
".": {
"default": "./src/index.ts"
},
"./jsx-runtime": {
"default": "./src/jsx-runtime/index.ts"
},
"./preinit": {
"default": "./src/preinit.ts"
}
}
}

View file

@ -1,7 +1,8 @@
import { yielded } from '@revenge-mod/utils/generators'
import { lookupModuleId, lookupModuleIds } from '@revenge-mod/modules/finders'
import { byProps } from '@revenge-mod/modules/finders/filters'
import { lookupModuleId, lookupModuleIds } from '../finders'
import { byProps } from '../finders/filters'
export * as jsxRuntime from './jsx-runtime'
export const ReactModuleId = yielded(lookupModuleIds(byProps<typeof import('react')>('useState')), 1)!
export const ReactNativeModuleId = lookupModuleId(byProps<typeof import('react-native')>('AppRegistry'))!

View file

@ -0,0 +1,2 @@
// TODO(react/jsx-runtime): add lib
export {}

View file

1
lib/react/src/preinit.ts Normal file
View file

@ -0,0 +1 @@
import './jsx-runtime/preinit'