UNPKG

neo4-js

Version:

Neo4j graphdb object graph mapper for javascript

78 lines (77 loc) 2.48 kB
import { ModelInstance, BaseProps } from "./ModelInstance"; export declare type Optional<T> = T extends object ? { [P in keyof T]+?: T[P]; } : T; export declare type Property<T> = T extends string ? StringProperty : (T extends number ? NumberProperty : T); export declare type PropertiesType<T> = T extends object ? { [P in keyof T]: Property<T[P]>; } : T; export declare type HasManyActions<P, M extends ModelInstance<P, R>, R = {}> = { get: (props?: Optional<PropertiesType<P & BaseProps>>, relationProps?: Optional<PropertiesType<R>>) => Promise<M[]>; update: (props?: Optional<P>, where?: Optional<PropertiesType<P & BaseProps>>, relationProps?: PropertiesType<Optional<R>>, whereRelationProps?: Optional<PropertiesType<PropertiesType<R>>>) => Promise<M[]>; create: (props: P[] | P, relationProps?: R) => Promise<M[]>; add: (instances: M[] | M, relationProps?: R) => Promise<number>; remove: (props?: Optional<PropertiesType<P & BaseProps>>, relationProps?: Optional<PropertiesType<R>>) => Promise<Neo4jResultStats>; count: (props?: Optional<PropertiesType<P & BaseProps>>, relationProps?: Optional<PropertiesType<R>>) => Promise<number>; }; export declare type HasOneActions<P, M extends ModelInstance<P>> = { get: () => Promise<M | null>; update: (props: Optional<P>) => Promise<M | null>; create: (props: P) => Promise<M>; add: (instance: M) => Promise<boolean>; remove: () => Promise<Neo4jResultStats>; hasOne: () => Promise<boolean>; }; export declare type StringProperty = { $sw: string; } | { $ew: string; } | { $contains: string; } | { $reg: string; } | { $eq: string; } | { $or: StringProperty[]; } | { $and: StringProperty[]; } | { $in: string[]; } | { $not: StringProperty; } | string; export declare type NumberProperty = { $gt: number; } | { $gte: number; } | { $lt: number; } | { $lte: number; } | { $eq: number; } | { $or: NumberProperty[]; } | { $and: NumberProperty[]; } | { $between: [number, number]; } | { $in: number[]; } | { $not: NumberProperty; } | number; export declare type Neo4jResultStats = { nodesCreated: number; nodesDeleted: number; relationshipsCreated: number; relationshipsDeleted: number; propertiesSet: number; labelsAdded: number; labelsRemoved: number; indexesAdded: number; indexesRemoved: number; constraintsAdded: number; constraintsRemoved: number; };