remove proxy

This commit is contained in:
Simon Lamon
2021-12-25 14:02:09 +00:00
parent bac4eba35e
commit 65182176b9
6 changed files with 58 additions and 32 deletions
+16 -10
View File
@@ -30,16 +30,22 @@ export class Terminal implements ITerminalApi {
this._core = new TerminalCore(options);
this._addonManager = new AddonManager();
this._publicOptions = new Proxy(this._core.options, {
get: (target, propName: string): any => {
return target[propName];
},
set: (target, propName: string, value): any => {
this._checkReadonlyOptions(propName);
target[propName] = value;
return true;
}
});
this._publicOptions = {};
const getter = (propName: string): any => {
return this._core.options[propName];
};
const setter = (propName: string, value: any): void => {
this._checkReadonlyOptions(propName);
this._core.options[propName] = value;
};
for (const propName in this._core.options) {
const desc = {
get: getter.bind(this, propName),
set: setter.bind(this, propName)
};
Object.defineProperty(this._publicOptions, propName, desc);
}
}
private _checkReadonlyOptions(propName: string): void {