js-data
Version:
Robust, framework-agnostic in-memory data store.
392 lines (391 loc) • 16 kB
TypeScript
export const version: {
alpha: string|boolean
beta: string|boolean
full: string
major: number
minor: number
patch: number
}
export interface Diff {
added: any
changed: any
removed: any
}
export const utils: {
Promise: PromiseConstructor
_(dest: any, src: any): void
_forRelation(opts: any, def: any, fn: Function, ctx: Object): void
_getIndex(list: any[], relation: any): number
addHiddenPropsToTarget(target: Object, props: Object): void
areDifferent(a: Object, b: Object, opts: any): boolean
classCallCheck(instance: Object, ctor: Function): void
copy(from: any, to?: any, stackFrom?: any, stackTo?: any, blacklist?: any[], plain?: boolean): any
deepFillIn(dest: Object, source: Object): Object
deepMixIn(dest: Object, source: Object): Object
diffObjects(a: any, b: any, opts: any): Diff
equal(a: any, b: any): boolean
eventify(target: any, getter: Function, setter: Function, enumerable?: boolean): void
extend(props?: any, classProps?: any): Function
fillIn(dest: Object, src: Object): void
findIndex(array: any[], fn: Function): void
forEachRelation(mapper: any, opts: any, fn: Function, ctx?: any): void
forOwn(obj: any, fn: Function, thisArg?: Object): void
fromJson(json: any): any
'get'(object: Object, prop: string): any
getSuper(instance: any, isCtor?: boolean): Function
intersection(array1: any[], array2: any[]): any[]
isArray(arg: any): boolean
isBlacklisted(prop: string, bl: any[]): boolean
isBoolean(value: any): boolean
isBrowser: boolean
isDate(value: any): boolean
isFunction(value: any): boolean
isInteger(value: any): boolean
isNull(value: any): boolean
isNumber(value: any): boolean
isObject(value: any): boolean
isRegExp(value: any): boolean
isSorN(value: any): boolean
isString(value: any): boolean
isUndefined(value: any): boolean
logify(target: any, defaultNamespace: any): void
noDupeAdd(array: any[], record: any, fn: Function): void
omit(props: Object, keys: string[]): Object
plainCopy(from: any): any
possibleConstructorReturn(self: Object, call: Object|Function): Object
reject(value: any): Promise<any>
remove(array: any[], fn: Function): void
resolve(value: any): Promise<any>
set(object: Object, path: string, value?: any): void
deepEqual(a: any, b: any): boolean
toJson(value: any, replacer?: Function, space?: number): string
unset(object: Object, path: string): void
}
export class Settable {
static extend(instanceProps?: any, classProps?: any): any
}
export class Component {
static extend(instanceProps?: any, classProps?: any): any
constructor(opts?: any)
_listeners: Object
dbg(...args: any[]): void
emit(key: string, ...args: any[]): void
log(level: string, ...args: any[]): void
off(key?: string, handler?: Function): void
on(key: string, handler: Function, ctx?: any): void
}
export class Record extends Component {
static mapper: Mapper
constructor(props?: any, opts?: any)
_set(prop: any, value?: any): void
_get(prop: string): any
_unset(prop: any): void
_mapper(): Mapper
afterLoadRelations(): void
afterSave(): void
beforeSave(): void
beforeLoadRelations(): void
changeHistory(): any[]
changes(opts?: any): Diff
commit(): this
create(opts?: any): Promise<Record>
destroy(opts?: any): Promise<any>
isNew(): boolean
loadRelations(relations: any, opts?: any): Promise<this>
'get'(key: string): any
hasChanges(opts?: any): boolean
previous(key: any): any
revert(opts?: any): this
save(opts?: any): Promise<this>
'set'(key: string, value?: any, opts?: any): void
toJSON(opts?: any): any
unset(key: string, opts?: any): void
validate(opts?: any): any
}
export class Mapper extends Component {
_adapters: Object
applySchema: boolean
name: string
defaultAdapter: string
debug: boolean
idAttribute: string
lifecycleMethods: any
notify: boolean
raw: boolean
recordClass: typeof Record
relationList: any[]
relationFields: string[]
schema: Schema
constructor(opts?: any)
afterCount(query: any, opts: any, result: any): any
afterCreate(props: any, opts: any, result: any): any
afterCreateMany(records: any[], opts: any, result: any): any
afterDestroy(id: string|number, opts: any, result: any): any
afterDestroyAll(query: any, opts: any, result: any): any
afterFind(id: string|number, opts: any, result: any): any
afterFindAll(query: any, opts: any, result: any): any
afterSum(field: string, query: any, opts: any, result: any): any
afterUpdate(id: string|number, props: any, opts: any, result: any): any
afterUpdateAll(props: any, query: any, opts: any, result: any): any
afterUpdateMany(records: any[], opts: any, result: any): any
beforeCreate(props: any, opts: any): any
beforeCreateMany(records: any[], opts: any): any
beforeCount(query: any, opts: any): any
beforeDestroy(id: string|number, opts: any): any
beforeDestroyAll(query: any, opts: any): any
beforeFind(id: string|number, opts: any): any
beforeFindAll(query: any, opts: any): any
beforeSum(field: string, query: any, opts: any): any
beforeUpdate(id: string|number, opts: any): any
beforeUpdateAll(query: any, opts: any): any
beforeUpdateMany(records: any[], opts: any): any
_end(result: any, opts: any, skip?: boolean): any
belongsTo(relatedMapper: any, opts: any): void
count(query: any, opts?: any): Promise<any>
create(props: any, opts?: any): Promise<any>
createInstance(props: any, opts?: any): any
createMany(records: any[], opts?: any): Promise<any>
createRecord(props?: any, opts?: any): Record
crud(method: any, ...args: any[]): Promise<any>
destroy(id: string|number, opts?: any): Promise<any>
destroyAll(query: any, opts?: any): Promise<any>
find(id: string|number, opts?: any): Promise<any>
findAll(query: any, opts?: any): Promise<any>
getAdapter(name: any): any
getAdapterName(opts?: any): any
getAdapters(): any
getSchema(): Schema
hasMany(relatedMapper: any, opts: any): void
hasOne(relatedMapper: any, opts: any): void
is(record: any): boolean
registerAdapter(name: string, adapter: any, opts?: any): void
sum(field: string, query: any, opts?: any): Promise<any>
toJSON(record: any, opts?: any): {}
update(id: string|number, props: any, opts?: any): Promise<any>
updateAll(props: any, query: any, opts?: any): Promise<any>
updateMany(records: any[], opts?: any): Promise<any>
validate(records: any|any[], opts?: any): any
}
export class Collection extends Component {
idAttribute: string
onConflict: string
recordOpts: any
index: Index
indexes: any
mapper: Mapper
constructor(records?: any[], opts?: any)
_onRecordEvent(...args: any[]): void
add(records: any, opts?: any): any
afterAdd(...args: any[]): void
afterRemove(...args: any[]): void
afterRemoveAll(...args: any[]): void
beforeAdd(...args: any[]): void
beforeRemove(...args: any[]): void
beforeRemoveAll(...args: any[]): void
between(leftKeys: any, rightKeys: any, opts?: any): any[]
createIndex(name: any, fieldList: any, opts?: any): this
filter(query: any, thisArg?: any): any[]
forEach(cb: Function, thisArg?: any): void
get(id: string|number): any
getAll(...args: any[]): any[]
getIndex(name: string): any
limit(num: number): any[]
map(cb: any, thisArg: any): any[]
mapCall(funcName: string, ...args: any[]): any[]
prune(): any[]
query(): Query
recordId(record?: any): any
reduce(cb: Function, initialValue: any): any
remove(id: string|number, opts?: any): any
removeAll(query: any, opts?: any): any[]
skip(num: number): any[]
toJSON(opts?: any): any[]
unsaved(): any[]
updateIndex(record: any, opts?: any): void
updateIndexes(record: any): void
}
export class LinkedCollection extends Collection {
_added: Object
datastore: DataStore
}
export class Container extends Component {
mapperDefaults: any
mapperClass: typeof Mapper
_adapters: Object
_mappers: Object
as(name: string): any
constructor(opts?: any)
createRecord(name: string, props?: any, opts?: any): Record
defineMapper(name: string, opts?: any): Mapper
defineResource(name: string, opts?: any): Mapper
getAdapter(name: any): any
getAdapterName(opts?: any): string
getAdapters(): any
getMapper(name: string): Mapper
getMapperByName(name:string): Mapper
registerAdapter(name: string, adapter: any, opts?: any): void
}
export class SimpleStore extends Container {
collectionClass: typeof Collection
_collections: Object
_pendingQueries: Object
_completedQueries: Object
usePendingFind: boolean
usePendingFindAll: boolean
as(name: string): Mapper|Collection
constructor(opts?: any)
add(mapperName: string, records: any[]|any, opts?: any): any[]|any
addToCache(mapperName: string, data: any, opts: any): any
between(mapperName: string, leftKeys: any, rightKeys: any, opts?: any): any[]
cachedFind(mapperName: string, id: string|number, opts: any): any
cachedFindAll(mapperName: string, hash: string, opts: any): any
cacheFind(mapperName: string, data: any, id: string|number, opts: any): void
cacheFindAll(mapperName: string, data: any, hash: string, opts: any): void
clear(): any
createIndex(mapperName: string, name: any, fieldList: any, opts?: any): Collection
filter(mapperName: string, query: any, thisArg?: any): any[]
get(mapperName: string, id: string|number): any
getAll(mapperName: string, ...args: any[]): any[]
query(mapperName: string): Query
remove(mapperName: string, id: string|number, opts?: any): any
removeAll(mapperName: string, query?: any, opts?: any): void|any[]
toJson(mapperName: string, opts?: any): any[]
_callSuper(method: string, ...args: any[]): any
_end(mapperName: string, data: any, opts?: any): any
create(mapperName: string, record: any, opts?: any): Promise<any>
createMany(mapperName: string, records: any, opts?: any): Promise<any[]|any>
defineMapper(mapperName: string, opts?: any): Mapper
destroy(mapperName: string, id: any, opts?: any): Promise<any>
destroyAll(mapperName: string, query?: any, opts?: any): Promise<any>
find(mapperName: string, id: any, opts?: any): Promise<any>
findAll(mapperName: string, query?: any, opts?: any): Promise<any>
cachedFind(mapperName: string, id: any, opts?: any): any
cachedFindAll(mapperName: string, query: any, opts?: any): any
hashQuery(mapperName: string, query: any, opts?: any): string
getCollection(mapperName: string): Collection
update(mapperName: string, id: any, record: any, opts?: any): Promise<any>
updateAll(mapperName: string, props: any, query?: any, opts?: any): Promise<any[]|any>
updateMany(mapperName: string, records: any, opts?: any): Promise<any[]|any>
}
export class DataStore extends SimpleStore {
collectionClass: typeof LinkedCollection
as(name: string): Mapper|LinkedCollection
createIndex(mapperName: string, name: any, fieldList: any, opts?: any): LinkedCollection
getCollection(mapperName: string): LinkedCollection
}
export class Query extends Component {
static ops: {
'=='(value: any, predicate: any): boolean
'==='(value: any, predicate: any): boolean
'!='(value: any, predicate: any): boolean
'!=='(value: any, predicate: any): boolean
'>'(value: any, predicate: any): boolean
'>='(value: any, predicate: any): boolean
'<'(value: any, predicate: any): boolean
'<='(value: any, predicate: any): boolean
'isectEmpty'(value: any, predicate: any): boolean
'isectNotEmpty'(value: any, predicate: any): number
'in'(value: any, predicate: any): boolean
'notIn'(value: any, predicate: any): boolean
'contains'(value: any, predicate: any): boolean
'notContains'(value: any, predicate: any): boolean
}
collection: Collection|LinkedCollection
data: any[]
constructor(collection?: Collection)
compare(orderBy: any, index: any, a: any, b: any): any
evaluate(value: any, op: string, predicate: any): boolean
like(pattern: any, flags: any): RegExp
getData(): any[]
between(leftKeys: any, rightKeys: any, opts?: any): this
get(keyList?: any[], opts?: any): this
getAll(...args: any[]): this
filter(query: any, thisArg?: any): this
skip(num: number): this
limit(num: number): this
forEach(forEachFn: Function, thisArg?: any): this
map(mapFn: Function, thisArg?: any): this
mapCall(funcName: string, ...args: any[]): this
run(): any[]
}
export interface SchemaValidationError {
expected: any
actual: string
path: string
}
export class Schema extends Component {
static types: {
array(value: any): boolean
boolean(value: any): boolean
integer(value: any): boolean
'null'(value: any): boolean
number(value: any): boolean
object(value: any): boolean
string(value: any): boolean
}
static typeGroupValidators: {
array(value: any, schema: any, opts: any): SchemaValidationError[]
integer(value: any, schema: any, opts: any): SchemaValidationError[]
number(value: any, schema: any, opts: any): SchemaValidationError[]
numeric(value: any, schema: any, opts: any): SchemaValidationError[]
object(value: any, schema: any, opts: any): SchemaValidationError[]
string(value: any, schema: any, opts: any): SchemaValidationError[]
}
static validationKeywords: {
allOf(value: any, schema: any, opts: any): SchemaValidationError[]
anyOf(value: any, schema: any, opts: any): SchemaValidationError[]
dependencies(value: any, schema: any, opts: any): void
enum(value: any, schema: any, opts: any): SchemaValidationError
items(value: any, schema: any, opts: any): SchemaValidationError[]
maximum(value: any, schema: any, opts: any): SchemaValidationError
maxItems(value: any, schema: any, opts: any): SchemaValidationError
maxLength(value: any, schema: any, opts: any): SchemaValidationError
maxProperties(value: any, schema: any, opts: any): SchemaValidationError
minimum(value: any, schema: any, opts: any): SchemaValidationError
minItems(value: any, schema: any, opts: any): SchemaValidationError
minLength(value: any, schema: any, opts: any): SchemaValidationError
minProperties(value: any, schema: any, opts: any): SchemaValidationError
multipleOf(value: any, schema: any, opts: any): SchemaValidationError
not(value: any, schema: any, opts: any): SchemaValidationError
oneOf(value: any, schema: any, opts: any): SchemaValidationError[]
pattern(value: any, schema: any, opts: any): SchemaValidationError
properties(value: any, schema: any, opts: any): SchemaValidationError[]
required(value: any, schema: any, opts: any): SchemaValidationError[]
type(value: any, schema: any, opts: any): SchemaValidationError
uniqueItems(value: any, schema: any, opts: any): SchemaValidationError
}
static validate(value: any, schema: any, opts: any): SchemaValidationError[]
properties: any
constructor(definition: any)
apply(target: any, opts?: any): void
applyDefaults(target: any): void
makeDescriptor(prop: string, schema: Schema, opts?: any): any
pick(value: any): any
validate(value: any, opts?: any): SchemaValidationError[]
}
export class Index {
fieldList: string[]
fieldGetter: Function
hashCode: Function
isIndex: boolean
keys: any[]
values: any[]
constructor(fieldList: string[], opts?: any)
'set'(keyList: any[], value: any): void
'get'(keyList: any[]): any
getAll(): any[]
visitAll(cb: Function, thisArg?: any): void
between(leftKeys: any, rightKeys: any, opts?: any): any[]
_between(leftKeys: any, rightKeys: any, opts: any): any[]
peek(): any
clear(): void
insertRecord(data: any): void
removeRecord(data: any): any
updateRecord(data: any): void
}
export const belongsToType: string
export const hasManyType: string
export const hasOneType: string
export const belongsTo: (related: any, opts: any) => (target: any) => void
export const hasMany: (related: any, opts: any) => (target: any) => void
export const hasOne: (related: any, opts: any) => (target: any) => void