Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

skava / exotic   js

Repository URL to install this package:

Version: 2.0.8 

/ src / types / obj / obj.d.ts

import { ObjWithKeys } from '../../../typings/generic'

export function isObj(x: any): x is object | Array<any> | Function
export function isObjNotNull(x: any): x is object // !null
export function objTypeof(x: any): x is object | null
export function objPure(x: any): x is object // !Array
export function isObjWithKeys(x: any): x is ObjWithKeys
export function isObjLoose(o: any): 'o is typeof Obj' | boolean
// x[Primitive.toStringTag] is 'object'
export function isObjTag(o: any): boolean

export type notEmptyArray = [any]

interface ArrayWithNothing<T> extends Array<T> {
  length: 0
}

// @todo
export function isBlankObject(x: any): x is object

// @todo
export function arrayToObj(x: Array<any>): Object
// @todo
export function toObjOf(x: any): Object
// @todo
export function toArrayOf(x: string): Array<string>
export function toArrayOf(x: boolean): Array<boolean>
export function toArrayOf(x: null | undefined): Array<null | undefined>
export function toArrayOf(x: Array<any>): Array<Array<any>>
export function toArrayOf(x: Function): Array<Function>
export function toArrayOf(x: string): Array<string>
export function toArrayOf(x: any): Array<any>
export function toArrayOf(): ArrayWithNothing<any>
export function toArrayOf<T>(x: Array<T>): Array<Array<T>>

export type NotPlainObjTypes =
  | boolean
  | Boolean
  | number
  | Number
  | undefined
  | null
  | Function
  | Array<any>

export function isObjPlain(x: Object): true
export function isObjPlain(x: NotPlainObjTypes): false

export function isNonEmptyArray(x: notEmptyArray): true
export function isNonEmptyArray(x: notEmptyArray): boolean

export { objPure as isObjPure }
export { objTypeof as isObjTypeof }
export { arrayToObj as fromArrayToObj }