Skip to content

Commit 76618b8

Browse files
committed
Address comments in the PR
1 parent d070233 commit 76618b8

File tree

4 files changed

+39
-29
lines changed

4 files changed

+39
-29
lines changed

packages/core/src/driver.ts

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ Object.freeze(routing)
260260
/**
261261
* The query configuration
262262
* @interface
263-
* @experimental
263+
* @experimental This can be changed or removed anytime.
264264
* @see https://github.com/neo4j/neo4j-javascript-driver/discussions/1052
265265
*/
266266
class QueryConfig<T = EagerResult> {
@@ -385,7 +385,7 @@ class Driver {
385385
/**
386386
* The bookmark managed used by {@link Driver.executeQuery}
387387
*
388-
* @experimental
388+
* @experimental This can be changed or removed anytime.
389389
* @type {BookmarkManager}
390390
* @returns {BookmarkManager}
391391
*/
@@ -396,7 +396,9 @@ class Driver {
396396
/**
397397
* Executes a query in a retriable context and returns a {@link EagerResult}.
398398
*
399-
* This method is a shortcut for a transaction function.
399+
* This method is a shortcut for a {@link Session#executeRead} and {@link Session#executeWrite}.
400+
*
401+
* NOTE: `CALL {} IN TRANSACTIONS` and `USING PERIODIC COMMIT` are not supported by this method.
400402
*
401403
* @example
402404
* // Run a simple write query
@@ -410,22 +412,25 @@ class Driver {
410412
* { routing: neo4j.routing.READERS})
411413
*
412414
* @example
413-
* // Run a read query returning a Person Node
414-
* const person1 = await driver.executeQuery(
415+
* // Run a read query returning a Person Nodes per elementId
416+
* const peopleMappedById = await driver.executeQuery(
415417
* 'MATCH (p:Person{ name: $name }) RETURN p',
416418
* { name: 'Person1'},
417419
* {
418420
* resultTransformer: neo4j.resultTransformers.mappedResultTransformer({
419421
* map(record) {
420-
* return record.get('p')
422+
* const p = record.get('p')
423+
* return [p.elementId, p]
421424
* },
422-
* collect(personArray) {
423-
* return personArray[0]
425+
* collect(elementIdPersonPairArray) {
426+
* return new Map(elementIdPersonPairArray)
424427
* }
425428
* })
426429
* }
427430
* )
428431
*
432+
* const person = peopleMappedById.get("<ELEMENT_ID>")
433+
*
429434
* @example
430435
* // these lines
431436
* const transformedResult = await driver.executeQuery(
@@ -455,7 +460,7 @@ class Driver {
455460
* }
456461
*
457462
* @public
458-
* @experimental
463+
* @experimental This can be changed or removed anytime.
459464
* @param {string | {text: string, parameters?: object}} query - Cypher query to execute
460465
* @param {Object} parameters - Map with parameters to use in the query
461466
* @param {QueryConfig<T>} config - The query configuration

packages/core/src/result-transformers.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ type ResultTransformer<T> = (result: Result) => Promise<T>
3535
*
3636
* @typedef {function<T>(result:Result):Promise<T>} ResultTransformer
3737
* @interface
38-
* @experimental
38+
* @experimental This can be changed or removed anytime.
3939
*
4040
* @see {@link resultTransformers} for provided implementations.
4141
* @see {@link Driver#executeQuery} for usage.
@@ -44,7 +44,7 @@ type ResultTransformer<T> = (result: Result) => Promise<T>
4444
/**
4545
* Defines the object which holds the common {@link ResultTransformer} used with {@link Driver#executeQuery}.
4646
*
47-
* @experimental
47+
* @experimental This can be changed or removed anytime.
4848
* @see https://github.com/neo4j/neo4j-javascript-driver/discussions/1052
4949
*/
5050
class ResultTransformers {
@@ -63,7 +63,7 @@ class ResultTransformers {
6363
* const { keys, records, summary } = await driver.executeQuery('CREATE (p:Person{ name: $name }) RETURN p', { name: 'Person1'})
6464
*
6565
*
66-
* @experimental
66+
* @experimental This can be changed or removed anytime.
6767
* @returns {ResultTransformer<EagerResult<Entries>>} The result transformer
6868
* @see https://github.com/neo4j/neo4j-javascript-driver/discussions/1052
6969
*/
@@ -126,7 +126,7 @@ class ResultTransformers {
126126
* const objects = await session.executeRead(tx => getRecordsAsObjects(tx.run('MATCH (p:Person{ age: $age }) RETURN p.name as name')))
127127
* objects.forEach(object => console.log(`${object.name} has 25`))
128128
*
129-
* @experimental
129+
* @experimental This can be changed or removed anytime.
130130
* @param {object} config The result transformer configuration
131131
* @param {function(record:Record):R} [config.map=function(record) { return record }] Method called for mapping each record
132132
* @param {function(records:R[], summary:ResultSummary, keys:string[]):T} [config.collect=function(records, summary, keys) { return { records, summary, keys }}] Method called for mapping
@@ -176,7 +176,7 @@ class ResultTransformers {
176176
/**
177177
* Holds the common {@link ResultTransformer} used with {@link Driver#executeQuery}.
178178
*
179-
* @experimental
179+
* @experimental This can be changed or removed anytime.
180180
* @see https://github.com/neo4j/neo4j-javascript-driver/discussions/1052
181181
*/
182182
const resultTransformers = new ResultTransformers()

packages/neo4j-driver-deno/lib/core/driver.ts

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ Object.freeze(routing)
260260
/**
261261
* The query configuration
262262
* @interface
263-
* @experimental
263+
* @experimental This can be changed or removed anytime.
264264
* @see https://github.com/neo4j/neo4j-javascript-driver/discussions/1052
265265
*/
266266
class QueryConfig<T = EagerResult> {
@@ -385,7 +385,7 @@ class Driver {
385385
/**
386386
* The bookmark managed used by {@link Driver.executeQuery}
387387
*
388-
* @experimental
388+
* @experimental This can be changed or removed anytime.
389389
* @type {BookmarkManager}
390390
* @returns {BookmarkManager}
391391
*/
@@ -396,7 +396,9 @@ class Driver {
396396
/**
397397
* Executes a query in a retriable context and returns a {@link EagerResult}.
398398
*
399-
* This method is a shortcut for a transaction function.
399+
* This method is a shortcut for a {@link Session#executeRead} and {@link Session#executeWrite}.
400+
*
401+
* NOTE: `CALL {} IN TRANSACTIONS` and `USING PERIODIC COMMIT` are not supported by this method.
400402
*
401403
* @example
402404
* // Run a simple write query
@@ -410,22 +412,25 @@ class Driver {
410412
* { routing: neo4j.routing.READERS})
411413
*
412414
* @example
413-
* // Run a read query return a Person Node
414-
* const person1 = await driver.executeQuery(
415+
* // Run a read query returning a Person Nodes per elementId
416+
* const peopleMappedById = await driver.executeQuery(
415417
* 'MATCH (p:Person{ name: $name }) RETURN p',
416418
* { name: 'Person1'},
417419
* {
418420
* resultTransformer: neo4j.resultTransformers.mappedResultTransformer({
419421
* map(record) {
420-
* return record.get('p')
422+
* const p = record.get('p')
423+
* return [p.elementId, p]
421424
* },
422-
* collect(personArray) {
423-
* return personArray[0]
425+
* collect(elementIdPersonPairArray) {
426+
* return new Map(elementIdPersonPairArray)
424427
* }
425428
* })
426429
* }
427430
* )
428431
*
432+
* const person = peopleMappedById.get("<ELEMENT_ID>")
433+
*
429434
* @example
430435
* // these lines
431436
* const transformedResult = await driver.executeQuery(
@@ -455,7 +460,7 @@ class Driver {
455460
* }
456461
*
457462
* @public
458-
* @experimental
463+
* @experimental This can be changed or removed anytime.
459464
* @param {string | {text: string, parameters?: object}} query - Cypher query to execute
460465
* @param {Object} parameters - Map with parameters to use in the query
461466
* @param {QueryConfig<T>} config - The query configuration

packages/neo4j-driver-deno/lib/core/result-transformers.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ type ResultTransformer<T> = (result: Result) => Promise<T>
3535
*
3636
* @typedef {function<T>(result:Result):Promise<T>} ResultTransformer
3737
* @interface
38-
* @experimental
38+
* @experimental This can be changed or removed anytime.
3939
*
4040
* @see {@link resultTransformers} for provided implementations.
4141
* @see {@link Driver#executeQuery} for usage.
@@ -44,7 +44,7 @@ type ResultTransformer<T> = (result: Result) => Promise<T>
4444
/**
4545
* Defines the object which holds the common {@link ResultTransformer} used with {@link Driver#executeQuery}.
4646
*
47-
* @experimental
47+
* @experimental This can be changed or removed anytime.
4848
* @see https://github.com/neo4j/neo4j-javascript-driver/discussions/1052
4949
*/
5050
class ResultTransformers {
@@ -59,11 +59,11 @@ class ResultTransformers {
5959
* const { keys, records, summary } = await driver.executeQuery('CREATE (p:Person{ name: $name }) RETURN p', { name: 'Person1'}, {
6060
* resultTransformer: neo4j.resultTransformers.eagerResultTransformer()
6161
* })
62-
* // equivalent to:
62+
* // is equivalent to:
6363
* const { keys, records, summary } = await driver.executeQuery('CREATE (p:Person{ name: $name }) RETURN p', { name: 'Person1'})
6464
*
6565
*
66-
* @experimental
66+
* @experimental This can be changed or removed anytime.
6767
* @returns {ResultTransformer<EagerResult<Entries>>} The result transformer
6868
* @see https://github.com/neo4j/neo4j-javascript-driver/discussions/1052
6969
*/
@@ -126,7 +126,7 @@ class ResultTransformers {
126126
* const objects = await session.executeRead(tx => getRecordsAsObjects(tx.run('MATCH (p:Person{ age: $age }) RETURN p.name as name')))
127127
* objects.forEach(object => console.log(`${object.name} has 25`))
128128
*
129-
* @experimental
129+
* @experimental This can be changed or removed anytime.
130130
* @param {object} config The result transformer configuration
131131
* @param {function(record:Record):R} [config.map=function(record) { return record }] Method called for mapping each record
132132
* @param {function(records:R[], summary:ResultSummary, keys:string[]):T} [config.collect=function(records, summary, keys) { return { records, summary, keys }}] Method called for mapping
@@ -176,7 +176,7 @@ class ResultTransformers {
176176
/**
177177
* Holds the common {@link ResultTransformer} used with {@link Driver#executeQuery}.
178178
*
179-
* @experimental
179+
* @experimental This can be changed or removed anytime.
180180
* @see https://github.com/neo4j/neo4j-javascript-driver/discussions/1052
181181
*/
182182
const resultTransformers = new ResultTransformers()

0 commit comments

Comments
 (0)