anux-common
Version:
[](https://travis-ci.com/Anupheaus/anux-common) [](https://www.codacy.com/app/Anuphea
71 lines (70 loc) • 3.65 kB
TypeScript
import './array';
import './object';
export declare enum PropertyAccess {
CanRead = 0,
CanWrite = 1
}
declare global {
namespace Reflect {
interface IEndOfPathAction {
value: unknown;
shouldContinue: boolean;
}
interface TypeOf<T = object> {
type: string;
isArray: boolean;
isObject: boolean;
isPrototype: boolean;
isInstance: boolean;
isNull: boolean;
isUndefined: boolean;
isNullOrUndefined: boolean;
isBoolean: boolean;
isNumber: boolean;
isString: boolean;
isPrimitive: boolean;
isFunction: boolean;
isDate: boolean;
value: T;
}
interface WalkerProperty<T = unknown> {
name: string;
path: (string | number)[];
parent: object | undefined;
descriptor: PropertyDescriptor;
propertyIndex: number;
get(): T;
set(value: T): void;
}
function isOrDerivesFrom(source: unknown, derivesFrom: unknown): boolean;
function className(instance: unknown): string;
function getDefinition(target: unknown, memberKey: PropertyKey): PropertyDescriptor;
function getAllDefinitionsForMember(target: unknown, memberName: string): PropertyDescriptor[];
function getAllDefinitions(target: unknown): PropertyDescriptorMap;
function getProperty<T>(target: unknown, propertyName: string): T;
function getProperty<T>(target: unknown, propertyName: string, defaultValue: T): T;
function getProperty<T>(target: unknown, propertyName: string, defaultValue: T, addIfNotExists: boolean): T;
function setProperty<T>(target: unknown, propertyName: string, value: T): void;
function checkPropertyAccess(target: unknown, propertyName: string, access: PropertyAccess): boolean;
function getAllPrototypesOf(target: unknown): Object[];
function bindAllMethodsOn(target: unknown): void;
function invoke(target: unknown, name: string, ...args: unknown[]): unknown;
function invokeAll(target: unknown, name: string, ...args: unknown[]): unknown[];
function getAndCombineAll<T extends {}>(target: unknown, propertyName: string): T;
function parameterNames(func: Function): string[];
function areDeepEqual(source: unknown, target: unknown): boolean;
function areDeepEqual(source: unknown, target: unknown, customComparer: (objA: unknown, objB: unknown) => boolean | void): boolean;
function areShallowEqual(source: unknown, target: unknown): boolean;
function areShallowEqual(source: unknown, target: unknown, customComparer: (objA: unknown, objB: unknown) => boolean | void): boolean;
function wrapMethod<T extends Function, R>(target: object, method: T, delegate: (originalFunc: T, args: unknown[]) => R): R;
function hashesOf(target: unknown): number[];
function typeOf<T = object>(value: T): TypeOf<T>;
function walk(target: object, onProperty: (property: Reflect.WalkerProperty) => void | false): void;
function getByPath<T = unknown>(target: object, propertyKey: string): {
wasFound: boolean;
value: T;
};
function setByPath<T = unknown>(target: object, propertyKey: string, value: T): boolean;
function setByPath<T = unknown>(target: object, propertyKey: string, value: T, createPathIfNotExists: boolean): boolean;
}
}