From 70b686c494aa6bcc8dc2549abeb6dff896864fda Mon Sep 17 00:00:00 2001 From: Steve Hetzel Date: Wed, 23 May 2018 09:49:17 -0600 Subject: [PATCH] [@types/jsforce] fixes Connection.query signature to accept the options arg as ExecuteOptions type from Query.d.ts. Modifies the Connection.queryMore options type to be ExecuteOptions as well. Fixes the scanAll property on ExecuteOptions to be a boolean rather than number and add the headers property as optional. Adds a test to jsforce-tests.ts for the changes. --- types/jsforce/connection.d.ts | 6 +++--- types/jsforce/jsforce-tests.ts | 8 ++++++++ types/jsforce/query.d.ts | 3 ++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/types/jsforce/connection.d.ts b/types/jsforce/connection.d.ts index 27d79fdd5b..32ed4de267 100644 --- a/types/jsforce/connection.d.ts +++ b/types/jsforce/connection.d.ts @@ -1,6 +1,6 @@ import { EventEmitter } from 'events'; import { DescribeSObjectResult, DescribeGlobalResult } from './describe-result'; -import { Query, QueryResult } from './query'; +import { Query, QueryResult, ExecuteOptions } from './query'; import { Record } from './record'; import { RecordResult } from './record-result'; import { SObject } from './salesforce-object'; @@ -93,8 +93,8 @@ export type ConnectionEvent = "refresh"; export abstract class BaseConnection extends EventEmitter { _baseUrl(): string; request(info: RequestInfo | string, options?: Object, callback?: (err: Error, Object: object) => void): Promise; - query(soql: string, callback?: (err: Error, result: QueryResult) => void): Query>; - queryMore(locator: string, options?: object, callback?: (err: Error, result: QueryResult) => void): Promise>; + query(soql: string, options?: ExecuteOptions, callback?: (err: Error, result: QueryResult) => void): Query>; + queryMore(locator: string, options?: ExecuteOptions, callback?: (err: Error, result: QueryResult) => void): Promise>; create(type: string, records: Record | Array>, options?: Object, callback?: (err: Error, result: RecordResult | RecordResult[]) => void): Promise<(RecordResult | RecordResult[])>; insert(type: string, records: Record | Array>, options?: Object, diff --git a/types/jsforce/jsforce-tests.ts b/types/jsforce/jsforce-tests.ts index 0aa98d62d1..c0be86e92c 100644 --- a/types/jsforce/jsforce-tests.ts +++ b/types/jsforce/jsforce-tests.ts @@ -30,6 +30,14 @@ const requestInfo: sf.RequestInfo = { }; salesforceConnection.request(requestInfo); +const queryOptions: sf.ExecuteOptions = { + autoFetch: true, + maxFetch: 5000, + headers: {}, + scanAll: true +}; +salesforceConnection.query('SELECT Id, Name FROM Account', queryOptions); + // note the following should never compile: // salesforceConnection.sobject("Dummy").select(["lol"]); diff --git a/types/jsforce/query.d.ts b/types/jsforce/query.d.ts index b33af41ede..964037123b 100644 --- a/types/jsforce/query.d.ts +++ b/types/jsforce/query.d.ts @@ -5,7 +5,8 @@ import { RecordResult } from './record-result'; export interface ExecuteOptions { autoFetch?: boolean; maxFetch?: number; - scanAll?: number; + headers?: object; + scanAll?: boolean; } export interface QueryResult {