cnc-tskit
TypeScript icon, indicating that this package has built-in type declarations

1.7.2 • Public • Published

cnc-tskit

A bunch of TypeScript functions and constants as used by miscellaneous web applications developed and maintained by the Czech National Corpus.

The library does not use any external dependencies.

How to use in a project

  1. Install:
npm install cnc-tskit --save
  1. Use in your code:
import { pipe, tuple, Dict, List } from 'cnc-tskit';

function uniqItems(...d:Array<string|Array<string>>):Array<string> {
    return pipe(
        d,
        List.filter(v => !!v),
        List.flatMap(v => typeof v === 'string' ? [v] : v),
        List.map(v => tuple(v, true)),
        Dict.fromEntries(),
        Dict.keys()
    );
}

main scope

  • composeLeft<T, U1,...,UN>(op1:Fn<T, U1,...,UN>):Fn<T, UN>;
  • id<T>(v:T):T
  • pipe<T, U1,...,UN>(data:T, op1:Fn<T, U1,...,UN>):UN
  • tuple<T1, ..., TN>(...data:[T1,...,TN]):typeof data

Client

  • isMobileTouchDevice():boolean

Color

  • type RGBA = [number, number, number, number]
  • color2str():(c:RGBA)=>string
  • hsl2Rgb(hsl:[number, number, number]):RGBA
  • importColor(opacity:number, color:string):RGBA
  • luminosity(value:number, color:RGBA):RGBA
  • rgb2Hex(rgb:RGBA):string
  • rgb2Hsl(rgb:RGBA):[number, number, number]
  • textColorFromBg(bgColor:RGBA):RGBA

Dict

  • clone<V, K extends string>(data:DictType<V, K>):DictType<V, K>
  • clear<V, K extends string>(data:DictType<V, K>):DictType<V, K>
  • empty<V, K extends string>(data:DictType<V, K>):boolean
  • every<V, K extends string>(pred:(v:V, k:K)=>boolean, data:DictType<V, K>):boolean
  • filter<V, K extends string>(pred:(v:V, k:K)=>boolean, data:DictType<V, K>):DictType<V, K>
    • filter<V, U extends V, K extends string>(pred:(v:V, k:K)=>v is U, data:DictType<V, K>):DictType<U, K>
  • find<V, K extends string>(pred:(v:V, k:K)=>boolean, data:DictType<V, K>):[K, V]|undefined
  • forEach<V, K extends string>(effect:(v:V, k:K)=>void, data:DictType<V, K>):DictType<V, K>
  • fromEntries<V, K extends string>(items:Array<[K, V]>):DictType<V, K>
  • get<V, K extends string>(k:KeyArgType, dflt:V|undefined, data:DictType<V, K>):V|undefined
  • hasKey<V, K extends string>(k:KeyArgType, data:DictType<V, K>):boolean
  • hasValue<V, K extends string>(v:V, data:DictType<V, K>):boolean
  • keys<V, K extends string>(data:DictType<V, K>):Array<K>
  • map<V, U, K extends string>(mapper:(v:V, k:K)=>U, data:DictType<V, K>):DictType<U, K>
  • mapEntries<V, U, K extends string>(mapper:(entry:[K, V])=>U, data:DictType<V, K>):Array<[K, U]>
  • mergeDict<V, K extends string>(merger:(oldVal:V, newVal:V, key:K) => V, incoming:DictType<V, K>, data:DictType<V, K>):DictType<V, K>
  • normalize<V, K extends string>(data:DictType<V, K>):DictType<V, K>
  • remove<V, K extends string>(k:KeyArgType, data:DictType<V, K>):DictType<V, K>
  • set<V, K extends string>(k:KeyArgType, v:V, data:DictType<V, K>):DictType<V, K>
  • size<V, K extends string>(data:DictType<V, K>):number
  • some<V, K extends string>(pred:(v:V, k:K)=>boolean, data:DictType<V, K>):boolean
  • toEntries<V, K extends string>(data:DictType<V, K>):Array<[K, V]>
  • values<V, K extends string>(data:DictType<V, K>):Array<V>

List

  • addUnique<T>(v:T, data:Array<T>):Array<T>
  • concat<T>(incoming:Array<T>, data:Array<T>):Array<T>
  • concatr<T>(incoming:Array<T>, data:Array<T>):Array<T>
  • empty<T>(data:Array<T>):boolean
  • every<T>(pred:(v:T)=>boolean, data:Array<T>):boolean
  • filter<T>(pred:(v:T, i:number)=>boolean, data:Array<T>):Array<T>
    • filter<T, S extends T>(pred:(v:T, i:number)=>v is S, data:Array<T>):Array<S>
  • find<T>(pred:(v:T, i:number)=>boolean, data:Array<T>):T|undefined
  • findIndex<T>(pred:(v:T, i:number)=>boolean, data:Array<T>):number
  • findRange<T>(cmp:(v1:T, v2:T)=>number):(data:Array<T>)=>[T, T]
  • flatMap<T, U>(mapper:(v:T, i:number) => Array<U>, data:Array<T>):Array<U>
  • foldl<T, U>(reducer:(acc:U, v:T)=>U, initial:U, data:Array<T>):U
  • foldr<T, U>(reducer:(acc:U, v:T)=>U, initial:U, data:Array<T>):U
  • forEach<T>(effect:(v:T, i:number)=>void, data:Array<T>):Array<T>
  • get<T>(idx:number, data:Array<T>):T
  • groupBy<T>(mapper:(v:T, i:number)=>string, data:Array<T>):Array<[string, Array<T>]>
  • head<T>(data:Array<T>):T
  • init<T>(data:Array<T>):Array<T>
  • join<T>(joinItemFact:(i:number)=>T, data:Array<T>):Array<T>
  • last<T>(data:Array<T>):T
  • map<T, U>(fn:(v:T, i:number)=>U):(data:Array<T>)=>Array<U>
  • maxItem<T>(mapper:(v:T)=>number, data:Array<T>):T
  • push<T>(v:T, data:Array<T>):Array<T>
  • range(from:number, to:number, step:number = 1):Array<number>
  • reduce<T, U>(reducer:(acc:U, V:T, i:number)=>U, initial:U, data:Array<T>):U
  • removeAt<T>(idx:number, data:Array<T>):Array<T>
  • removeValue<T>(v:T, data:Array<T>):Array<T>
  • repeat<T>(fn:(idx?:number)=>T, size:number):Array<T>
  • reverse<T>(data:Array<T>):Array<T>
  • reversed<T>(data:Array<T>):Array<T>
  • shift<T>(data:Array<T>):Array<T>
  • size<T>(data:Array<T>):number
  • slice<T>(start:number, end:number, data:Array<T>):Array<T>
  • some<T>(pred:(v:T)=>boolean, data:Array<T>):boolean
  • sortAlphaBy<T>(map:(v:T) => string, data:Array<T>):Array<T>
  • sortBy<T>(map:(v:T) => number, data:Array<T>):Array<T>
  • sorted<T>(cmp:(v1:T, v2:T) => number, data:Array<T>):Array<T>
  • sortedAlphaBy<T>(map:(v:T) => string, data:Array<T>):Array<T>
  • sortedBy<T>(map:(v:T) => number, data:Array<T>):Array<T>
  • tail<T>(data:Array<T>):Array<T>
  • toDict<T>(data:Array<T>):{[key:string]:T}
  • unique<T>(keyFn:(v:T)=>string|number|boolean, data:Array<T>):Array<T>
  • unshift<T>(v:T, data:Array<T>):Array<T>;
  • zip<T, U>(incoming:Array<U>, data:Array<T>):Array<[T, U]>
  • zipAll<T, U>(incoming:Array<U>, data:Array<T>):Array<[T|undefined, U|undefined]>
  • zipByMappedKey<T, U>(map:(v:T)=>string, dfltFact:()=>U, importer:(dest:U, incom:T, datasetIdx:number)=>U, data:Array<Array<T>>):Array<U>

HTTP

  • enum Method
  • enum Status

Keyboard

  • enum Code (deprecated)
  • isArrowKey(value:string):boolean
  • enum Value

Ident

  • puid():string
  • hashCode(s:string):string

Maths

  • enum AlphaLevel
  • calcPercentRatios<T, U>(get:(v:T)=>number, trans:(v:T, ratio:number)=>U, values:Array<T>):Array<U>
  • roundToPos(v:number, numPos:number):number
  • wilsonConfInterval(v:number, base:number, alphaId:AlphaLevel):[number, number]

Rx

  • zippedWith<T, U>(value:T, Observable<U>):Observable<Array<[T, U]>>

Strings

  • escapeRegexp(s:string):string
  • shortenText(text:string, maxLength:number, suff:string='\u2026'):string
  • function substitute(template:string, ...values:Array<string|number|boolean|((i:number)=>string|number|boolean)>):string
  • function overwriteStringFromLeft(orig:string, overwrite:string):string
  • function overwriteStringFromRight(orig:string, overwrite:string):string

Time

  • secs2hms():(s:number)=>string

URL

  • join(...path:string[]):string
  • valueToPairs<T>(obj:T):Array<[string, string]>

Readme

Keywords

Package Sidebar

Install

npm i cnc-tskit

Weekly Downloads

6

Version

1.7.2

License

Apache-2.0

Unpacked Size

406 kB

Total Files

104

Last publish

Collaborators

  • tomachalek