From 9d69ab27de83ead3e499edc9028ba85749407a1e Mon Sep 17 00:00:00 2001 From: bobzel Date: Tue, 23 Apr 2024 18:35:59 -0400 Subject: more lint cleanup --- src/extensions/ArrayExtensions.ts | 37 ----------------------------- src/extensions/Extensions.ts | 9 +++++++ src/extensions/ExtensionsTypings.ts | 9 +++++++ src/extensions/Extensions_Array.ts | 37 +++++++++++++++++++++++++++++ src/extensions/Extensions_String.ts | 16 +++++++++++++ src/extensions/General/Extensions.ts | 9 ------- src/extensions/General/ExtensionsTypings.ts | 8 ------- src/extensions/StringExtensions.ts | 17 ------------- 8 files changed, 71 insertions(+), 71 deletions(-) delete mode 100644 src/extensions/ArrayExtensions.ts create mode 100644 src/extensions/Extensions.ts create mode 100644 src/extensions/ExtensionsTypings.ts create mode 100644 src/extensions/Extensions_Array.ts create mode 100644 src/extensions/Extensions_String.ts delete mode 100644 src/extensions/General/Extensions.ts delete mode 100644 src/extensions/General/ExtensionsTypings.ts delete mode 100644 src/extensions/StringExtensions.ts (limited to 'src/extensions') diff --git a/src/extensions/ArrayExtensions.ts b/src/extensions/ArrayExtensions.ts deleted file mode 100644 index 8e125766d..000000000 --- a/src/extensions/ArrayExtensions.ts +++ /dev/null @@ -1,37 +0,0 @@ -export default class ArrayExtension { - private readonly property: string; - private readonly body: (this: Array) => any; - - constructor(property: string, body: (this: Array) => any) { - this.property = property; - this.body = body; - } - - assign() { - Object.defineProperty(Array.prototype, this.property, { - value: this.body, - enumerable: false - }); - } - -} - -/** - * IMPORTANT: Any extension you add here *must* have a corresponding type definition - * in the Array interface in ./General/ExtensionsTypings.ts. Otherwise, - * Typescript will not recognize your new function. - */ -const extensions = [ - new ArrayExtension("lastElement", function () { - if (!this.length) { - return undefined; - } - return this[this.length - 1]; - }) -]; - -function Assign() { - extensions.forEach(extension => extension.assign()); -} - -export { Assign }; \ No newline at end of file diff --git a/src/extensions/Extensions.ts b/src/extensions/Extensions.ts new file mode 100644 index 000000000..5815527d1 --- /dev/null +++ b/src/extensions/Extensions.ts @@ -0,0 +1,9 @@ +import { Assign as ArrayAssign } from './Extensions_Array'; +import { Assign as StringAssign } from './Extensions_String'; + +function AssignAllExtensions() { + ArrayAssign(); + StringAssign(); +} + +export { AssignAllExtensions }; diff --git a/src/extensions/ExtensionsTypings.ts b/src/extensions/ExtensionsTypings.ts new file mode 100644 index 000000000..d6ffd3be3 --- /dev/null +++ b/src/extensions/ExtensionsTypings.ts @@ -0,0 +1,9 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +interface Array { + lastElement(): T; +} + +interface String { + removeTrailingNewlines(): string; + hasNewline(): boolean; +} diff --git a/src/extensions/Extensions_Array.ts b/src/extensions/Extensions_Array.ts new file mode 100644 index 000000000..a50fb330f --- /dev/null +++ b/src/extensions/Extensions_Array.ts @@ -0,0 +1,37 @@ +export default class ArrayExtension { + private readonly property: string; + private readonly body: (this: Array) => any; + + constructor(property: string, body: (this: Array) => any) { + this.property = property; + this.body = body; + } + + assign() { + // eslint-disable-next-line no-extend-native + Object.defineProperty(Array.prototype, this.property, { + value: this.body, + enumerable: false, + }); + } +} + +/** + * IMPORTANT: Any extension you add here *must* have a corresponding type definition + * in the Array interface in ./General/ExtensionsTypings.ts. Otherwise, + * Typescript will not recognize your new function. + */ +const extensions = [ + new ArrayExtension('lastElement', function () { + if (!this.length) { + return undefined; + } + return this[this.length - 1]; + }), +]; + +function Assign() { + extensions.forEach(extension => extension.assign()); +} + +export { Assign }; diff --git a/src/extensions/Extensions_String.ts b/src/extensions/Extensions_String.ts new file mode 100644 index 000000000..c95095f8e --- /dev/null +++ b/src/extensions/Extensions_String.ts @@ -0,0 +1,16 @@ +/* eslint-disable no-extend-native */ +function Assign() { + String.prototype.removeTrailingNewlines = function () { + let sliced = this; + while (sliced.endsWith('\n')) { + sliced = sliced.substring(0, this.length - 1); + } + return sliced as string; + }; + + String.prototype.hasNewline = function () { + return this.endsWith('\n'); + }; +} + +export { Assign }; diff --git a/src/extensions/General/Extensions.ts b/src/extensions/General/Extensions.ts deleted file mode 100644 index 4b6d05d5f..000000000 --- a/src/extensions/General/Extensions.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Assign as ArrayAssign } from "../ArrayExtensions"; -import { Assign as StringAssign } from "../StringExtensions"; - -function AssignAllExtensions() { - ArrayAssign(); - StringAssign(); -} - -export { AssignAllExtensions }; \ No newline at end of file diff --git a/src/extensions/General/ExtensionsTypings.ts b/src/extensions/General/ExtensionsTypings.ts deleted file mode 100644 index 370157ed0..000000000 --- a/src/extensions/General/ExtensionsTypings.ts +++ /dev/null @@ -1,8 +0,0 @@ -interface Array { - lastElement(): T; -} - -interface String { - removeTrailingNewlines(): string; - hasNewline(): boolean; -} \ No newline at end of file diff --git a/src/extensions/StringExtensions.ts b/src/extensions/StringExtensions.ts deleted file mode 100644 index 2c76e56c8..000000000 --- a/src/extensions/StringExtensions.ts +++ /dev/null @@ -1,17 +0,0 @@ -function Assign() { - - String.prototype.removeTrailingNewlines = function () { - let sliced = this; - while (sliced.endsWith("\n")) { - sliced = sliced.substring(0, this.length - 1); - } - return sliced as string; - }; - - String.prototype.hasNewline = function () { - return this.endsWith("\n"); - }; - -} - -export { Assign }; \ No newline at end of file -- cgit v1.2.3-70-g09d2