Merge pull request #3810 from reppners/js-data

+ update of definitions to make use of union types
This commit is contained in:
Masahiro Wakame
2015-03-07 00:34:03 +09:00
3 changed files with 72 additions and 202 deletions
+2 -4
View File
@@ -16,15 +16,13 @@ declare module JSData {
bindAll<T>(resourceName:string, params:DSFilterParams, scope:ng.IScope, expr:string, cb?:(err:DSError, items:Array<T>)=>void):Function;
bindOne<T>(resourceName:string, id:string, scope:ng.IScope, expr:string, cb?:(err:DSError, item:T)=>void):Function;
bindOne<T>(resourceName:string, id:number, scope:ng.IScope, expr:string, cb?:(err:DSError, item:T)=>void):Function;
bindOne<T>(resourceName:string, id:string | number, scope:ng.IScope, expr:string, cb?:(err:DSError, item:T)=>void):Function;
}
interface DSResourceDefinition<T> {
bindAll<T>(params:DSFilterParams, scope:ng.IScope, expr:string, cb?:(err:DSError, items:Array<T>)=>void):Function;
bindOne<T>(id:string, scope:ng.IScope, expr:string, cb?:(err:DSError, item:T)=>void):Function;
bindOne<T>(id:number, scope:ng.IScope, expr:string, cb?:(err:DSError, item:T)=>void):Function;
bindOne<T>(id:string | number, scope:ng.IScope, expr:string, cb?:(err:DSError, item:T)=>void):Function;
}
}
+2 -8
View File
@@ -13,14 +13,8 @@ declare module JSData {
queryTransform?: (resourceName:string, params:DSFilterParams)=>any;
httpConfig?: any;
forceTrailingSlash?: boolean;
log?: any;
// TODO wait for union types to be supported
// log: (message?: any, ...optionalParams: any[])=> void;
// log: boolean;
error?: any;
// TODO wait for union types to be supported
// error: (message?: any, ...optionalParams: any[])=> void;
// error: boolean;
log?: boolean | ((message?:any, ...optionalParams:any[])=> void);
error?: boolean | ((message?:any, ...optionalParams:any[])=> void);
}
interface DSHttpAdapterPromiseResolveType {
+68 -190
View File
@@ -1,4 +1,4 @@
// Type definitions for JSData v1.3.0
// Type definitions for JSData v1.5.4
// Project: https://github.com/js-data/js-data
// Definitions by: Stefan Steinhart <https://github.com/reppners>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
@@ -34,97 +34,44 @@ declare module JSData {
defaults:DSConfiguration;
changeHistory(resourceName:string, id?:string):Array<Object>;
changeHistory(resourceName:string, id?:number):Array<Object>;
changes(resourceName:string, id:string):Object;
changes(resourceName:string, id:number):Object;
compute<T>(resourceName:string, id:number):T;
compute<T>(resourceName:string, id:string):T;
compute<T>(resourceName:string, instance:Object):T;
create<T>(resourceName:string, attrs:any, options?:DSConfiguration):JSDataPromise<T>;
createInstance<T>(resourceName:string, attrs?:T, options?:DSAdapterOperationConfiguration):T;
defineResource<T>(resourceName:string):DSResourceDefinition<T>;
defineResource<T>(definition:DSResourceDefinitionConfiguration):DSResourceDefinition<T>;
destroy(resourceName:string, id:string, options?:DSAdapterOperationConfiguration):JSDataPromise<any>;
destroy(resourceName:string, id:number, options?:DSAdapterOperationConfiguration):JSDataPromise<any>;
// async
create<T>(resourceName:string, attrs:Object, options?:DSConfiguration):JSDataPromise<T>;
destroy(resourceName:string, id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<any>;
destroyAll(resourceName:string, params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<any>;
digest():void;
eject<T>(resourceName:string, id:string, options?:DSConfiguration):T;
eject<T>(resourceName:string, id:number, options?:DSConfiguration):T;
ejectAll<T>(resourceName:string, params:DSFilterParams, options?:DSConfiguration):Array<T>;
filter<T>(resourceName:string, params:DSFilterParams, options?:DSConfiguration):Array<T>;
find<T>(resourceName:string, id:string, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
find<T>(resourceName:string, id:number, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
find<T>(resourceName:string, id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
findAll<T>(resourceName:string, params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T>>;
loadRelations<T>(resourceName:string, idOrInstance:string | number | Object, relations:string | Array<string>, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
update<T>(resourceName:string, id:string | number, attrs:Object, options?:DSSaveConfiguration):JSDataPromise<T>;
updateAll<T>(resourceName:string, attrs:Object, params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T>>;
reap(resourceName:string, options?:DSConfiguration):JSDataPromise<any>;
refresh<T>(resourceName:string, id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
save<T>(resourceName:string, id:string | number, options?:DSSaveConfiguration):JSDataPromise<T>;
get<T>(resourceName:string, id:string, options?:DSConfiguration):T;
get<T>(resourceName:string, id:number, options?:DSConfiguration):T;
getAll<T>(resourceName:string, ids?:Array<string>):Array<T>;
getAll<T>(resourceName:string, ids?:Array<number>):Array<T>;
hasChanges(resourceName:string, id:string):boolean;
hasChanges(resourceName:string, id:number):boolean;
// sync
changeHistory(resourceName:string, id?:string | number):Array<Object>;
changes(resourceName:string, id:string | number):Object;
compute<T>(resourceName:string, idOrInstance:number | string | Object ):T;
createInstance<T>(resourceName:string, attrs?:T, options?:DSAdapterOperationConfiguration):T;
defineResource<T>(resourceNameOrDefinition:string | DSResourceDefinitionConfiguration):DSResourceDefinition<T>;
digest():void;
eject<T>(resourceName:string, id:string | number, options?:DSConfiguration):T;
ejectAll<T>(resourceName:string, params:DSFilterParams, options?:DSConfiguration):Array<T>;
filter<T>(resourceName:string, params:DSFilterParams, options?:DSConfiguration):Array<T>;
get<T>(resourceName:string, id:string | number, options?:DSConfiguration):T;
getAll<T>(resourceName:string, ids?:Array<string | number>):Array<T>;
hasChanges(resourceName:string, id:string | number):boolean;
inject<T>(resourceName:string, attrs:T, options?:DSConfiguration):T;
inject<T>(resourceName:string, items:Array<T>, options?:DSConfiguration):Array<T>;
is(resourceName:string, object:Object): boolean;
lastModified(resourceName:string, id?:string):number; // timestamp
lastModified(resourceName:string, id?:number):number; // timestamp
lastSaved(resourceName:string, id?:string):number; // timestamp
lastSaved(resourceName:string, id?:number):number; // timestamp
link<T>(resourceName:string, id:string, relations?:Array<string>):T;
link<T>(resourceName:string, id:number, relations?:Array<string>):T;
lastModified(resourceName:string, id?:string | number):number; // timestamp
lastSaved(resourceName:string, id?:string | number):number; // timestamp
link<T>(resourceName:string, id:string | number, relations?:Array<string>):T;
linkAll<T>(resourceName:string, params:DSFilterParams, relations?:Array<string>):T;
linkInverse<T>(resourceName:string, id:string, relations?:Array<string>):T;
linkInverse<T>(resourceName:string, id:number, relations?:Array<string>):T;
loadRelations<T>(resourceName:string, id:string, relations:string, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
loadRelations<T>(resourceName:string, id:number, relations:string, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
loadRelations<T>(resourceName:string, instance:Object, relations:string, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
loadRelations<T>(resourceName:string, id:string, relations:Array<string>, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
loadRelations<T>(resourceName:string, id:number, relations:Array<string>, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
loadRelations<T>(resourceName:string, instance:Object, relations:Array<string>, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
previous<T>(resourceName:string, id:string):T;
previous<T>(resourceName:string, id:number):T;
reap(resourceName:string, options?:DSConfiguration):JSDataPromise<any>;
refresh<T>(resourceName:string, id:string, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
refresh<T>(resourceName:string, id:number, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
linkInverse<T>(resourceName:string, id:string | number, relations?:Array<string>):T;
previous<T>(resourceName:string, id:string | number):T;
unlinkInverse<T>(resourceName:string, id:string | number, relations?:Array<string>):T;
registerAdapter(adapterId:string, adapter:IDSAdapter, options?:{default: boolean}):void;
save<T>(resourceName:string, id:string, options?:DSSaveConfiguration):JSDataPromise<T>;
save<T>(resourceName:string, id:number, options?:DSSaveConfiguration):JSDataPromise<T>;
unlinkInverse<T>(resourceName:string, id:string, relations?:Array<string>):T;
unlinkInverse<T>(resourceName:string, id:number, relations?:Array<string>):T;
update<T>(resourceName:string, id:string, attrs:any, options?:DSSaveConfiguration):JSDataPromise<T>;
update<T>(resourceName:string, id:number, attrs:any, options?:DSSaveConfiguration):JSDataPromise<T>;
updateAll<T>(resourceName:string, attrs:any, params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T>>;
}
interface DSConfiguration extends IDSResourceLifecycleEventHandlers {
@@ -139,7 +86,7 @@ declare module JSData {
// TODO enable when eagerInject in DS#create is implemented
//eagerInject?: boolean;
endpoint?: string;
error?: (message?:any, ...optionalParams:any[])=> void;
error?: boolean | ((message?:any, ...optionalParams:any[])=> void);
fallbackAdapters?: Array<string>;
findAllFallbackAdapters?: Array<string>;
findAllStrategy?: string;
@@ -150,15 +97,12 @@ declare module JSData {
findInverseLinks?: boolean;
findStrategy?: string
idAttribute?: string;
ignoredChanges?: Array<any>;
ignoredChanges?: Array<RegExp | string>;
// TODO ignoreMissing is undocumented
//ignoreMissing: boolean;
keepChangeHistory?: boolean;
loadFromServer?: boolean;
log?: any;
// TODO wait for union types to be supported
// log: (message?: any, ...optionalParams: any[])=> void;
// log: boolean;
log?: boolean | ((message?: any, ...optionalParams: any[])=> void);
maxAge?: number;
notify?: boolean;
reapAction?: string;
@@ -191,95 +135,41 @@ declare module JSData {
interface DSResourceDefinition<T> extends DSResourceDefinitionConfiguration {
changeHistory(id?:string):Array<Object>;
changeHistory(id?:number):Array<Object>;
changes(id:string):Object;
changes(id:number):Object;
compute<T>(id:number):T;
compute<T>(id:string):T;
compute<T>(instance:Object):T;
create<T>(attrs:any, options?:DSConfiguration):JSDataPromise<T>;
createInstance<T>(attrs?:T, options?:DSAdapterOperationConfiguration):T;
defineResource<T>(resourceName:string):DSResourceDefinition<T>;
defineResource<T>(definition:DSResourceDefinitionConfiguration):DSResourceDefinition<T>;
destroy(id:string, options?:DSAdapterOperationConfiguration):JSDataPromise<any>;
destroy(id:number, options?:DSAdapterOperationConfiguration):JSDataPromise<any>;
//async
create<T>(attrs:Object, options?:DSConfiguration):JSDataPromise<T>;
destroy(id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<any>;
destroyAll(params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<any>;
digest():void;
eject<T>(id:string, options?:DSConfiguration):T;
eject<T>(id:number, options?:DSConfiguration):T;
ejectAll<T>(params:DSFilterParams, options?:DSConfiguration):Array<T>;
filter<T>(params:DSFilterParams, options?:DSConfiguration):Array<T>;
find<T>(id:string, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
find<T>(id:number, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
find<T>(id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
findAll<T>(params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T>>;
loadRelations<T>(idOrInstance:string | number | Object, relations:string | Array<string>, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
update<T>(id:string | number, attrs:Object, options?:DSSaveConfiguration):JSDataPromise<T>;
updateAll<T>(attrs:Object, params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T>>;
reap(resourceNametions?:DSConfiguration):JSDataPromise<any>;
refresh<T>(id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
save<T>(id:string | number, options?:DSSaveConfiguration):JSDataPromise<T>;
get<T>(id:string, options?:DSConfiguration):T;
get<T>(id:number, options?:DSConfiguration):T;
getAll<T>(ids?:Array<string>):Array<T>;
getAll<T>(ids?:Array<number>):Array<T>;
hasChanges(id:string):boolean;
hasChanges(id:number):boolean;
// sync
changeHistory(id?:string | number):Array<Object>;
changes(id:string | number):Object;
compute<T>(idOrInstance:number | string | Object ):T;
createInstance<T>(attrs?:T, options?:DSAdapterOperationConfiguration):T;
digest():void;
eject<T>(id:string | number, options?:DSConfiguration):T;
ejectAll<T>(params:DSFilterParams, options?:DSConfiguration):Array<T>;
filter<T>(params:DSFilterParams, options?:DSConfiguration):Array<T>;
get<T>(id:string | number, options?:DSConfiguration):T;
getAll<T>(ids?:Array<string | number>):Array<T>;
hasChanges(id:string | number):boolean;
inject<T>(attrs:T, options?:DSConfiguration):T;
inject<T>(items:Array<T>, options?:DSConfiguration):Array<T>;
is(object:Object): boolean;
lastModified(id?:string):number; // timestamp
lastModified(id?:number):number; // timestamp
lastSaved(id?:string):number; // timestamp
lastSaved(id?:number):number; // timestamp
link<T>(id:string, relations?:Array<string>):T;
link<T>(id:number, relations?:Array<string>):T;
lastModified(id?:string | number):number; // timestamp
lastSaved(id?:string | number):number; // timestamp
link<T>(id:string | number, relations?:Array<string>):T;
linkAll<T>(params:DSFilterParams, relations?:Array<string>):T;
linkInverse<T>(id:string, relations?:Array<string>):T;
linkInverse<T>(id:number, relations?:Array<string>):T;
loadRelations<T>(id:string, relations:string, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
loadRelations<T>(id:number, relations:string, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
loadRelations<T>(instance:T, relations:string, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
loadRelations<T>(id:string, relations:Array<string>, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
loadRelations<T>(id:number, relations:Array<string>, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
loadRelations<T>(instance:T, relations:Array<string>, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
previous<T>(id:string):T;
previous<T>(id:number):T;
reap(options?:DSConfiguration):JSDataPromise<any>;
refresh<T>(id:string, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
refresh<T>(id:number, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
save<T>(id:string, options?:DSSaveConfiguration):JSDataPromise<T>;
save<T>(id:number, options?:DSSaveConfiguration):JSDataPromise<T>;
unlinkInverse<T>(id:string, relations?:Array<string>):T;
unlinkInverse<T>(id:number, relations?:Array<string>):T;
update<T>(id:string, attrs:any, options?:DSSaveConfiguration):JSDataPromise<T>;
update<T>(id:number, attrs:any, options?:DSSaveConfiguration):JSDataPromise<T>;
updateAll<T>(attrs:any, params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T>>;
linkInverse<T>(id:string | number, relations?:Array<string>):T;
previous<T>(id:string | number):T;
unlinkInverse<T>(id:string | number, relations?:Array<string>):T;
}
interface DSFilterParams {
@@ -290,17 +180,8 @@ declare module JSData {
skip?: number;
offset?: number;
orderBy?: any;
// TODO wait for union types to be supported
//orderBy?: Array<Array<string>>;
//orderBy?: Array<string>;
//orderBy?: string;
sort?: any;
// TODO wait for union types to be supported
//sort?: string;
//sort?: Array<string>;
//sort?: Array<Array<string>>;
orderBy?: string | Array<string> | Array<Array<string>>;
sort?: string | Array<string> | Array<Array<string>>;
}
interface IDSResourceLifecycleValidateEventHandlers {
@@ -375,22 +256,19 @@ declare module JSData {
// DSAdapter interface
interface IDSAdapter {
create<T>(config:DSResourceDefinition<T>, attrs:any, options?:DSConfiguration):JSDataPromise<T>;
create<T>(config:DSResourceDefinition<T>, attrs:Object, options?:DSConfiguration):JSDataPromise<T>;
destroy<T>(config:DSResourceDefinition<T>, id:string, options?:DSConfiguration):JSDataPromise<any>;
destroy<T>(config:DSResourceDefinition<T>, id:number, options?:DSConfiguration):JSDataPromise<any>;
destroy<T>(config:DSResourceDefinition<T>, id:string | number, options?:DSConfiguration):JSDataPromise<any>;
destroyAll<T>(config:DSResourceDefinition<T>, params:DSFilterParams, options?:DSConfiguration):JSDataPromise<any>;
find<T>(config:DSResourceDefinition<T>, id:string, options?:DSConfiguration):JSDataPromise<T>;
find<T>(config:DSResourceDefinition<T>, id:number, options?:DSConfiguration):JSDataPromise<T>;
find<T>(config:DSResourceDefinition<T>, id:string | number, options?:DSConfiguration):JSDataPromise<T>;
findAll<T>(config:DSResourceDefinition<T>, params?:DSFilterParams, options?:DSConfiguration):JSDataPromise<T>;
update<T>(config:DSResourceDefinition<T>, id:string, attrs:any, options?:DSConfiguration):JSDataPromise<T>;
update<T>(config:DSResourceDefinition<T>, id:number, attrs:any, options?:DSConfiguration):JSDataPromise<T>;
update<T>(config:DSResourceDefinition<T>, id:string | number, attrs:Object, options?:DSConfiguration):JSDataPromise<T>;
updateAll<T>(config:DSResourceDefinition<T>, attrs:any, params?:DSFilterParams, options?:DSConfiguration):JSDataPromise<T>;
updateAll<T>(config:DSResourceDefinition<T>, attrs:Object, params?:DSFilterParams, options?:DSConfiguration):JSDataPromise<T>;
}
}