@@ -24,6 +24,9 @@ import { BulkInsertOperation } from "./BulkInsertOperation";
2424import { IDatabaseChanges } from "./Changes/IDatabaseChanges" ;
2525import { DocumentSubscriptions } from "./Subscriptions/DocumentSubscriptions" ;
2626import { DocumentStore } from "./DocumentStore" ;
27+ import { AbstractCallback } from "../Types/Callbacks" ;
28+ import { TypeUtil } from "../Utility/TypeUtil" ;
29+ import { passResultToCallback } from "../Utility/PromiseUtil" ;
2730
2831export abstract class DocumentStoreBase
2932 extends EventEmitter
@@ -63,35 +66,49 @@ export abstract class DocumentStoreBase
6366 public abstract openSession ( sessionOptions : SessionOptions ) : IDocumentSession ;
6467
6568 public executeIndex ( task : AbstractIndexCreationTask ) : Promise < void > ;
66- public executeIndex ( task : AbstractIndexCreationTask , database ?: string ) : Promise < void > ;
67- public executeIndex ( task : AbstractIndexCreationTask , database ?: string ) : Promise < void > {
69+ public executeIndex ( task : AbstractIndexCreationTask , database : string ) : Promise < void > ;
70+ public executeIndex ( task : AbstractIndexCreationTask , callback : AbstractCallback < void > ) : Promise < void > ;
71+ public executeIndex (
72+ task : AbstractIndexCreationTask ,
73+ database : string ,
74+ callback : AbstractCallback < void > ) : Promise < void > ;
75+ public executeIndex (
76+ task : AbstractIndexCreationTask ,
77+ databaseOrCallback ?: string | AbstractCallback < void > ,
78+ callback ?: AbstractCallback < void > ) : Promise < void > {
6879 this . assertInitialized ( ) ;
69- return task . execute ( this , this . conventions , database ) ;
80+ const database = TypeUtil . isFunction ( databaseOrCallback )
81+ ? null
82+ : databaseOrCallback as string ;
83+ const resultPromise = task . execute ( this , this . conventions , database ) ;
84+ passResultToCallback ( resultPromise , callback || TypeUtil . NOOP ) ;
85+ return resultPromise ;
7086 }
7187
72- // TODO: public void executeIndex(AbstractIndexCreationTask task) {
73- // executeIndex(task, null);
74- // }
75-
76- // TODO: public void executeIndex(AbstractIndexCreationTask task, String database) {
77- // assertInitialized();
78- // task.execute(this, conventions, database);
79- // }
80-
81- // TODO: @Override
82- // public void executeIndexes(List<AbstractIndexCreationTask> tasks) {
83- // executeIndexes(tasks, null);
84- // }
85-
86- // TODO: @Override
87- // public void executeIndexes(List<AbstractIndexCreationTask> tasks, String database) {
88- // assertInitialized();
89- // IndexDefinition[] indexesToAdd = IndexCreation.createIndexesToAdd(tasks, conventions);
90-
91- // TODO: maintenance()
92- // .forDatabase(ObjectUtils.firstNonNull(database, getDatabase()))
93- // .send(new PutIndexesOperation(indexesToAdd));
94- // }
88+ public async executeIndexes ( tasks : AbstractIndexCreationTask [ ] ) : Promise < void > ;
89+ public async executeIndexes (
90+ tasks : AbstractIndexCreationTask [ ] , callback : AbstractCallback < void > ) : Promise < void > ;
91+ public async executeIndexes ( tasks : AbstractIndexCreationTask [ ] , database : string ) : Promise < void > ;
92+ public async executeIndexes (
93+ tasks : AbstractIndexCreationTask [ ] , database : string , callback : AbstractCallback < void > ) : Promise < void > ;
94+ public async executeIndexes (
95+ tasks : AbstractIndexCreationTask [ ] ,
96+ databaseOrCallback ?: string | AbstractCallback < void > ,
97+ callback ?: AbstractCallback < void > ) : Promise < void > {
98+ this . assertInitialized ( ) ;
99+ const indexesToAdd = IndexCreation . createIndexesToAdd ( tasks , this . conventions ) ;
100+ const database = TypeUtil . isFunction ( databaseOrCallback )
101+ ? null
102+ : databaseOrCallback as string ;
103+
104+ const resultPromise = this . maintenance
105+ . forDatabase ( database || this . database )
106+ . send ( new PutIndexesOperation ( ...indexesToAdd ) )
107+ . then ( ( ) => { } ) ;
108+
109+ passResultToCallback ( resultPromise , callback || TypeUtil . NOOP ) ;
110+ return resultPromise ;
111+ }
95112
96113 private _conventions : DocumentConventions ;
97114
@@ -234,25 +251,6 @@ export abstract class DocumentStoreBase
234251
235252 public abstract operations : OperationExecutor ;
236253
237- public executeIndexes ( tasks : AbstractIndexCreationTask [ ] ) : Promise < void > ;
238- public executeIndexes ( tasks : AbstractIndexCreationTask [ ] , database : string ) : Promise < void > ;
239- public executeIndexes ( tasks : AbstractIndexCreationTask [ ] , database ?: string ) : Promise < void > {
240-
241- this . assertInitialized ( ) ;
242-
243- return Promise . resolve ( )
244- . then ( ( ) => {
245- const indexesToAdd = IndexCreation . createIndexesToAdd ( tasks , this . conventions ) ;
246-
247- return this . maintenance
248- . forDatabase ( database || this . database )
249- . send ( new PutIndexesOperation ( ...indexesToAdd ) ) ;
250- } )
251- // tslint:disable-next-line:no-empty
252- . then ( ( ) => {
253- } ) ;
254- }
255-
256254 protected _assertValidConfiguration ( ) : void {
257255 this . conventions . validate ( ) ;
258256 }
0 commit comments