Telegram Web K with changes to work inside I2P
https://web.telegram.i2p/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.1 KiB
50 lines
1.1 KiB
import {Storage as ConfigStorage, Modes} from './config'; |
|
|
|
class AppStorage { |
|
public setPrefix(newPrefix: string) { |
|
ConfigStorage.prefix(newPrefix); |
|
} |
|
|
|
public noPrefix() { |
|
ConfigStorage.noPrefix(); |
|
} |
|
|
|
private proxy<T>(methodName: string, ..._args: any[]) { |
|
let args = Array.prototype.slice.call(_args); |
|
|
|
let promise = new Promise<T>((resolve, reject) => { |
|
args.push((result: T) => { |
|
resolve(result); |
|
}); |
|
|
|
ConfigStorage[methodName].apply(ConfigStorage, args); |
|
}); |
|
|
|
return promise; |
|
} |
|
|
|
public get<T>(...args: any[]) { |
|
return this.proxy<T>('get', ...args); |
|
} |
|
|
|
public set<T>(...args: any[]) { |
|
//console.trace(...args); |
|
return this.proxy<T>('set', ...args); |
|
} |
|
|
|
public remove<T>(...args: any[]) { |
|
return this.proxy<T>('remove', ...args); |
|
} |
|
|
|
public clear<T>(...args: any[]) { |
|
return this.proxy<T>('clear', ...args); |
|
} |
|
|
|
constructor() { |
|
if(Modes.test) { |
|
this.setPrefix('t_'); |
|
} |
|
} |
|
} |
|
|
|
export default new AppStorage();
|
|
|