Skip to content

Commit 2ca7ac6

Browse files
committed
TypeScript declarations for transaction config
1 parent 7a0a398 commit 2ca7ac6

File tree

4 files changed

+34
-84
lines changed

4 files changed

+34
-84
lines changed

test/types/v1/session.test.ts

Lines changed: 17 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,27 @@
1717
* limitations under the License.
1818
*/
1919

20-
import Session from "../../../types/v1/session";
20+
import Session, {TransactionConfig} from "../../../types/v1/session";
2121
import Transaction from "../../../types/v1/transaction";
2222
import Record from "../../../types/v1/record";
2323
import Result, {StatementResult} from "../../../types/v1/result";
2424
import ResultSummary from "../../../types/v1/result-summary";
25+
import Integer from "../../../types/v1/integer";
2526

2627
const dummy: any = null;
28+
const intValue: Integer = Integer.fromInt(42);
2729

2830
const session: Session = dummy;
2931

30-
const tx: Transaction = session.beginTransaction();
32+
const txConfig1: TransactionConfig = {};
33+
const txConfig2: TransactionConfig = {timeout: 5000};
34+
const txConfig3: TransactionConfig = {timeout: intValue};
35+
const txConfig4: TransactionConfig = {metadata: {}};
36+
const txConfig5: TransactionConfig = {metadata: {key1: 'value1', key2: 5, key3: {a: 'a', b: 'b'}, key4: [1, 2, 3]}};
37+
const txConfig6: TransactionConfig = {timeout: 2000, metadata: {key1: 'value1', key2: 2}};
38+
const txConfig7: TransactionConfig = {timeout: intValue, metadata: {key1: 'value1', key2: 2}};
39+
40+
const tx1: Transaction = session.beginTransaction();
3141
const bookmark: null | string = <null>session.lastBookmark();
3242

3343
const promise1: Promise<number> = session.readTransaction((tx: Transaction) => {
@@ -101,7 +111,7 @@ result4.subscribe({
101111
onCompleted: (summary: ResultSummary) => console.log(summary)
102112
});
103113

104-
const result5: Result = session.run({text: "RETURN 1"});
114+
const result5: Result = session.run("RETURN $value", {value: "42"}, txConfig1);
105115
result5.then((res: StatementResult) => {
106116
const records: Record[] = res.records;
107117
const summary: ResultSummary = res.summary;
@@ -111,7 +121,7 @@ result5.then((res: StatementResult) => {
111121
console.log(error);
112122
});
113123

114-
const result6: Result = session.run({text: "RETURN 1"});
124+
const result6: Result = session.run("RETURN $value", {value: "42"}, txConfig2);
115125
result6.subscribe({});
116126
result6.subscribe({
117127
onNext: (record: Record) => console.log(record)
@@ -126,27 +136,6 @@ result6.subscribe({
126136
onCompleted: (summary: ResultSummary) => console.log(summary)
127137
});
128138

129-
const result7: Result = session.run({text: "RETURN $value", parameters: {value: 42}});
130-
result7.then((res: StatementResult) => {
131-
const records: Record[] = res.records;
132-
const summary: ResultSummary = res.summary;
133-
console.log(records);
134-
console.log(summary);
135-
}).catch((error: Error) => {
136-
console.log(error);
137-
});
138-
139-
const result8: Result = session.run({text: "RETURN $value", parameters: {value: 42}});
140-
result8.subscribe({});
141-
result8.subscribe({
142-
onNext: (record: Record) => console.log(record)
143-
});
144-
result8.subscribe({
145-
onNext: (record: Record) => console.log(record),
146-
onError: (error: Error) => console.log(error)
147-
});
148-
result8.subscribe({
149-
onNext: (record: Record) => console.log(record),
150-
onError: (error: Error) => console.log(error),
151-
onCompleted: (summary: ResultSummary) => console.log(summary)
152-
});
139+
const tx2: Transaction = session.beginTransaction(txConfig2);
140+
const promise5: Promise<string> = session.readTransaction((tx: Transaction) => "", txConfig3);
141+
const promise6: Promise<number> = session.writeTransaction((tx: Transaction) => 42, txConfig4);

test/types/v1/transaction.test.ts

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -79,56 +79,6 @@ result4.subscribe({
7979
onCompleted: (summary: ResultSummary) => console.log(summary)
8080
});
8181

82-
const result5: Result = tx.run({text: "RETURN 1"});
83-
result5.then((res: StatementResult) => {
84-
const records: Record[] = res.records;
85-
const summary: ResultSummary = res.summary;
86-
console.log(records);
87-
console.log(summary);
88-
}).catch((error: Error) => {
89-
console.log(error);
90-
});
91-
92-
const result6: Result = tx.run({text: "RETURN 1"});
93-
result6.subscribe({});
94-
result6.subscribe({
95-
onNext: (record: Record) => console.log(record)
96-
});
97-
result6.subscribe({
98-
onNext: (record: Record) => console.log(record),
99-
onError: (error: Error) => console.log(error)
100-
});
101-
result6.subscribe({
102-
onNext: (record: Record) => console.log(record),
103-
onError: (error: Error) => console.log(error),
104-
onCompleted: (summary: ResultSummary) => console.log(summary)
105-
});
106-
107-
const result7: Result = tx.run({text: "RETURN $value", parameters: {value: 42}});
108-
result7.then((res: StatementResult) => {
109-
const records: Record[] = res.records;
110-
const summary: ResultSummary = res.summary;
111-
console.log(records);
112-
console.log(summary);
113-
}).catch((error: Error) => {
114-
console.log(error);
115-
});
116-
117-
const result8: Result = tx.run({text: "RETURN $value", parameters: {value: 42}});
118-
result8.subscribe({});
119-
result8.subscribe({
120-
onNext: (record: Record) => console.log(record)
121-
});
122-
result8.subscribe({
123-
onNext: (record: Record) => console.log(record),
124-
onError: (error: Error) => console.log(error)
125-
});
126-
result8.subscribe({
127-
onNext: (record: Record) => console.log(record),
128-
onError: (error: Error) => console.log(error),
129-
onCompleted: (summary: ResultSummary) => console.log(summary)
130-
});
131-
13282
tx.commit().then((res: StatementResult) => {
13383
console.log(res);
13484
}).catch((error: Error) => {

types/v1/session.d.ts

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,33 @@
1818
*/
1919

2020
import Transaction from "./transaction";
21-
import StatementRunner from "./statement-runner";
21+
import StatementRunner, {Parameters} from "./statement-runner";
22+
import Result from "./result";
23+
import {NumberOrInteger} from "./graph-types";
2224

2325
declare type TransactionWork<T> = (tx: Transaction) => T | Promise<T>;
2426

27+
declare interface TransactionConfig {
28+
timeout?: NumberOrInteger;
29+
metadata?: object;
30+
}
31+
2532
declare interface Session extends StatementRunner {
26-
beginTransaction(): Transaction;
33+
run(statement: string, parameters?: Parameters, config?: TransactionConfig): Result;
34+
35+
beginTransaction(config?: TransactionConfig): Transaction;
2736

2837
lastBookmark(): string | null;
2938

30-
readTransaction<T>(work: TransactionWork<T>): Promise<T>;
39+
readTransaction<T>(work: TransactionWork<T>, config?: TransactionConfig): Promise<T>;
3140

32-
writeTransaction<T>(work: TransactionWork<T>): Promise<T>;
41+
writeTransaction<T>(work: TransactionWork<T>, config?: TransactionConfig): Promise<T>;
3342

3443
close(callback?: () => void): void;
3544
}
3645

46+
export {
47+
TransactionConfig
48+
}
49+
3750
export default Session;

types/v1/statement-runner.d.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ declare type Parameters = { [key: string]: any };
2323

2424
declare interface StatementRunner {
2525
run(statement: string, parameters?: Parameters): Result;
26-
27-
run(statement: { text: string, parameters?: Parameters }): Result;
2826
}
2927

3028
export {Parameters}

0 commit comments

Comments
 (0)