diff options
Diffstat (limited to 'src/client/util/UndoManager.ts')
-rw-r--r-- | src/client/util/UndoManager.ts | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/src/client/util/UndoManager.ts b/src/client/util/UndoManager.ts index 534ffd2c8..ce0e7768b 100644 --- a/src/client/util/UndoManager.ts +++ b/src/client/util/UndoManager.ts @@ -5,7 +5,7 @@ import { Without } from '../../Utils'; import { RichTextField } from '../../fields/RichTextField'; import { SnappingManager } from './SnappingManager'; -function getBatchName(target: any, key: string | symbol): string { +function getBatchName(target: (...args: unknown[]) => unknown, key: string | symbol): string { const keyName = key.toString(); if (target?.constructor?.name) { return `${target.constructor.name}.${keyName}`; @@ -13,19 +13,19 @@ function getBatchName(target: any, key: string | symbol): string { return keyName; } -function propertyDecorator(target: any, key: string | symbol) { +function propertyDecorator(target: (...args: unknown[]) => unknown, key: string | symbol) { Object.defineProperty(target, key, { configurable: true, enumerable: false, get: function () { return 5; }, - set: function (value: any) { + set: function (value: (...args: unknown[]) => unknown) { Object.defineProperty(this, key, { enumerable: false, writable: true, configurable: true, - value: function (...args: any[]) { + value: function (...args: unknown[]) { const batch = UndoManager.StartBatch(getBatchName(target, key)); try { return value.apply(this, args); @@ -38,7 +38,8 @@ function propertyDecorator(target: any, key: string | symbol) { }); } -export function undoable(fn: (...args: any[]) => any, batchName: string): (...args: any[]) => any { +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export function undoable<T>(fn: (...args: any[]) => T, batchName: string): (...args: unknown[]) => T { return function (...fargs) { const batch = UndoManager.StartBatch(batchName); try { @@ -50,13 +51,12 @@ export function undoable(fn: (...args: any[]) => any, batchName: string): (...ar }; } +// eslint-disable-next-line no-redeclare, @typescript-eslint/no-explicit-any export function undoBatch(target: any, key: string | symbol, descriptor?: TypedPropertyDescriptor<any>): any; -// eslint-disable-next-line no-redeclare -export function undoBatch(fn: (...args: any[]) => any): (...args: any[]) => any; -// eslint-disable-next-line no-redeclare -export function undoBatch(target: any, key?: string | symbol, descriptor?: TypedPropertyDescriptor<any>): any { +// eslint-disable-next-line no-redeclare, @typescript-eslint/no-explicit-any +export function undoBatch(target: any, key?: string | symbol, descriptor?: TypedPropertyDescriptor<(...args: any[]) => unknown>): any { if (!key) { - return function (...fargs: any[]) { + return function (...fargs: unknown[]) { const batch = UndoManager.StartBatch(''); try { return target.apply(undefined, fargs); @@ -71,10 +71,10 @@ export function undoBatch(target: any, key?: string | symbol, descriptor?: Typed } const oldFunction = descriptor.value; - descriptor.value = function (...args: any[]) { + descriptor.value = function (...args: unknown[]) { const batch = UndoManager.StartBatch(getBatchName(target, key)); try { - return oldFunction.apply(this, args); + return oldFunction?.apply(this, args); } finally { batch.end(); } @@ -99,12 +99,12 @@ export namespace UndoManager { export const undoStack: UndoBatch[] = observable([]); export const redoStack: UndoBatch[] = observable([]); export const batchCounter = observable.box(0); - let _fieldPrinter: (val: any) => string = val => val?.toString(); - export function SetFieldPrinter(printer: (val: any) => string) { + let _fieldPrinter: (val: unknown) => string = val => val?.toString?.() || ''; + export function SetFieldPrinter(printer: (val: unknown) => string) { _fieldPrinter = printer; } - export function AddEvent(event: UndoEvent, value?: any): void { + export function AddEvent(event: UndoEvent, value?: unknown): void { if (currentBatch && batchCounter.get() && !undoing) { SnappingManager.PrintToConsole && console.log( @@ -220,7 +220,7 @@ export namespace UndoManager { batch.end(); } } - export const UndoTempBatch = action((success: any) => { + export const UndoTempBatch = action((success: boolean) => { if (tempEvents && !success) { undoing = true; for (let i = tempEvents.length - 1; i >= 0; i--) { @@ -243,7 +243,6 @@ export namespace UndoManager { } undoing = true; - // eslint-disable-next-line prettier/prettier commands .slice() .reverse() |