26 lines
461 B
TypeScript
26 lines
461 B
TypeScript
// #docregion
|
|
export class RestoreService<T> {
|
|
originalItem: T;
|
|
currentItem: T;
|
|
|
|
setItem (item: T) {
|
|
this.originalItem = item;
|
|
this.currentItem = this.clone(item);
|
|
}
|
|
|
|
getItem () :T {
|
|
return this.currentItem;
|
|
}
|
|
|
|
restoreItem () :T {
|
|
this.currentItem = this.originalItem;
|
|
return this.getItem();
|
|
}
|
|
|
|
clone (item: T) :T {
|
|
// super poor clone implementation
|
|
return JSON.parse(JSON.stringify(item));
|
|
}
|
|
}
|
|
// #enddocregion
|