@lightningkite/ktor-batteries
Version:
258 lines (212 loc) • 19.2 kB
text/typescript
// Package: com.lightningkite.ktordb
// Generated by Khrysalis - this file will be overwritten.
import { Condition } from './Condition'
import { Modification } from './Modification'
import { Comparable, TProperty1 } from '@lightningkite/khrysalis-runtime'
import { map as iMap } from 'iter-tools-es'
//! Declares com.lightningkite.ktordb.startChain
export function startChain<T extends any>(): PropChain<T, T> {
return new PropChain<T, T>((it: Condition<T>): Condition<T> => (it), (it: Modification<T>): Modification<T> => (it));
}
//! Declares com.lightningkite.ktordb.PropChain
export class PropChain<From extends any, To extends any> {
public constructor(public readonly mapCondition: ((a: Condition<To>) => Condition<From>), public readonly mapModification: ((a: Modification<To>) => Modification<From>)) {
}
public get<V extends any>(prop: TProperty1<To, V>): PropChain<From, V> {
return new PropChain<From, V>((it: Condition<V>): Condition<From> => (this.mapCondition(new Condition.OnField<To, V>(prop, it))), (it: Modification<V>): Modification<From> => (this.mapModification(new Modification.OnField<To, V>(prop, it))));
}
// override fun hashCode(): Int = mapCondition(Condition.Always()).hashCode()
public toString(): string {
return `PropChain(${this.mapCondition(new Condition.Always<To>())})`;
}
// @Suppress("UNCHECKED_CAST")
// override fun equals(other: Any?): Boolean = other is PropChain<*, *> && mapCondition(Condition.Always()) == (other as PropChain<Any?, Any?>).mapCondition(Condition.Always())
}
//! Declares com.lightningkite.ktordb.condition
export function condition<T extends any>(setup: ((a: PropChain<T, T>) => Condition<T>)): Condition<T> {
return (setup)(startChain<T>());
}
//! Declares com.lightningkite.ktordb.modification
export function modification<T extends any>(setup: ((a: PropChain<T, T>) => Modification<T>)): Modification<T> {
return (setup)(startChain<T>());
}
//! Declares com.lightningkite.ktordb.always>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.always.K, com.lightningkite.ktordb.always.K
export function xPropChainAlwaysGet<K extends any>(this_: PropChain<K, K>): Condition<K> { return new Condition.Always<K>(); }
//! Declares com.lightningkite.ktordb.never>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.never.K, com.lightningkite.ktordb.never.K
export function xPropChainNeverGet<K extends any>(this_: PropChain<K, K>): Condition<K> { return new Condition.Never<K>(); }
//! Declares com.lightningkite.ktordb.eq>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.eq.K, com.lightningkite.ktordb.eq.T
export function xPropChainEq<K extends any, T extends any>(this_: PropChain<K, T>, value: T): Condition<K> {
return this_.mapCondition(new Condition.Equal<T>(value));
}
//! Declares com.lightningkite.ktordb.neq>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.neq.K, com.lightningkite.ktordb.neq.T
export function xPropChainNeq<K extends any, T extends any>(this_: PropChain<K, T>, value: T): Condition<K> {
return this_.mapCondition(new Condition.NotEqual<T>(value));
}
//! Declares com.lightningkite.ktordb.ne>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.ne.K, com.lightningkite.ktordb.ne.T
export function xPropChainNe<K extends any, T extends any>(this_: PropChain<K, T>, value: T): Condition<K> {
return this_.mapCondition(new Condition.NotEqual<T>(value));
}
//! Declares com.lightningkite.ktordb.inside>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.inside.K, com.lightningkite.ktordb.inside.T
export function xPropChainInside<K extends any, T extends any>(this_: PropChain<K, T>, values: Array<T>): Condition<K> {
return this_.mapCondition(new Condition.Inside<T>(values));
}
//! Declares com.lightningkite.ktordb.nin>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.nin.K, com.lightningkite.ktordb.nin.T
export function xPropChainNin<K extends any, T extends any>(this_: PropChain<K, T>, values: Array<T>): Condition<K> {
return this_.mapCondition(new Condition.NotInside<T>(values));
}
//! Declares com.lightningkite.ktordb.notIn>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.notIn.K, com.lightningkite.ktordb.notIn.T
export function xPropChainNotIn<K extends any, T extends any>(this_: PropChain<K, T>, values: Array<T>): Condition<K> {
return this_.mapCondition(new Condition.NotInside<T>(values));
}
//! Declares com.lightningkite.ktordb.gt>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.gt.K, com.lightningkite.ktordb.gt.T
export function xPropChainGt<K extends any, T extends any>(this_: PropChain<K, T>, value: T): Condition<K> {
return this_.mapCondition(new Condition.GreaterThan<T>(value));
}
//! Declares com.lightningkite.ktordb.lt>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.lt.K, com.lightningkite.ktordb.lt.T
export function xPropChainLt<K extends any, T extends any>(this_: PropChain<K, T>, value: T): Condition<K> {
return this_.mapCondition(new Condition.LessThan<T>(value));
}
//! Declares com.lightningkite.ktordb.gte>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.gte.K, com.lightningkite.ktordb.gte.T
export function xPropChainGte<K extends any, T extends any>(this_: PropChain<K, T>, value: T): Condition<K> {
return this_.mapCondition(new Condition.GreaterThanOrEqual<T>(value));
}
//! Declares com.lightningkite.ktordb.lte>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.lte.K, com.lightningkite.ktordb.lte.T
export function xPropChainLte<K extends any, T extends any>(this_: PropChain<K, T>, value: T): Condition<K> {
return this_.mapCondition(new Condition.LessThanOrEqual<T>(value));
}
//! Declares com.lightningkite.ktordb.allClear>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.allClear.K, kotlin.Int
export function xPropChainAllClear<K extends any>(this_: PropChain<K, number>, mask: number): Condition<K> {
return this_.mapCondition(new Condition.IntBitsClear(mask));
}
//! Declares com.lightningkite.ktordb.allSet>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.allSet.K, kotlin.Int
export function xPropChainAllSet<K extends any>(this_: PropChain<K, number>, mask: number): Condition<K> {
return this_.mapCondition(new Condition.IntBitsSet(mask));
}
//! Declares com.lightningkite.ktordb.anyClear>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.anyClear.K, kotlin.Int
export function xPropChainAnyClear<K extends any>(this_: PropChain<K, number>, mask: number): Condition<K> {
return this_.mapCondition(new Condition.IntBitsAnyClear(mask));
}
//! Declares com.lightningkite.ktordb.anySet>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.anySet.K, kotlin.Int
export function xPropChainAnySet<K extends any>(this_: PropChain<K, number>, mask: number): Condition<K> {
return this_.mapCondition(new Condition.IntBitsAnySet(mask));
}
//! Declares com.lightningkite.ktordb.contains>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.contains.K, kotlin.String
export function xPropChainContains<K extends any>(this_: PropChain<K, string>, value: string): Condition<K> {
return this_.mapCondition(new Condition.StringContains(value, true));
}
//! Declares com.lightningkite.ktordb.contains>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.contains.K, kotlin.String
export function xPropChainContainsCased<K extends any>(this_: PropChain<K, string>, value: string, ignoreCase: boolean): Condition<K> {
return this_.mapCondition(new Condition.StringContains(value, ignoreCase));
}
//! Declares com.lightningkite.ktordb.fullTextSearch>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.fullTextSearch.K, com.lightningkite.ktordb.fullTextSearch.V
export function xPropChainFullTextSearch<K extends any, V extends any>(this_: PropChain<K, V>, value: string, ignoreCase: boolean): Condition<K> {
return this_.mapCondition(new Condition.FullTextSearch<V>(value, ignoreCase));
}
//! Declares com.lightningkite.ktordb.all>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.all.K, kotlin.collections.Listcom.lightningkite.ktordb.all.T
export function xPropChainAll<K extends any, T extends any>(this_: PropChain<K, Array<T>>, condition: ((a: PropChain<T, T>) => Condition<T>)): Condition<K> {
return this_.mapCondition(new Condition.AllElements<T>((condition)(startChain<T>())));
}
//! Declares com.lightningkite.ktordb.any>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.any.K, kotlin.collections.Listcom.lightningkite.ktordb.any.T
export function xPropChainAny<K extends any, T extends any>(this_: PropChain<K, Array<T>>, condition: ((a: PropChain<T, T>) => Condition<T>)): Condition<K> {
return this_.mapCondition(new Condition.AnyElements<T>((condition)(startChain<T>())));
}
//! Declares com.lightningkite.ktordb.sizesEquals>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.sizesEquals.K, kotlin.collections.Listcom.lightningkite.ktordb.sizesEquals.T
export function xPropChainSizesEquals<K extends any, T extends any>(this_: PropChain<K, Array<T>>, count: number): Condition<K> {
return this_.mapCondition(new Condition.SizesEquals<T>(count));
}
//! Declares com.lightningkite.ktordb.containsKey>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.containsKey.K, kotlin.collections.Mapkotlin.String, com.lightningkite.ktordb.containsKey.T
export function xPropChainContainsKey<K extends any, T extends any>(this_: PropChain<K, Map<string, T>>, key: string): Condition<K> {
return this_.mapCondition(new Condition.Exists<T>(key));
}
//! Declares com.lightningkite.ktordb.notNull>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.notNull.K, com.lightningkite.ktordb.notNull.T
export function xPropChainNotNullGet<K extends any, T extends any>(this_: PropChain<K, (T | null)>): PropChain<K, T> { return new PropChain<K, T>((it: Condition<T>): Condition<K> => (this_.mapCondition(new Condition.IfNotNull<T>(it))), (it: Modification<T>): Modification<K> => (this_.mapModification(new Modification.IfNotNull<T>(it)))); }
//! Declares com.lightningkite.ktordb.get>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.get.K, kotlin.collections.Mapkotlin.String, com.lightningkite.ktordb.get.T
export function xPropChainGet<K extends any, T extends any>(this_: PropChain<K, Map<string, T>>, key: string): PropChain<K, T> {
return new PropChain<K, T>((it: Condition<T>): Condition<K> => (this_.mapCondition(new Condition.OnKey<T>(key, it))), (it: Modification<T>): Modification<K> => (this_.mapModification(new Modification.ModifyByKey<T>(new Map([[key, it]])))));
}
//! Declares com.lightningkite.ktordb.condition>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.condition.K, com.lightningkite.ktordb.condition.T
export function xPropChainCondition<K extends any, T extends any>(this_: PropChain<K, T>, make: ((a: PropChain<T, T>) => Condition<T>)): Condition<K> {
return this_.mapCondition(make(startChain<T>()));
}
//! Declares com.lightningkite.ktordb.modification>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.modification.K, com.lightningkite.ktordb.modification.T
export function xPropChainModification<K extends any, T extends any>(this_: PropChain<K, T>, make: ((a: PropChain<T, T>) => Modification<T>)): Modification<K> {
return this_.mapModification(make(startChain<T>()));
}
//! Declares com.lightningkite.ktordb.assign>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.assign.K, com.lightningkite.ktordb.assign.T
export function xPropChainAssign<K extends any, T extends any>(this_: PropChain<K, T>, value: T): Modification<K> {
return this_.mapModification(new Modification.Assign<T>(value));
}
//! Declares com.lightningkite.ktordb.coerceAtMost>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.coerceAtMost.K, com.lightningkite.ktordb.coerceAtMost.T
export function xPropChainCoerceAtMost<K extends any, T extends Comparable<T>>(this_: PropChain<K, T>, value: T): Modification<K> {
return this_.mapModification(new Modification.CoerceAtMost<T>(value));
}
//! Declares com.lightningkite.ktordb.coerceAtLeast>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.coerceAtLeast.K, com.lightningkite.ktordb.coerceAtLeast.T
export function xPropChainCoerceAtLeast<K extends any, T extends Comparable<T>>(this_: PropChain<K, T>, value: T): Modification<K> {
return this_.mapModification(new Modification.CoerceAtLeast<T>(value));
}
//! Declares com.lightningkite.ktordb.plus>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.plus.K, com.lightningkite.ktordb.plus.T
export function xPropChainPlusNumber<K extends any, T extends number>(this_: PropChain<K, T>, by: T): Modification<K> {
return this_.mapModification(new Modification.Increment<T>(by));
}
//! Declares com.lightningkite.ktordb.times>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.times.K, com.lightningkite.ktordb.times.T
export function xPropChainTimes<K extends any, T extends number>(this_: PropChain<K, T>, by: T): Modification<K> {
return this_.mapModification(new Modification.Multiply<T>(by));
}
//! Declares com.lightningkite.ktordb.plus>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.plus.K, kotlin.String
export function xPropChainPlusString<K extends any>(this_: PropChain<K, string>, value: string): Modification<K> {
return this_.mapModification(new Modification.AppendString(value));
}
//! Declares com.lightningkite.ktordb.plus>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.plus.K, kotlin.collections.Listcom.lightningkite.ktordb.plus.T
export function xPropChainPlusItems<K extends any, T>(this_: PropChain<K, Array<T>>, items: Array<T>): Modification<K> {
return this_.mapModification(new Modification.AppendList<T>(items));
}
//! Declares com.lightningkite.ktordb.plus>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.plus.K, kotlin.collections.Listcom.lightningkite.ktordb.plus.T
export function xPropChainPlusItem<K extends any, T>(this_: PropChain<K, Array<T>>, item: T): Modification<K> {
return this_.mapModification(new Modification.AppendList<T>([item]));
}
//! Declares com.lightningkite.ktordb.addAll>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.addAll.K, kotlin.collections.Listcom.lightningkite.ktordb.addAll.T
export function xPropChainAddAll<K extends any, T extends any>(this_: PropChain<K, Array<T>>, items: Array<T>): Modification<K> {
return this_.mapModification(new Modification.AppendList<T>(items));
}
//! Declares com.lightningkite.ktordb.addUnique>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.addUnique.K, kotlin.collections.Listcom.lightningkite.ktordb.addUnique.T
export function xPropChainAddUnique<K extends any, T extends any>(this_: PropChain<K, Array<T>>, items: Array<T>): Modification<K> {
return this_.mapModification(new Modification.AppendSet<T>(items));
}
//! Declares com.lightningkite.ktordb.removeAll>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.removeAll.K, kotlin.collections.Listcom.lightningkite.ktordb.removeAll.T
export function xPropChainRemoveAll<K extends any, T extends any>(this_: PropChain<K, Array<T>>, condition: ((a: PropChain<T, T>) => Condition<T>)): Modification<K> {
return this_.mapModification(new Modification.Remove<T>((condition)(startChain<T>())));
}
//! Declares com.lightningkite.ktordb.removeAll>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.removeAll.K, kotlin.collections.Listcom.lightningkite.ktordb.removeAll.T
export function xPropChainRemoveList<K extends any, T extends any>(this_: PropChain<K, Array<T>>, items: Array<T>): Modification<K> {
return this_.mapModification(new Modification.RemoveInstances<T>(items));
}
//! Declares com.lightningkite.ktordb.dropLast>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.dropLast.K, kotlin.collections.Listcom.lightningkite.ktordb.dropLast.T
export function xPropChainDropLast<K extends any, T extends any>(this_: PropChain<K, Array<T>>): Modification<K> {
return this_.mapModification(new Modification.DropLast<T>());
}
//! Declares com.lightningkite.ktordb.dropFirst>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.dropFirst.K, kotlin.collections.Listcom.lightningkite.ktordb.dropFirst.T
export function xPropChainDropFirst<K extends any, T extends any>(this_: PropChain<K, Array<T>>): Modification<K> {
return this_.mapModification(new Modification.DropFirst<T>());
}
//! Declares com.lightningkite.ktordb.map>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.map.K, kotlin.collections.Listcom.lightningkite.ktordb.map.T
export function xPropChainMap<K extends any, T extends any>(this_: PropChain<K, Array<T>>, modification: ((a: PropChain<T, T>) => Modification<T>)): Modification<K> {
return this_.mapModification(new Modification.PerElement<T>(new Condition.Always<T>(), (modification)(startChain<T>())));
}
//! Declares com.lightningkite.ktordb.mapIf>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.mapIf.K, kotlin.collections.Listcom.lightningkite.ktordb.mapIf.T
export function xPropChainMapIf<K extends any, T extends any>(this_: PropChain<K, Array<T>>, condition: ((a: PropChain<T, T>) => Condition<T>), modification: ((a: PropChain<T, T>) => Modification<T>)): Modification<K> {
return this_.mapModification(
new Modification.PerElement<T>((condition)(startChain<T>()), (modification)(startChain<T>()))
);
}
//! Declares com.lightningkite.ktordb.plus>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.plus.K, kotlin.collections.Mapkotlin.String, com.lightningkite.ktordb.plus.T
export function xPropChainPlusMap<K extends any, T extends any>(this_: PropChain<K, Map<string, T>>, map: Map<string, T>): Modification<K> {
return this_.mapModification(new Modification.Combine<T>(map));
}
//! Declares com.lightningkite.ktordb.modifyByKey>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.modifyByKey.K, kotlin.collections.Mapkotlin.String, com.lightningkite.ktordb.modifyByKey.T
export function xPropChainModifyByKey<K extends any, T extends any>(this_: PropChain<K, Map<string, T>>, map: Map<string, ((a: PropChain<T, T>) => Modification<T>)>): Modification<K> {
return this_.mapModification(new Modification.ModifyByKey<T>(new Map(iMap(x => [x[0], ((it: [string, (a: PropChain<T, T>) => Modification<T>]): Modification<T> => ((it[1])(startChain<T>())))(x)], map.entries()))));
}
//! Declares com.lightningkite.ktordb.removeKeys>com.lightningkite.ktordb.PropChaincom.lightningkite.ktordb.removeKeys.K, kotlin.collections.Mapkotlin.String, com.lightningkite.ktordb.removeKeys.T
export function xPropChainRemoveKeys<K extends any, T extends any>(this_: PropChain<K, Map<string, T>>, fields: Set<string>): Modification<K> {
return this_.mapModification(new Modification.RemoveKeys<T>(fields));
}