fix(core): use globalThis
instead of eval
This commit is contained in:
parent
477bfcf294
commit
81c8dab2a6
1 changed files with 4 additions and 8 deletions
|
@ -18,16 +18,13 @@ export interface ICorePlatform extends ITlPlatform {
|
||||||
isOnline?(): boolean
|
isOnline?(): boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line
|
|
||||||
const globalObject = (0, eval)('this')
|
|
||||||
|
|
||||||
// NB: when using with some bundlers (e.g. vite) re-importing this module will not return the same object
|
// NB: when using with some bundlers (e.g. vite) re-importing this module will not return the same object
|
||||||
// so we need to store the platform in a global object to be able to survive hot-reloads etc.
|
// so we need to store the platform in a global object to be able to survive hot-reloads etc.
|
||||||
// try to use Symbol if available, otherwise fallback to a string
|
// try to use Symbol if available, otherwise fallback to a string
|
||||||
const platformKey = typeof Symbol !== 'undefined' ? Symbol.for('mtcute.platform') : '__MTCUTE_PLATFORM__'
|
const platformKey = typeof Symbol !== 'undefined' ? Symbol.for('mtcute.platform') : '__MTCUTE_PLATFORM__'
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
// eslint-disable-next-line
|
||||||
let _platform: ICorePlatform | null = globalObject?.[platformKey] ?? null
|
let _platform: ICorePlatform | null = (globalThis as any)?.[platformKey] ?? null
|
||||||
|
|
||||||
export function setPlatform(platform: ICorePlatform): void {
|
export function setPlatform(platform: ICorePlatform): void {
|
||||||
if (_platform) {
|
if (_platform) {
|
||||||
|
@ -42,9 +39,8 @@ export function setPlatform(platform: ICorePlatform): void {
|
||||||
TlBinaryReader.platform = platform
|
TlBinaryReader.platform = platform
|
||||||
TlBinaryWriter.platform = platform
|
TlBinaryWriter.platform = platform
|
||||||
|
|
||||||
if (globalObject) {
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
globalObject[platformKey] = platform
|
;(globalThis as any)[platformKey] = platform
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getPlatform(): ICorePlatform {
|
export function getPlatform(): ICorePlatform {
|
||||||
|
|
Loading…
Reference in a new issue