feat(lib/modules/metro): use Map for storing module dependencies for quicker access, rename file
This commit is contained in:
parent
7359567b3e
commit
79ce47c2bc
10 changed files with 20 additions and 18 deletions
|
|
@ -1,4 +1,3 @@
|
|||
import { mInitializingId, mUninitialized } from '@revenge-mod/modules/_/metro'
|
||||
import {
|
||||
byDependencies,
|
||||
byName,
|
||||
|
|
@ -9,6 +8,10 @@ import {
|
|||
lookupModules,
|
||||
} from '@revenge-mod/modules/finders/lookup'
|
||||
import { waitForModules } from '@revenge-mod/modules/finders/wait'
|
||||
import {
|
||||
mInitializingId,
|
||||
mUninitialized,
|
||||
} from '@revenge-mod/modules/metro/patches'
|
||||
import { getModuleDependencies } from '@revenge-mod/modules/metro/utils'
|
||||
import { proxify } from '@revenge-mod/utils/proxy'
|
||||
import { aOverrides } from './_internal'
|
||||
|
|
|
|||
|
|
@ -18,6 +18,9 @@
|
|||
"./metro/subscriptions": {
|
||||
"default": "./src/metro/subscriptions/index.ts"
|
||||
},
|
||||
"./metro/patches": {
|
||||
"default": "./src/metro/patches.ts"
|
||||
},
|
||||
"./metro/utils": {
|
||||
"default": "./src/metro/utils.ts"
|
||||
},
|
||||
|
|
@ -26,9 +29,6 @@
|
|||
},
|
||||
"./types": {
|
||||
"types": "./src/types.ts"
|
||||
},
|
||||
"./_/metro": {
|
||||
"default": "./src/metro/_internal.ts"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { getCurrentStack } from '@revenge-mod/utils/error'
|
||||
import { cacheFilterResultForId } from '../caches'
|
||||
import { mInitialized } from '../metro/_internal'
|
||||
import { mInitialized } from '../metro/patches'
|
||||
import { isModuleExportBad } from '../metro/utils'
|
||||
import type { If } from '@revenge-mod/utils/types'
|
||||
import type { Metro } from '../types'
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { mInitialized } from '../metro/_internal'
|
||||
import { mInitialized } from '../metro/patches'
|
||||
import { getModuleDependencies, isModuleInitialized } from '../metro/utils'
|
||||
import type { If, LogicalOr } from '@revenge-mod/utils/types'
|
||||
import type { Metro } from '../types'
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import {
|
|||
mInitialized,
|
||||
mList,
|
||||
mUninitialized,
|
||||
} from '../metro/_internal'
|
||||
} from '../metro/patches'
|
||||
import {
|
||||
getInitializedModuleExports,
|
||||
isModuleInitialized,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { mInitialized } from '../metro/_internal'
|
||||
import { mInitialized } from '../metro/patches'
|
||||
import {
|
||||
onAnyModuleInitialized,
|
||||
onModuleFinishedImporting,
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
* Making initialization faster and use less resources.
|
||||
*/
|
||||
|
||||
import { mList } from './_internal'
|
||||
import { mList } from './patches'
|
||||
import type { Metro } from '../types'
|
||||
|
||||
export const Initialized = 1 << 0
|
||||
|
|
|
|||
|
|
@ -17,15 +17,14 @@ import {
|
|||
} from './subscriptions/_internal'
|
||||
import type { Metro, RevengeMetro } from '../types'
|
||||
|
||||
/** Initializing ID */
|
||||
export let mInitializingId: Metro.ModuleID | null = null
|
||||
/** Known uninitialized IDs */
|
||||
/** Uninitialized IDs (not blacklisted) */
|
||||
export const mUninitialized = new Set<Metro.ModuleID>()
|
||||
/** Known initialized IDs (not blacklisted) */
|
||||
/** Initialized IDs (not blacklisted) */
|
||||
export const mInitialized = new Set<Metro.ModuleID>()
|
||||
|
||||
export const mImportedPaths = new Map<string, Metro.ModuleID>()
|
||||
export const mDeps: Metro.DependencyMap[] = []
|
||||
export const mDeps = new Map<Metro.ModuleID, Metro.DependencyMap>()
|
||||
|
||||
export const mList: RevengeMetro.ModuleList = new Map()
|
||||
|
||||
|
|
@ -34,7 +33,7 @@ const metroDefine = (
|
|||
id: Metro.ModuleID,
|
||||
dependencyMap: Metro.DependencyMap,
|
||||
) => {
|
||||
mDeps[id] = dependencyMap!
|
||||
mDeps.set(id, dependencyMap!)
|
||||
mUninitialized.add(id)
|
||||
|
||||
const moduleObject = { exports: {} }
|
||||
|
|
@ -107,7 +106,7 @@ function handleFactoryCall(
|
|||
metroImportAll,
|
||||
moduleObject,
|
||||
moduleObject.exports,
|
||||
mDeps[mInitializingId],
|
||||
mDeps.get(mInitializingId)!,
|
||||
)
|
||||
|
||||
const { exports } = moduleObject
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
import { isProxy } from '@revenge-mod/utils/proxy'
|
||||
import { mDeps, mList } from './_internal'
|
||||
import { FlagKey, Initialized, ModuleObjectKey } from './custom'
|
||||
import { mDeps, mList } from './patches'
|
||||
import type { Metro } from '../types'
|
||||
|
||||
/**
|
||||
|
|
@ -11,7 +11,7 @@ import type { Metro } from '../types'
|
|||
export function getModuleDependencies(
|
||||
id: Metro.ModuleID,
|
||||
): Metro.DependencyMap | undefined {
|
||||
return mDeps[id]
|
||||
return mDeps.get(id)
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ Object.defineProperty(globalThis, '__c', {
|
|||
globalThis.__c = clear
|
||||
|
||||
// Patch Metro's core functions
|
||||
require('@revenge-mod/modules/_/metro')
|
||||
require('@revenge-mod/modules/metro/patches')
|
||||
|
||||
require('./preinit')
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue