Skip to content

Commit 4abe7a4

Browse files
committed
add callback api to counters and cluster transactions; rename AbstractCallback -> ErrorFirstCallback
1 parent 97aebc9 commit 4abe7a4

24 files changed

+310
-170
lines changed

src/Documents/BulkInsertOperation.ts

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { EntityToJson } from "./Session/EntityToJson";
1818
import { KillOperationCommand } from "./Commands/KillOperationCommand";
1919
import { DocumentConventions } from "./Conventions/DocumentConventions";
2020
import { ServerNode } from "../Http/ServerNode";
21-
import { AbstractCallback } from "../Types/Callbacks";
21+
import { ErrorFirstCallback } from "../Types/Callbacks";
2222
import { passResultToCallback } from "../Utility/PromiseUtil";
2323
import { BatchOperation } from "./Session/Operations/BatchOperation";
2424
import { MetadataObject } from "./Session/MetadataObject";
@@ -81,9 +81,9 @@ export class BulkInsertOperation {
8181
}
8282

8383
private static _typeCheckStoreArgs(
84-
idOrMetadataOrCallback?: string | IMetadataDictionary | AbstractCallback<void>,
85-
metadataOrCallback?: IMetadataDictionary | AbstractCallback<void>,
86-
callback?: AbstractCallback<void>):
84+
idOrMetadataOrCallback?: string | IMetadataDictionary | ErrorFirstCallback<void>,
85+
metadataOrCallback?: IMetadataDictionary | ErrorFirstCallback<void>,
86+
callback?: ErrorFirstCallback<void>):
8787
{ id: string, getId: boolean, metadata: IMetadataDictionary, cb: () => void } {
8888

8989
let id: string;
@@ -101,7 +101,7 @@ export class BulkInsertOperation {
101101
}
102102
} else {
103103
metadata = idOrMetadataOrCallback;
104-
callback = metadataOrCallback as AbstractCallback<void>;
104+
callback = metadataOrCallback as ErrorFirstCallback<void>;
105105
if (metadata && (CONSTANTS.Documents.Metadata.ID in metadata)) {
106106
id = metadata[CONSTANTS.Documents.Metadata.ID];
107107
}
@@ -115,18 +115,18 @@ export class BulkInsertOperation {
115115
}
116116

117117
public async store(entity: object);
118-
public async store(entity: object, callback: AbstractCallback<void>);
118+
public async store(entity: object, callback: ErrorFirstCallback<void>);
119119
public async store(entity: object, id: string);
120120
public async store(entity: object, metadata: IMetadataDictionary);
121121
public async store(entity: object, id: string, metadata: IMetadataDictionary);
122-
public async store(entity: object, id: string, callback: AbstractCallback<void>);
123-
public async store(entity: object, metadata: IMetadataDictionary, callback: AbstractCallback<void>);
124-
public async store(entity: object, id: string, metadata: IMetadataDictionary, callback: AbstractCallback<void>);
122+
public async store(entity: object, id: string, callback: ErrorFirstCallback<void>);
123+
public async store(entity: object, metadata: IMetadataDictionary, callback: ErrorFirstCallback<void>);
124+
public async store(entity: object, id: string, metadata: IMetadataDictionary, callback: ErrorFirstCallback<void>);
125125
public async store(
126126
entity: object,
127-
idOrMetadataOrCallback?: string | IMetadataDictionary | AbstractCallback<void>,
128-
metadataOrCallback?: IMetadataDictionary | AbstractCallback<void>,
129-
callback?: AbstractCallback<void>) {
127+
idOrMetadataOrCallback?: string | IMetadataDictionary | ErrorFirstCallback<void>,
128+
metadataOrCallback?: IMetadataDictionary | ErrorFirstCallback<void>,
129+
callback?: ErrorFirstCallback<void>) {
130130
let opts: { id: string, getId: boolean, metadata: IMetadataDictionary, cb: () => void };
131131
try {
132132
// tslint:disable-next-line:prefer-const
@@ -285,8 +285,8 @@ export class BulkInsertOperation {
285285
}
286286

287287
public async abort(): Promise<void>;
288-
public async abort(callback: AbstractCallback<void>): Promise<void>;
289-
public async abort(callback?: AbstractCallback<void>): Promise<void> {
288+
public async abort(callback: ErrorFirstCallback<void>): Promise<void>;
289+
public async abort(callback?: ErrorFirstCallback<void>): Promise<void> {
290290
const abortPromise = this._abortAsync();
291291
passResultToCallback(abortPromise, callback);
292292
return await abortPromise;
@@ -313,8 +313,8 @@ export class BulkInsertOperation {
313313
}
314314

315315
public async finish(): Promise<void>;
316-
public async finish(callback: AbstractCallback<void>): Promise<void>;
317-
public async finish(callback?: AbstractCallback<void>): Promise<void> {
316+
public async finish(callback: ErrorFirstCallback<void>): Promise<void>;
317+
public async finish(callback?: ErrorFirstCallback<void>): Promise<void> {
318318
const finishPromise = this._finishAsync();
319319
passResultToCallback(finishPromise, callback);
320320
return finishPromise;

src/Documents/Session/AbstractDocumentQuery.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ import { DynamicSpatialField } from "../Queries/Spatial/DynamicSpatialField";
5555
import { SpatialCriteria } from "../Queries/Spatial/SpatialCriteria";
5656
import { SessionBeforeQueryEventArgs } from "./SessionEvents";
5757
import { CmpXchg } from "./CmpXchg";
58-
import { AbstractCallback, ValueCallback } from "../../Types/Callbacks";
58+
import { ErrorFirstCallback, ValueCallback } from "../../Types/Callbacks";
5959
import { DocumentQueryCustomization } from "./DocumentQueryCustomization";
6060
import { FacetBase } from "../Queries/Facets/FacetBase";
6161
import { MoreLikeThisScope } from "../Queries/MoreLikeThis/MoreLikeThisScope";
@@ -1879,7 +1879,7 @@ export abstract class AbstractDocumentQuery<T extends object, TSelf extends Abst
18791879
});
18801880
}
18811881

1882-
public async all(callback?: AbstractCallback<T[]>): Promise<T[]> {
1882+
public async all(callback?: ErrorFirstCallback<T[]>): Promise<T[]> {
18831883
callback = callback || TypeUtil.NOOP;
18841884
const result = BluebirdPromise.resolve(this.iterator())
18851885
.then((entries) => [...entries])
@@ -1894,7 +1894,7 @@ export abstract class AbstractDocumentQuery<T extends object, TSelf extends Abst
18941894
.then(() => this._queryOperation.getCurrentQueryResults().createSnapshot());
18951895
}
18961896

1897-
public async first(callback?: AbstractCallback<T>): Promise<T> {
1897+
public async first(callback?: ErrorFirstCallback<T>): Promise<T> {
18981898
callback = callback || TypeUtil.NOOP;
18991899
const resultPromise = this._executeQueryOperation(2)
19001900
.then(entries => {
@@ -1909,7 +1909,7 @@ export abstract class AbstractDocumentQuery<T extends object, TSelf extends Abst
19091909
return resultPromise;
19101910
}
19111911

1912-
public async firstOrNull(callback?: AbstractCallback<T>): Promise<T> {
1912+
public async firstOrNull(callback?: ErrorFirstCallback<T>): Promise<T> {
19131913
callback = callback || TypeUtil.NOOP;
19141914
const resultPromise = this._executeQueryOperation(1)
19151915
.then(entries => entries[0] || null);
@@ -1918,7 +1918,7 @@ export abstract class AbstractDocumentQuery<T extends object, TSelf extends Abst
19181918
return resultPromise;
19191919
}
19201920

1921-
public async single(callback?: AbstractCallback<T>): Promise<T> {
1921+
public async single(callback?: ErrorFirstCallback<T>): Promise<T> {
19221922
callback = callback || TypeUtil.NOOP;
19231923
const resultPromise = this._executeQueryOperation(2)
19241924
.then(entries => {
@@ -1934,7 +1934,7 @@ export abstract class AbstractDocumentQuery<T extends object, TSelf extends Abst
19341934
return resultPromise;
19351935
}
19361936

1937-
public async singleOrNull(callback?: AbstractCallback<T>): Promise<T> {
1937+
public async singleOrNull(callback?: ErrorFirstCallback<T>): Promise<T> {
19381938
callback = callback || TypeUtil.NOOP;
19391939
const resultPromise = this._executeQueryOperation(2)
19401940
.then(entries => entries.length === 1 ? entries[0] : null);
@@ -1943,7 +1943,7 @@ export abstract class AbstractDocumentQuery<T extends object, TSelf extends Abst
19431943
return resultPromise;
19441944
}
19451945

1946-
public async count(callback?: AbstractCallback<number>): Promise<number> {
1946+
public async count(callback?: ErrorFirstCallback<number>): Promise<number> {
19471947
callback = callback || TypeUtil.NOOP;
19481948
this._take(0);
19491949
const result = BluebirdPromise.resolve(this.getQueryResult())

src/Documents/Session/ClusterTransactionOperations.ts

Lines changed: 56 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ import { CompareExchangeValue } from "../Operations/CompareExchange/CompareExcha
33
import { ClassConstructor } from "../../Types";
44
import { ClusterTransactionOperationsBase } from "./ClusterTransactionOperationsBase";
55
import { IClusterTransactionOperations } from "./IClusterTransactionOperations";
6+
import { ErrorFirstCallback } from "../../Types/Callbacks";
7+
import { TypeUtil } from "../../Utility/TypeUtil";
8+
import { passResultToCallback } from "../../Utility/PromiseUtil";
69

710
export class ClusterTransactionOperations
811
extends ClusterTransactionOperationsBase
@@ -12,12 +15,60 @@ export class ClusterTransactionOperations
1215
super(session);
1316
}
1417

15-
public async getCompareExchangeValue<T>(key: string, type?: ClassConstructor<T>): Promise<CompareExchangeValue<T>> {
16-
return this._getCompareExchangeValueInternal(key, type);
18+
public getCompareExchangeValue<T>(key: string): Promise<CompareExchangeValue<T>>;
19+
public getCompareExchangeValue<T>(key: string, type: ClassConstructor<T>): Promise<CompareExchangeValue<T>>;
20+
public getCompareExchangeValue<T>(
21+
key: string,
22+
callback: ErrorFirstCallback<CompareExchangeValue<T>>): Promise<CompareExchangeValue<T>>;
23+
public getCompareExchangeValue<T>(
24+
key: string,
25+
type: ClassConstructor<T>,
26+
callback: ErrorFirstCallback<CompareExchangeValue<T>>): Promise<CompareExchangeValue<T>>;
27+
public async getCompareExchangeValue<T>(
28+
key: string,
29+
typeOrCallback?: ClassConstructor<T> | ErrorFirstCallback<CompareExchangeValue<T>>,
30+
callback?: ErrorFirstCallback<CompareExchangeValue<T>>): Promise<CompareExchangeValue<T>> {
31+
32+
callback = callback || TypeUtil.NOOP;
33+
let resultPromise: Promise<CompareExchangeValue<T>>;
34+
if (TypeUtil.isClass(typeOrCallback)) {
35+
resultPromise = this._getCompareExchangeValueInternal(key, typeOrCallback as ClassConstructor<T>);
36+
} else {
37+
resultPromise = this._getCompareExchangeValueInternal(key);
38+
}
39+
40+
passResultToCallback(resultPromise, callback);
41+
return resultPromise;
1742
}
1843

19-
public async getCompareExchangeValues<T>(
20-
keys: string[], type?: ClassConstructor<T>): Promise<{ [key: string]: CompareExchangeValue<T> }> {
21-
return this._getCompareExchangeValuesInternal(keys, type);
44+
public getCompareExchangeValues<T>(
45+
keys: string[]): Promise<{ [key: string]: CompareExchangeValue<T> }>;
46+
public getCompareExchangeValues<T>(
47+
keys: string[], type: ClassConstructor<T>): Promise<{ [key: string]: CompareExchangeValue<T> }>;
48+
public getCompareExchangeValues<T>(
49+
keys: string[],
50+
callback: ErrorFirstCallback<{ [key: string]: CompareExchangeValue<T> }>)
51+
: Promise<{ [key: string]: CompareExchangeValue<T> }>;
52+
public getCompareExchangeValues<T>(
53+
keys: string[],
54+
type: ClassConstructor<T>,
55+
callback: ErrorFirstCallback<{ [key: string]: CompareExchangeValue<T> }>)
56+
: Promise<{ [key: string]: CompareExchangeValue<T> }>;
57+
public getCompareExchangeValues<T>(
58+
keys: string[],
59+
typeOrCallback?: ClassConstructor<T> | ErrorFirstCallback<{ [key: string]: CompareExchangeValue<T> }>,
60+
callback?: ErrorFirstCallback<{ [key: string]: CompareExchangeValue<T> }>)
61+
: Promise<{ [key: string]: CompareExchangeValue<T> }> {
62+
63+
callback = callback || TypeUtil.NOOP;
64+
let resultPromise: Promise<{ [key: string]: CompareExchangeValue<T> }>;
65+
if (TypeUtil.isClass(typeOrCallback)) {
66+
resultPromise = this._getCompareExchangeValuesInternal(keys, typeOrCallback as ClassConstructor<T>);
67+
} else {
68+
resultPromise = this._getCompareExchangeValuesInternal(keys);
69+
}
70+
71+
passResultToCallback(resultPromise, callback);
72+
return resultPromise;
2273
}
2374
}

0 commit comments

Comments
 (0)