mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-09-09 11:13:57 +08:00
backported usage of new typescript features to legacy typings, fixed errors in typings and tests
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
/// <reference path="js-data.d.ts" />
|
||||
/// <reference path="../js-data-http/js-data-http.d.ts" />
|
||||
|
||||
import JSData = require('js-data');
|
||||
@@ -13,4 +12,4 @@ var User = store.defineResource('user');
|
||||
|
||||
User.find(1).then(function (user: any) {
|
||||
user; // { id: 1, name: 'John' }
|
||||
});
|
||||
});
|
||||
|
||||
@@ -135,10 +135,9 @@ aComment.filter({
|
||||
});
|
||||
|
||||
// Get all comments where comment.userId == 5
|
||||
//TODO rather unexplicit version of where.. support in typings?
|
||||
//aComment.filter({
|
||||
// userId: 5
|
||||
//});
|
||||
aComment.filter({
|
||||
userId: 5
|
||||
});
|
||||
|
||||
// Get all comments where comment.userId === 5
|
||||
aComment.filter({
|
||||
@@ -400,7 +399,7 @@ OtherOtherComment.update(1, {content: 'stuff'}, {params: {postId: false}}); // P
|
||||
|
||||
var store = new JSData.DS({
|
||||
// set the default
|
||||
beforeCreate: function (resource, data, cb) {
|
||||
beforeCreate: function (resource:JSData.DSResourceDefinition<any>, data:any, cb:(err:Error, returnData:any)=>void) {
|
||||
// do something general
|
||||
cb(null, data);
|
||||
}
|
||||
@@ -409,7 +408,7 @@ var store = new JSData.DS({
|
||||
var User4 = store.defineResource({
|
||||
name: 'user',
|
||||
// set just for this resource
|
||||
beforeCreate: function (resource, data, cb) {
|
||||
beforeCreate: function (resource:JSData.DSResourceDefinition<any>, data:any, cb:(err:Error, returnData:any)=>void) {
|
||||
// do something more specific to "users"
|
||||
cb(null, data);
|
||||
}
|
||||
@@ -417,7 +416,7 @@ var User4 = store.defineResource({
|
||||
|
||||
User4.create({name: 'John'}, {
|
||||
// set just for this method call
|
||||
beforeCreate: function (resource, data, cb) {
|
||||
beforeCreate: function (resource:JSData.DSResourceDefinition<any>, data:any, cb:(err:Error, returnData:any)=>void) {
|
||||
// do something specific for this method call
|
||||
cb(null, data);
|
||||
}
|
||||
|
||||
Vendored
+33
-19
@@ -27,7 +27,7 @@ declare module JSData {
|
||||
clearEmptyQueries?:boolean;
|
||||
debug?:boolean;
|
||||
defaultAdapter?: string;
|
||||
defaultFilter?: (collection:Array<any>, resourceName:string, params:DSFilterParams, options:DSConfiguration)=>Array<any>;
|
||||
defaultFilter?: (collection:Array<any>, resourceName:string, params:DSFilterArg, options:DSConfiguration)=>Array<any>;
|
||||
defaultValues?:Object;
|
||||
eagerEject?: boolean;
|
||||
endpoint?: string;
|
||||
@@ -86,6 +86,8 @@ declare module JSData {
|
||||
sort?: string | Array<string> | Array<Array<string>>;
|
||||
}
|
||||
|
||||
type DSFilterArg = DSFilterParams | Object;
|
||||
|
||||
interface DSAdapterOperationConfiguration extends DSConfiguration {
|
||||
adapter?: string;
|
||||
params?: {
|
||||
@@ -97,6 +99,12 @@ declare module JSData {
|
||||
changesOnly?: boolean;
|
||||
}
|
||||
|
||||
interface DSCollection<T> extends Array<T> {
|
||||
fetch(params?:DSFilterArg, options?:DSConfiguration):JSDataPromise<Array<T & DSInstanceShorthands<T>>>;
|
||||
params:DSFilterArg;
|
||||
resourceName:string;
|
||||
}
|
||||
|
||||
interface DS {
|
||||
new(config?:DSConfiguration):DS;
|
||||
|
||||
@@ -114,16 +122,16 @@ declare module JSData {
|
||||
clear<T>():Array<T & DSInstanceShorthands<T>>;
|
||||
compute<T>(resourceName:string, idOrInstance:number | string | T):T & DSInstanceShorthands<T>;
|
||||
create<T>(resourceName:string, attrs:Object, options?:DSConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
createCollection<T>(resourceName:string, array?:Array<T>, params?:DSFilterParams, options?:DSConfiguration);
|
||||
createCollection<T>(resourceName:string, array?:Array<T>, params?:DSFilterArg, options?:DSConfiguration):DSCollection<T & DSInstanceShorthands<T>>;
|
||||
createInstance<T>(resourceName:string, attrs?:Object, options?:DSConfiguration):T & DSInstanceShorthands<T>;
|
||||
destroy(resourceName:string, id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<void>;
|
||||
destroyAll(resourceName:string, params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<void>;
|
||||
destroyAll(resourceName:string, params?:DSFilterArg, options?:DSAdapterOperationConfiguration):JSDataPromise<void>;
|
||||
digest():void;
|
||||
eject<T>(resourceName:string, id:string | number, options?:DSConfiguration):T & DSInstanceShorthands<T>;
|
||||
ejectAll<T>(resourceName:string, params:DSFilterParams, options?:DSConfiguration):Array<T & DSInstanceShorthands<T>>;
|
||||
filter<T>(resourceName:string, params:DSFilterParams, options?:DSConfiguration):Array<T & DSInstanceShorthands<T>>;
|
||||
ejectAll<T>(resourceName:string, params:DSFilterArg, options?:DSConfiguration):Array<T & DSInstanceShorthands<T>>;
|
||||
filter<T>(resourceName:string, params:DSFilterArg, options?:DSConfiguration):Array<T & DSInstanceShorthands<T>>;
|
||||
find<T>(resourceName:string, id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
findAll<T>(resourceName:string, params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T & DSInstanceShorthands<T>>>;
|
||||
findAll<T>(resourceName:string, params?:DSFilterArg, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T & DSInstanceShorthands<T>>>;
|
||||
get<T>(resourceName:string, id:string | number):T & DSInstanceShorthands<T>;
|
||||
getAll<T>(resourceName:string, ids?:Array<string | number>):Array<T & DSInstanceShorthands<T>>;
|
||||
hasChanges(resourceName:string, id:string | number):boolean;
|
||||
@@ -136,11 +144,11 @@ declare module JSData {
|
||||
previous<T>(resourceName:string, id:string | number):T & DSInstanceShorthands<T>;
|
||||
reap(resourceName:string):JSDataPromise<void>;
|
||||
refresh<T>(resourceName:string, id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
refreshAll<T>(resourceName:string, params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T & DSInstanceShorthands<T>>>;
|
||||
refreshAll<T>(resourceName:string, params?:DSFilterArg, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T & DSInstanceShorthands<T>>>;
|
||||
revert<T>(resourceName:string, id:string | number):T & DSInstanceShorthands<T>;
|
||||
save<T>(resourceName:string, id:string | number, options?:DSSaveConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
update<T>(resourceName:string, id:string | number, attrs:Object, options?:DSAdapterOperationConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
updateAll<T>(resourceName:string, attrs:Object, params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T & DSInstanceShorthands<T>>>;
|
||||
updateAll<T>(resourceName:string, attrs:Object, params?:DSFilterArg, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T & DSInstanceShorthands<T>>>;
|
||||
|
||||
defineResource<T>(resourceNameOrDefinition:string | DSResourceDefinitionConfiguration):DSResourceDefinition<T>;
|
||||
defineResource<T, TActions>(resourceNameOrDefinition:string | DSResourceDefinitionConfiguration):DSResourceDefinition<T> & TActions;
|
||||
@@ -153,16 +161,16 @@ declare module JSData {
|
||||
clear():Array<T & DSInstanceShorthands<T>>;
|
||||
compute(idOrInstance:number | string | T):T & DSInstanceShorthands<T>;
|
||||
create(attrs:Object, options?:DSConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
createCollection(array?:Array<T>, params?:DSFilterParams, options?:DSConfiguration);
|
||||
createCollection(array?:Array<T>, params?:DSFilterArg, options?:DSConfiguration):DSCollection<T & DSInstanceShorthands<T>>;
|
||||
createInstance(attrs?:Object, options?:DSConfiguration):T & DSInstanceShorthands<T>;
|
||||
destroy(id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<void>;
|
||||
destroyAll(params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<void>;
|
||||
destroyAll(params?:DSFilterArg, options?:DSAdapterOperationConfiguration):JSDataPromise<void>;
|
||||
digest():void;
|
||||
eject(id:string | number, options?:DSConfiguration):T & DSInstanceShorthands<T>;
|
||||
ejectAll(params:DSFilterParams, options?:DSConfiguration):Array<T & DSInstanceShorthands<T>>;
|
||||
filter(params:DSFilterParams, options?:DSConfiguration):Array<T & DSInstanceShorthands<T>>;
|
||||
ejectAll(params:DSFilterArg, options?:DSConfiguration):Array<T & DSInstanceShorthands<T>>;
|
||||
filter(params:DSFilterArg, options?:DSConfiguration):Array<T & DSInstanceShorthands<T>>;
|
||||
find(id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
findAll(params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T & DSInstanceShorthands<T>>>;
|
||||
findAll(params?:DSFilterArg, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T & DSInstanceShorthands<T>>>;
|
||||
get(id:string | number):T & DSInstanceShorthands<T>;
|
||||
getAll(ids?:Array<string | number>):Array<T & DSInstanceShorthands<T>>;
|
||||
hasChanges(id:string | number):boolean;
|
||||
@@ -175,11 +183,11 @@ declare module JSData {
|
||||
previous(id:string | number):T & DSInstanceShorthands<T>;
|
||||
reap():JSDataPromise<void>;
|
||||
refresh(id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
refreshAll(params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T & DSInstanceShorthands<T>>>;
|
||||
refreshAll(params?:DSFilterArg, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T & DSInstanceShorthands<T>>>;
|
||||
revert(id:string | number):T & DSInstanceShorthands<T>;
|
||||
save(id:string | number, options?:DSSaveConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
update(id:string | number, attrs:Object, options?:DSAdapterOperationConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
updateAll(attrs:Object, params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T & DSInstanceShorthands<T>>>;
|
||||
updateAll(attrs:Object, params?:DSFilterArg, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T & DSInstanceShorthands<T>>>;
|
||||
}
|
||||
|
||||
// cannot specify T at interface level because the interface is used as generic constraint itself which ends up being recursive
|
||||
@@ -257,6 +265,11 @@ declare module JSData {
|
||||
afterLoadRelations?: DSAsyncLifecycleHookHandler | DSAsyncLifecycleHookHandlerCb;
|
||||
}
|
||||
|
||||
interface IDSResourceLifecycleCreateCollectionEventHandlers {
|
||||
beforeCreateCollection?: DSSyncLifecycleHookHandler;
|
||||
afterCreateCollection?: DSSyncLifecycleHookHandler;
|
||||
}
|
||||
|
||||
interface IDSResourceLifecycleEventHandlers extends IDSResourceLifecycleCreateEventHandlers,
|
||||
IDSResourceLifecycleCreateInstanceEventHandlers,
|
||||
IDSResourceLifecycleValidateEventHandlers,
|
||||
@@ -267,7 +280,8 @@ declare module JSData {
|
||||
IDSResourceLifecycleReapEventHandlers,
|
||||
IDSResourceLifecycleFindEventHandlers,
|
||||
IDSResourceLifecycleFindAllEventHandlers,
|
||||
IDSResourceLifecycleLoadRelationsEventHandlers {
|
||||
IDSResourceLifecycleLoadRelationsEventHandlers,
|
||||
IDSResourceLifecycleCreateCollectionEventHandlers {
|
||||
}
|
||||
|
||||
// errors
|
||||
@@ -293,13 +307,13 @@ declare module JSData {
|
||||
create(config:DSResourceDefinition<any>, attrs:Object, options?:DSConfiguration):JSDataPromise<any>;
|
||||
|
||||
destroy(config:DSResourceDefinition<any>, id:string | number, options?:DSConfiguration):JSDataPromise<void>;
|
||||
destroyAll(config:DSResourceDefinition<any>, params:DSFilterParams, options?:DSConfiguration):JSDataPromise<void>;
|
||||
destroyAll(config:DSResourceDefinition<any>, params:DSFilterArg, options?:DSConfiguration):JSDataPromise<void>;
|
||||
|
||||
find(config:DSResourceDefinition<any>, id:string | number, options?:DSConfiguration):JSDataPromise<any>;
|
||||
findAll(config:DSResourceDefinition<any>, params?:DSFilterParams, options?:DSConfiguration):JSDataPromise<any>;
|
||||
findAll(config:DSResourceDefinition<any>, params?:DSFilterArg, options?:DSConfiguration):JSDataPromise<any>;
|
||||
|
||||
update(config:DSResourceDefinition<any>, id:string | number, attrs:Object, options?:DSConfiguration):JSDataPromise<any>;
|
||||
updateAll(config:DSResourceDefinition<any>, attrs:Object, params?:DSFilterParams, options?:DSConfiguration):JSDataPromise<any>;
|
||||
updateAll(config:DSResourceDefinition<any>, attrs:Object, params?:DSFilterArg, options?:DSConfiguration):JSDataPromise<any>;
|
||||
}
|
||||
|
||||
// Custom action config
|
||||
|
||||
@@ -387,7 +387,7 @@ var promise = OtherOtherComment.find(5); // GET /comment/5
|
||||
|
||||
promise.then().catch().finally();
|
||||
|
||||
OtherOtherComment.inject({id: 1, postId: 2});
|
||||
OtherOtherComment.inject(<IComment>{id: 1, postId: 2});
|
||||
|
||||
// We don't have to provide the parentKey here
|
||||
// because js-data found it in the comment
|
||||
@@ -523,11 +523,11 @@ myResourceDefinition = store.definitions.myResource;
|
||||
* Custom action on datastore resource
|
||||
*/
|
||||
|
||||
interface ActionResource extends JSData.DSInstanceShorthands<ActionResource> {
|
||||
interface Resource {
|
||||
someProp:string;
|
||||
}
|
||||
|
||||
interface ActionResourceDefinition extends JSData.DSResourceDefinition<ActionResource> {
|
||||
interface ActionsForResource {
|
||||
myAction:JSData.DSActionFn;
|
||||
myOtherAction:JSData.DSActionFn;
|
||||
}
|
||||
@@ -537,7 +537,7 @@ var myOtherAction:JSData.DSActionConfig = {
|
||||
endpoint: 'goHere'
|
||||
};
|
||||
|
||||
var customActionResource = store.defineResource<ActionResourceDefinition>({
|
||||
var resourceWithCustomActions = store.defineResource<Resource, ActionsForResource>({
|
||||
name: 'actionResource',
|
||||
actions: {
|
||||
myAction: {
|
||||
@@ -547,16 +547,16 @@ var customActionResource = store.defineResource<ActionResourceDefinition>({
|
||||
}
|
||||
});
|
||||
|
||||
customActionResource.myAction<number>(3).then((result)=>{
|
||||
resourceWithCustomActions.myAction<number>(3).then((result)=>{
|
||||
|
||||
var theCustomResult:number = result;
|
||||
});
|
||||
|
||||
customActionResource.myOtherAction<void>(2, {data:'blub'}).then(()=>{
|
||||
resourceWithCustomActions.myOtherAction<void>(2, {data:'blub'}).then(()=>{
|
||||
// success
|
||||
});
|
||||
|
||||
customActionResource.find(1).then((result)=>{
|
||||
resourceWithCustomActions.find(1).then((result)=>{
|
||||
|
||||
var aProperty = result.someProp;
|
||||
});
|
||||
@@ -565,7 +565,7 @@ customActionResource.find(1).then((result)=>{
|
||||
* Instance shorthands
|
||||
*/
|
||||
|
||||
var customActionResourceInstance = customActionResource.get(1);
|
||||
var customActionResourceInstance = resourceWithCustomActions.get(1);
|
||||
|
||||
customActionResourceInstance.DSCompute();
|
||||
customActionResourceInstance.DSChanges();
|
||||
|
||||
Vendored
+65
-83
@@ -11,16 +11,12 @@
|
||||
declare module JSData {
|
||||
|
||||
interface JSDataPromise<R> {
|
||||
|
||||
then<U>(onFulfilled?: (value: R) => U | JSDataPromise<U>, onRejected?: (error: any) => U | JSDataPromise<U>): JSDataPromise<U>;
|
||||
|
||||
catch<U>(onRejected?: (error: any) => U | JSDataPromise<U>): JSDataPromise<U>;
|
||||
|
||||
// enhanced with finally
|
||||
finally<U>(finallyCb?:() => U):JSDataPromise<U>;
|
||||
}
|
||||
|
||||
//TODO switch to class again when typescript supports open ended class declaration
|
||||
interface DS {
|
||||
|
||||
new(config?:DSConfiguration):DS;
|
||||
@@ -35,43 +31,44 @@ declare module JSData {
|
||||
defaults:DSConfiguration;
|
||||
|
||||
// async
|
||||
create<T>(resourceName:string, attrs:Object, options?:DSConfiguration):JSDataPromise<T>;
|
||||
create<T>(resourceName:string, attrs:Object, options?:DSConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
destroy(resourceName:string, id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<any>;
|
||||
destroyAll(resourceName:string, params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<any>;
|
||||
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>>;
|
||||
destroyAll(resourceName:string, params?:DSFilterArg, options?:DSAdapterOperationConfiguration):JSDataPromise<any>;
|
||||
find<T>(resourceName:string, id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
findAll<T>(resourceName:string, params?:DSFilterArg, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T & DSInstanceShorthands<T>>>;
|
||||
loadRelations<T>(resourceName:string, idOrInstance:string | number | Object, relations:string | Array<string>, options?:DSAdapterOperationConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
update<T>(resourceName:string, id:string | number, attrs:Object, options?:DSSaveConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
updateAll<T>(resourceName:string, attrs:Object, params?:DSFilterArg, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T & DSInstanceShorthands<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>;
|
||||
refresh<T>(resourceName:string, id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
save<T>(resourceName:string, id:string | number, options?:DSSaveConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
|
||||
// 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>;
|
||||
compute(resourceName:string, idOrInstance:number | string | Object ):void;
|
||||
createInstance<T>(resourceName:string, attrs?:T, options?:DSAdapterOperationConfiguration):T & DSInstanceShorthands<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>;
|
||||
eject<T>(resourceName:string, id:string | number, options?:DSConfiguration):T & DSInstanceShorthands<T>;
|
||||
ejectAll<T>(resourceName:string, params:DSFilterArg, options?:DSConfiguration):Array<T & DSInstanceShorthands<T>>;
|
||||
filter<T>(resourceName:string, params:DSFilterArg, options?:DSConfiguration):Array<T & DSInstanceShorthands<T>>;
|
||||
get<T>(resourceName:string, id:string | number, options?:DSConfiguration):T & DSInstanceShorthands<T>;
|
||||
getAll<T>(resourceName:string, ids?:Array<string | number>):Array<T & DSInstanceShorthands<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>;
|
||||
inject<T>(resourceName:string, item:T, options?:DSConfiguration):T & DSInstanceShorthands<T>;
|
||||
inject<T>(resourceName:string, items:Array<T>, options?:DSConfiguration):Array<T & DSInstanceShorthands<T>>;
|
||||
is(resourceName:string, object:Object): boolean;
|
||||
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 | number, relations?:Array<string>):T;
|
||||
previous<T>(resourceName:string, id:string | number):T;
|
||||
revert<T>(resourceName:string, id:string | number):T;
|
||||
unlinkInverse<T>(resourceName:string, id:string | number, relations?:Array<string>):T;
|
||||
link<T>(resourceName:string, id:string | number, relations?:Array<string>):T & DSInstanceShorthands<T>;
|
||||
linkAll<T>(resourceName:string, params:DSFilterArg, relations?:Array<string>):T & DSInstanceShorthands<T>;
|
||||
linkInverse<T>(resourceName:string, id:string | number, relations?:Array<string>):T & DSInstanceShorthands<T>;
|
||||
previous<T>(resourceName:string, id:string | number):T & DSInstanceShorthands<T>;
|
||||
revert<T>(resourceName:string, id:string | number):T & DSInstanceShorthands<T>;
|
||||
unlinkInverse<T>(resourceName:string, id:string | number, relations?:Array<string>):T & DSInstanceShorthands<T>;
|
||||
|
||||
defineResource<T>(resourceNameOrDefinition:string | DSResourceDefinitionConfiguration):DSResourceDefinition<T>;
|
||||
defineResource<T, TActions>(resourceNameOrDefinition:string | DSResourceDefinitionConfiguration):DSResourceDefinition<T> & TActions;
|
||||
registerAdapter(adapterId:string, adapter:IDSAdapter, options?:{default: boolean}):void;
|
||||
}
|
||||
|
||||
@@ -82,10 +79,8 @@ declare module JSData {
|
||||
bypassCache?: boolean;
|
||||
cacheResponse?: boolean;
|
||||
defaultAdapter?: string;
|
||||
defaultFilter?: (collection:Array<any>, resourceName:string, params:DSFilterParams, options:DSConfiguration)=>Array<any>;
|
||||
defaultFilter?: (collection:Array<any>, resourceName:string, params:DSFilterArg, options:DSConfiguration)=>Array<any>;
|
||||
eagerEject?: boolean;
|
||||
// TODO enable when eagerInject in DS#create is implemented
|
||||
//eagerInject?: boolean;
|
||||
endpoint?: string;
|
||||
error?: boolean | ((message?:any, ...optionalParams:any[])=> void);
|
||||
fallbackAdapters?: Array<string>;
|
||||
@@ -99,8 +94,6 @@ declare module JSData {
|
||||
findStrategy?: string
|
||||
idAttribute?: string;
|
||||
ignoredChanges?: Array<RegExp | string>;
|
||||
// TODO ignoreMissing is undocumented
|
||||
//ignoreMissing: boolean;
|
||||
keepChangeHistory?: boolean;
|
||||
loadFromServer?: boolean;
|
||||
log?: boolean | ((message?: any, ...optionalParams: any[])=> void);
|
||||
@@ -117,14 +110,7 @@ declare module JSData {
|
||||
|
||||
interface DSAdapterOperationConfiguration extends DSConfiguration {
|
||||
adapter?: string;
|
||||
bypassCache?: boolean;
|
||||
cacheResponse?: boolean;
|
||||
findStrategy?: string;
|
||||
findFallbackAdapters?: string[];
|
||||
strategy?: string;
|
||||
fallbackAdapters?: string[];
|
||||
|
||||
params: {
|
||||
params?: {
|
||||
[paramName: string]: string | number | boolean;
|
||||
};
|
||||
}
|
||||
@@ -147,61 +133,59 @@ declare module JSData {
|
||||
interface DSResourceDefinition<T> extends DSResourceDefinitionConfiguration {
|
||||
|
||||
//async
|
||||
create<TInject>(attrs:TInject, options?:DSConfiguration):JSDataPromise<T>;
|
||||
create<TInject>(attrs:TInject, options?:DSConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
destroy(id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<void>;
|
||||
destroyAll(params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<void>;
|
||||
find(id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
|
||||
findAll(params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T>>;
|
||||
loadRelations(idOrInstance:string | number | Object, relations:string | Array<string>, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
|
||||
update(id:string | number, attrs:Object, options?:DSSaveConfiguration):JSDataPromise<T>;
|
||||
updateAll(attrs:Object, params?:DSFilterParams, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T>>;
|
||||
reap(options?:DSConfiguration):JSDataPromise<any>;
|
||||
refresh(id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
|
||||
save(id:string | number, options?:DSSaveConfiguration):JSDataPromise<T>;
|
||||
destroyAll(params?:DSFilterArg, options?:DSAdapterOperationConfiguration):JSDataPromise<void>;
|
||||
find(id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
findAll(params?:DSFilterArg, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T & DSInstanceShorthands<T>>>;
|
||||
loadRelations(idOrInstance:string | number | Object, relations:string | Array<string>, options?:DSAdapterOperationConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
update(id:string | number, attrs:Object, options?:DSSaveConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
updateAll(attrs:Object, params?:DSFilterArg, options?:DSAdapterOperationConfiguration):JSDataPromise<Array<T & DSInstanceShorthands<T>>>;
|
||||
reap(options?:DSConfiguration):JSDataPromise<void>;
|
||||
refresh(id:string | number, options?:DSAdapterOperationConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
save(id:string | number, options?:DSSaveConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
|
||||
// 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;
|
||||
compute(idOrInstance:number | string | Object ):void;
|
||||
createInstance<TInject>(attrs?:TInject, options?:DSAdapterOperationConfiguration):T & DSInstanceShorthands<T>;
|
||||
digest():void;
|
||||
eject(id:string | number, options?:DSConfiguration):T;
|
||||
ejectAll(params:DSFilterParams, options?:DSConfiguration):Array<T>;
|
||||
filter(params:DSFilterParams, options?:DSConfiguration):Array<T>;
|
||||
get(id:string | number, options?:DSConfiguration):T;
|
||||
getAll(ids?:Array<string | number>):Array<T>;
|
||||
eject(id:string | number, options?:DSConfiguration):T & DSInstanceShorthands<T>;
|
||||
ejectAll(params:DSFilterArg, options?:DSConfiguration):Array<T & DSInstanceShorthands<T>>;
|
||||
filter(params:DSFilterArg, options?:DSConfiguration):Array<T & DSInstanceShorthands<T>>;
|
||||
get(id:string | number, options?:DSConfiguration):T & DSInstanceShorthands<T>;
|
||||
getAll(ids?:Array<string | number>):Array<T & DSInstanceShorthands<T>>;
|
||||
hasChanges(id:string | number):boolean;
|
||||
inject<T>(attrs:T, options?:DSConfiguration):T;
|
||||
inject<T>(items:Array<T>, options?:DSConfiguration):Array<T>;
|
||||
inject(item:T, options?:DSConfiguration):T & DSInstanceShorthands<T>;
|
||||
inject(items:Array<T>, options?:DSConfiguration):Array<T & DSInstanceShorthands<T>>;
|
||||
is(object:Object): boolean;
|
||||
lastModified(id?:string | number):number; // timestamp
|
||||
lastSaved(id?:string | number):number; // timestamp
|
||||
link(id:string | number, relations?:Array<string>):T;
|
||||
linkAll(params:DSFilterParams, relations?:Array<string>):T;
|
||||
linkInverse(id:string | number, relations?:Array<string>):T;
|
||||
previous(id:string | number):T;
|
||||
unlinkInverse(id:string | number, relations?:Array<string>):T;
|
||||
link(id:string | number, relations?:Array<string>):T & DSInstanceShorthands<T>;
|
||||
linkAll(params:DSFilterArg, relations?:Array<string>):T & DSInstanceShorthands<T>;
|
||||
linkInverse(id:string | number, relations?:Array<string>):T & DSInstanceShorthands<T>;
|
||||
previous(id:string | number):T & DSInstanceShorthands<T>;
|
||||
unlinkInverse(id:string | number, relations?:Array<string>):T & DSInstanceShorthands<T>;
|
||||
}
|
||||
|
||||
//TODO how can we add this methods to generic return types?
|
||||
//TODO custom actions can be added here by extending this interface
|
||||
export interface DSInstanceShorthands<T> {
|
||||
DSCompute():void;
|
||||
DSRefresh(options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
|
||||
DSSave(options?:DSSaveConfiguration):JSDataPromise<T>;
|
||||
DSUpdate(options?:DSSaveConfiguration):JSDataPromise<T>;
|
||||
DSRefresh(options?:DSAdapterOperationConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
DSSave(options?:DSSaveConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
DSUpdate(options?:DSAdapterOperationConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
DSDestroy(options?:DSAdapterOperationConfiguration):JSDataPromise<void>;
|
||||
DSCreate(options?:DSConfiguration):JSDataPromise<T>;
|
||||
DSLoadRelations(relations:string | Array<string>, options?:DSAdapterOperationConfiguration):JSDataPromise<T>;
|
||||
DSCreate(options?:DSConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
DSLoadRelations(relations:string | Array<string>, options?:DSAdapterOperationConfiguration):JSDataPromise<T & DSInstanceShorthands<T>>;
|
||||
DSChangeHistory():Array<Object>;
|
||||
DSChanges():Object;
|
||||
DSHasChanges():boolean;
|
||||
DSLastModified():number; // timestamp
|
||||
DSLastSaved():number; // timestamp
|
||||
DSLink(relations?:Array<string>):T;
|
||||
DSLinkInverse(relations?:Array<string>):T;
|
||||
DSPrevious():T;
|
||||
DSUnlinkInverse(relations?:Array<string>):T;
|
||||
DSLink(relations?:Array<string>):T & DSInstanceShorthands<T>;
|
||||
DSLinkInverse(relations?:Array<string>):T & DSInstanceShorthands<T>;
|
||||
DSPrevious():T & DSInstanceShorthands<T>;
|
||||
DSUnlinkInverse(relations?:Array<string>):T & DSInstanceShorthands<T>;
|
||||
}
|
||||
|
||||
interface DSFilterParams {
|
||||
@@ -216,9 +200,7 @@ declare module JSData {
|
||||
sort?: string | Array<string> | Array<Array<string>>;
|
||||
}
|
||||
|
||||
interface DSFilterParamsForAllowSimpleWhere {
|
||||
[key: string]: string | number;
|
||||
}
|
||||
type DSFilterArg = DSFilterParams | Object;
|
||||
|
||||
interface IDSResourceLifecycleValidateEventHandlers {
|
||||
beforeValidate?: (resourceName:string, data:any, cb:(err:any, data?:any)=>void)=>void;
|
||||
@@ -296,14 +278,14 @@ declare module JSData {
|
||||
|
||||
destroy<T>(config:DSResourceDefinition<T>, id:string | number, options?:DSConfiguration):JSDataPromise<any>;
|
||||
|
||||
destroyAll<T>(config:DSResourceDefinition<T>, params:DSFilterParams, options?:DSConfiguration):JSDataPromise<any>;
|
||||
destroyAll<T>(config:DSResourceDefinition<T>, params:DSFilterArg, options?:DSConfiguration):JSDataPromise<any>;
|
||||
|
||||
find<T>(config:DSResourceDefinition<T>, id:string | number, options?:DSConfiguration):JSDataPromise<T>;
|
||||
|
||||
findAll<T>(config:DSResourceDefinition<T>, params?:DSFilterParams, options?:DSConfiguration):JSDataPromise<T>;
|
||||
findAll<T>(config:DSResourceDefinition<T>, params?:DSFilterArg, options?:DSConfiguration):JSDataPromise<T>;
|
||||
|
||||
update<T>(config:DSResourceDefinition<T>, id:string | number, attrs:Object, options?:DSConfiguration):JSDataPromise<T>;
|
||||
updateAll<T>(config:DSResourceDefinition<T>, attrs:Object, params?:DSFilterParams, options?:DSConfiguration):JSDataPromise<T>;
|
||||
updateAll<T>(config:DSResourceDefinition<T>, attrs:Object, params?:DSFilterArg, options?:DSConfiguration):JSDataPromise<T>;
|
||||
}
|
||||
|
||||
// Custom action config
|
||||
|
||||
Reference in New Issue
Block a user