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.
- Install:
npm install cnc-tskit --save
- 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()
);
}
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
isMobileTouchDevice():boolean
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
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>
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>
enum Method
enum Status
enum Code
(deprecated)isArrowKey(value:string):boolean
enum Value
puid():string
hashCode(s:string):string
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]
zippedWith<T, U>(value:T, Observable<U>):Observable<Array<[T, U]>>
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
secs2hms():(s:number)=>string
join(...path:string[]):string
valueToPairs<T>(obj:T):Array<[string, string]>