cnc-tskit v1.8.2
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 --save2) 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):Tpipe<T, U1,...,UN>(data:T, op1:Fn<T, U1,...,UN>):UNtuple<T1, ..., TN>(...data:[T1,...,TN]):typeof data
Client
isMobileTouchDevice():boolean
Color
type RGBA = [number, number, number, number]color2str():(c:RGBA)=>stringhsl2Rgb(hsl:[number, number, number]):RGBAimportColor(opacity:number, color:string):RGBAluminosity(value:number, color:RGBA):RGBArgb2Hex(rgb:RGBA):stringrgb2Hsl(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>):booleanevery<V, K extends string>(pred:(v:V, k:K)=>boolean, data:DictType<V, K>):booleanfilter<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]|undefinedforEach<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|undefinedhasKey<V, K extends string>(k:KeyArgType, data:DictType<V, K>):booleanhasValue<V, K extends string>(v:V, data:DictType<V, K>):booleankeys<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>):numbersome<V, K extends string>(pred:(v:V, k:K)=>boolean, data:DictType<V, K>):booleantoEntries<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>):booleanevery<T>(pred:(v:T)=>boolean, data:Array<T>):booleanfilter<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|undefinedfindIndex<T>(pred:(v:T, i:number)=>boolean, data:Array<T>):numberfindRange<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>):Ufoldr<T, U>(reducer:(acc:U, v:T)=>U, initial:U, data:Array<T>):UforEach<T>(effect:(v:T, i:number)=>void, data:Array<T>):Array<T>get<T>(idx:number, data:Array<T>):TgroupBy<T>(mapper:(v:T, i:number)=>string, data:Array<T>):Array<[string, Array<T>]>head<T>(data:Array<T>):Tinit<T>(data:Array<T>):Array<T>join<T>(joinItemFact:(i:number)=>T, data:Array<T>):Array<T>last<T>(data:Array<T>):Tmap<T, U>(fn:(v:T, i:number)=>U):(data:Array<T>)=>Array<U>maxItem<T>(mapper:(v:T)=>number, data:Array<T>):Tpush<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>):UremoveAt<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>):numberslice<T>(start:number, end:number, data:Array<T>):Array<T>some<T>(pred:(v:T)=>boolean, data:Array<T>):booleansortAlphaBy<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 Methodenum Status
Keyboard
enum Code(deprecated)isArrowKey(value:string):booleanenum Value
Ident
puid():stringhashCode(s:string):string
Maths
enum AlphaLevelcalcPercentRatios<T, U>(get:(v:T)=>number, trans:(v:T, ratio:number)=>U, values:Array<T>):Array<U>roundToPos(v:number, numPos:number):numberwilsonConfInterval(v:number, base:number, alphaId:AlphaLevel):[number, number]
Rx
zippedWith<T, U>(value:T, Observable<U>):Observable<Array<[T, U]>>
Strings
escapeRegexp(s:string):stringshortenText(text:string, maxLength:number, suff:string='\u2026'):stringfunction substitute(template:string, ...values:Array<string|number|boolean|((i:number)=>string|number|boolean)>):stringfunction overwriteStringFromLeft(orig:string, overwrite:string):stringfunction overwriteStringFromRight(orig:string, overwrite:string):string
Time
secs2hms():(s:number)=>string
URL
join(...path:string[]):stringvalueToPairs<T>(obj:T):Array<[string, string]>
10 months ago
10 months ago
10 months ago
1 year ago
1 year ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago