diff --git a/README.md b/README.md index 4c0b59a..4c8746b 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Install using `npm install node-eventstore-client` ### Dependencies - Node.js >= 4.0 -- Modules: [long](https://www.npmjs.org/package/long), [protobufjs](https://www.npmjs.org/package/protobufjs), [uuid](https://www.npmjs.org/package/uuid) (installed via `npm install`) +- Modules: [long](https://www.npmjs.org/package/long), [protobufjs](https://www.npmjs.org/package/protobufjs), [uuid](https://www.npmjs.org/package/uuid), [strict-event-emitter-types](https://www.npmjs.com/package/strict-event-emitter-types) (installed via `npm install`) ### Install and run an Eventstore on localhost diff --git a/index.d.ts b/index.d.ts index bed7feb..a1808f5 100644 --- a/index.d.ts +++ b/index.d.ts @@ -88,7 +88,7 @@ export class ProjectionsManager { getQuery(name: string, userCredentials: UserCredentials): Promise; getState(name: string, userCredentials: UserCredentials): Promise; updateQuery(name: string, query: string, userCredentials: UserCredentials): Promise; - deleteQuery(name: string, deleteEmittedStreams: boolean, userCredentials: UserCredentials): Promise; + delete(name: string, deleteEmittedStreams: boolean, deleteStateStream: boolean, deleteCheckpointStream: boolean, userCredentials: UserCredentials): Promise; } // Expose errors diff --git a/src/projections/projectionsClient.js b/src/projections/projectionsClient.js index 6b569ee..ec86743 100644 --- a/src/projections/projectionsClient.js +++ b/src/projections/projectionsClient.js @@ -106,8 +106,8 @@ ProjectionsClient.prototype.updateQuery = function(httpEndPoint, name, query, us return this.sendPut(httpEndPoint + '/projection/' + name + '/query?type=JS', query, userCredentials, HTTP_OK); }; -ProjectionsClient.prototype.delete = function(httpEndPoint, name, deleteEmittedStreams, userCredentials) { - return this.sendDelete(httpEndPoint + '/projection/' + name + '?deleteEmittedStreams=' + deleteEmittedStreams, userCredentials, HTTP_OK); +ProjectionsClient.prototype.delete = function(httpEndPoint, name, deleteEmittedStreams, deleteStateStream, deleteCheckpointStream, userCredentials) { + return this.sendDelete(httpEndPoint + '/projection/' + name + '?deleteStateStream=' + deleteStateStream + '&deleteCheckpointStream=' + deleteCheckpointStream + '&deleteEmittedStreams=' + deleteEmittedStreams, '', userCredentials, HTTP_OK); }; ProjectionsClient.prototype.request = function(method, _url, data, userCredentials, expectedCode) { diff --git a/src/projections/projectionsManager.js b/src/projections/projectionsManager.js index 6f33ad6..da04ef2 100644 --- a/src/projections/projectionsManager.js +++ b/src/projections/projectionsManager.js @@ -200,13 +200,15 @@ ProjectionsManager.prototype.updateQuery = function(name, query, userCredentials /** * Updates the definition of a query. - * @param name The name of the projection. - * @param deleteEmittedStreams Whether to delete the streams that were emitted by this projection. - * @param userCredentials Credentials for a user with permission to delete a projection. + * @param name The name of the projection. + * @param deleteEmittedStreams Whether to delete the streams that were emitted by this projection. + * @param deleteStateStream Where to delete the state stream for this projection + * @param deleteCheckpointStream Where to delete the checkpoint stream for this projection + * @param userCredentials Credentials for a user with permission to delete a projection. * @returns {Promise} */ -ProjectionsManager.prototype.delete = function(name, deleteEmittedStreams, userCredentials) { - return this._client.delete(this._httpEndPoint, name, deleteEmittedStreams, userCredentials); +ProjectionsManager.prototype.delete = function(name, deleteEmittedStreams, deleteStateStream, deleteCheckpointStream, userCredentials) { + return this._client.delete(this._httpEndPoint, name, deleteEmittedStreams, deleteStateStream, deleteCheckpointStream, userCredentials); }; module.exports = ProjectionsManager; \ No newline at end of file