Skip to content

createPurchase TypeScript overload missing for options parameter accepted by JS implementation #370

@lancefallon

Description

@lancefallon

The JavaScript implementation of createPurchase in Client.js accepts a second options argument (passed through to _makeRequest → _getRequestOptions) that supports custom headers:

async createPurchase (body, options = {}) { let path = '/purchases' path = this._interpolatePath(path) return this._makeRequest('POST', path, body, options) }

However, the TypeScript declaration only exposes one parameter:

createPurchase(body: PurchaseCreate): Promise<InvoiceCollection>;

This matters in practice when adding an Idempotency-Key header to requests. The only way to pass this is via options.headers, but TypeScript users have no type-safe way to do so.

For reference, the Go SDK exposes this via a first-class WithIdempotencyKey option.

Suggested fix:
createPurchase(body: PurchaseCreate, options?: { headers?: Record<string, string> }): Promise<InvoiceCollection>;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions