diff --git a/lib/index.js b/lib/index.js index 654722f..0d2343b 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,7 +1,11 @@ "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/lib/internal/reference/index.js b/lib/internal/reference/index.js index 36265a6..9aff76e 100644 --- a/lib/internal/reference/index.js +++ b/lib/internal/reference/index.js @@ -1,7 +1,11 @@ "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/lib/management/index.d.ts b/lib/management/index.d.ts index a177963..cbd566a 100644 --- a/lib/management/index.d.ts +++ b/lib/management/index.d.ts @@ -8,6 +8,7 @@ export declare type Config = { readonly storeHash: string; readonly accessToken: string; readonly agent?: Agent; + readonly customHeaders?: Record; }; /** * If you need to use a path which is not part if the spec, you can pass it diff --git a/lib/management/index.js b/lib/management/index.js index f557587..830b8ec 100644 --- a/lib/management/index.js +++ b/lib/management/index.js @@ -1,7 +1,11 @@ "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/lib/management/v2/index.d.ts b/lib/management/v2/index.d.ts index 67d4e77..9e54117 100644 --- a/lib/management/v2/index.d.ts +++ b/lib/management/v2/index.d.ts @@ -12,6 +12,7 @@ export declare type ResponseData & { readonly storeHash: string; readonly accessToken: string; + readonly customHeaders?: Record; }; export declare class Client { constructor(config: Config); diff --git a/lib/management/v2/index.js b/lib/management/v2/index.js index 2ecf553..f2aa1d9 100644 --- a/lib/management/v2/index.js +++ b/lib/management/v2/index.js @@ -10,7 +10,7 @@ class Client { : (0, operation_1.fetchTransport)({ agent: configOrTransport.agent, baseUrl: `https://api.bigcommerce.com/stores/${configOrTransport.storeHash}/v2`, - headers: { "X-Auth-Token": configOrTransport.accessToken }, + headers: { "X-Auth-Token": configOrTransport.accessToken, ...(configOrTransport.customHeaders || {}) }, }); } async send(requestLine, params) { diff --git a/lib/management/v3/index.d.ts b/lib/management/v3/index.d.ts index 520d83d..c13f108 100644 --- a/lib/management/v3/index.d.ts +++ b/lib/management/v3/index.d.ts @@ -6,7 +6,7 @@ import { RemoveStart } from "../../internal/type-utils"; export declare type Operations = reference.Operation; export declare type RequestLine = keyof Operations; export declare type NoParamsRequestLine = keyof OperationIndex.FilterOptionalParams; -export declare type InferResponse = NarrowResponse, Operations[ReqLine]['response']>; +export declare type InferResponse = NarrowResponse, Operations[ReqLine]['response']>; export declare type ResponseData = Response.Success> extends { readonly body: { readonly data?: infer Data; @@ -15,6 +15,7 @@ export declare type ResponseData export declare type Config = Omit & { readonly storeHash: string; readonly accessToken: string; + readonly customHeaders?: Record; }; export declare class Client { constructor(config: Config); diff --git a/lib/management/v3/index.js b/lib/management/v3/index.js index facff66..14c9b99 100644 --- a/lib/management/v3/index.js +++ b/lib/management/v3/index.js @@ -8,7 +8,7 @@ class Client { typeof configOrTransport === 'function' ? configOrTransport : (0, operation_1.fetchTransport)({ - headers: { "X-Auth-Token": configOrTransport.accessToken }, + headers: { "X-Auth-Token": configOrTransport.accessToken, ...(configOrTransport.customHeaders || {}) }, baseUrl: `https://api.bigcommerce.com/stores/${configOrTransport.storeHash}/v3`, agent: configOrTransport.agent, }); diff --git a/lib/storefront/index.d.ts b/lib/storefront/index.d.ts index a0688be..ff0250e 100644 --- a/lib/storefront/index.d.ts +++ b/lib/storefront/index.d.ts @@ -5,20 +5,18 @@ import { Const } from "../internal/type-utils"; export declare type Operations = reference.Operation; export declare type RequestLine = keyof Operations; export declare type NoParamsRequestLine = keyof OperationIndex.FilterOptionalParams; -export declare type InferResponse = NarrowResponse, Operations[ReqLine]['response']>; +export declare type InferResponse = NarrowResponse, Operations[ReqLine]['response']>; export declare type ResponseData = Response.Success> extends { readonly body: infer Data; } ? Data : never; export interface Client { send(requestLine: ReqLine): Promise>; send>(requestLine: ReqLine, params: Const>): Promise>; - delete>(requestLine: Path): Promise | null>; delete, Params extends Operation.MinimalInput>(path: Path, params: Const>): Promise | null>; get>(requestLine: Path): Promise | null>; get, Params extends Operation.MinimalInput>(path: Path, params: Const>): Promise | null>; post>(requestLine: Path): Promise>; post, Params extends Operation.MinimalInput>(path: Path, params: Const>): Promise>; - put>(requestLine: Path): Promise>; put, Params extends Operation.MinimalInput>(path: Path, params: Const>): Promise>; } declare type ResolveResponse = unknown extends Params ? Operations[ReqLine]['response'] : Params extends Parameters ? InferResponse : never; diff --git a/package-lock.json b/package-lock.json index b79119f..0a02ab7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@space48/bigcommerce-api", - "version": "0.3.2", + "version": "0.3.3-alpha3", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/package.json b/package.json index ad9f4dd..140bd2a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@space48/bigcommerce-api", - "version": "0.3.2", + "version": "0.3.3-alpha3", "description": "", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/src/management/index.ts b/src/management/index.ts index 8fa2eaa..d74fb38 100644 --- a/src/management/index.ts +++ b/src/management/index.ts @@ -8,7 +8,8 @@ export * as V3 from "./v3"; export type Config = { readonly storeHash: string; readonly accessToken: string; - readonly agent?: Agent + readonly agent?: Agent, + readonly customHeaders?: Record }; /** diff --git a/src/management/v2/index.ts b/src/management/v2/index.ts index d0247fe..256f8e0 100644 --- a/src/management/v2/index.ts +++ b/src/management/v2/index.ts @@ -16,14 +16,15 @@ export type InferResponse; -export type ResponseData = +export type ResponseData = Response.Success> extends { readonly body: infer Data } ? Data : never; export type Config = Omit & { readonly storeHash: string - readonly accessToken: string + readonly accessToken: string, + readonly customHeaders?: Record }; export class Client { @@ -38,7 +39,7 @@ export class Client { : fetchTransport({ agent: configOrTransport.agent, baseUrl: `https://api.bigcommerce.com/stores/${configOrTransport.storeHash}/v2`, - headers: { "X-Auth-Token": configOrTransport.accessToken }, + headers: { "X-Auth-Token": configOrTransport.accessToken, ...(configOrTransport.customHeaders || {}) }, }); } diff --git a/src/management/v3/index.ts b/src/management/v3/index.ts index 825f328..243014d 100644 --- a/src/management/v3/index.ts +++ b/src/management/v3/index.ts @@ -25,6 +25,7 @@ export type ResponseData = export type Config = Omit & { readonly storeHash: string readonly accessToken: string + readonly customHeaders?: Record }; export class Client { @@ -37,7 +38,7 @@ export class Client { typeof configOrTransport === 'function' ? configOrTransport : fetchTransport({ - headers: { "X-Auth-Token": configOrTransport.accessToken }, + headers: { "X-Auth-Token": configOrTransport.accessToken, ...(configOrTransport.customHeaders || {}) }, baseUrl: `https://api.bigcommerce.com/stores/${configOrTransport.storeHash}/v3`, agent: configOrTransport.agent, });