mvp progress
This commit is contained in:
parent
9b16b25187
commit
6446da7e76
75 changed files with 1865 additions and 244 deletions
45
ui/src/core/extensions/array.ts
Normal file
45
ui/src/core/extensions/array.ts
Normal file
|
@ -0,0 +1,45 @@
|
|||
export {};
|
||||
|
||||
declare global {
|
||||
interface Array<T> {
|
||||
// @strict: The parameter is determined whether the arrays must be exactly the same in content and order of this relationship or simply follow the same requirements.
|
||||
equals(array: Array<T>, strict: boolean): boolean;
|
||||
lastElement(): T | undefined;
|
||||
}
|
||||
}
|
||||
|
||||
export const ArrayExtensions = () => {
|
||||
if ([].equals === undefined) {
|
||||
// eslint-disable-next-line no-extend-native
|
||||
Array.prototype.equals = function (array, strict = true) {
|
||||
if (!array) return false;
|
||||
|
||||
if (arguments.length === 1) strict = true;
|
||||
|
||||
if (this.length !== array.length) return false;
|
||||
|
||||
for (let i = 0; i < this.length; i++) {
|
||||
if (this[i] instanceof Array && array[i] instanceof Array) {
|
||||
if (!this[i].equals(array[i], strict)) return false;
|
||||
} else if (strict && this[i] !== array[i]) {
|
||||
return false;
|
||||
} else if (!strict) {
|
||||
return this.sort().equals(array.sort(), true);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
}
|
||||
if ([].lastElement === undefined) {
|
||||
// eslint-disable-next-line no-extend-native
|
||||
Array.prototype.lastElement = function () {
|
||||
let instanceCheck = this;
|
||||
if (instanceCheck === undefined) {
|
||||
return undefined;
|
||||
} else {
|
||||
let instance = instanceCheck as [];
|
||||
return instance[instance.length - 1];
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
6
ui/src/core/extensions/extensions.ts
Normal file
6
ui/src/core/extensions/extensions.ts
Normal file
|
@ -0,0 +1,6 @@
|
|||
import { ArrayExtensions } from "./array";
|
||||
|
||||
export const extensions = () =>{
|
||||
ArrayExtensions()
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue