Skip to content

Commit

Permalink
fix(javascript): provide more options to algoliasearch (#877)
Browse files Browse the repository at this point in the history
  • Loading branch information
shortcuts committed Jul 28, 2022
1 parent 7c26c5e commit eb108de
Show file tree
Hide file tree
Showing 9 changed files with 18 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ export type CreateClientOptions = Omit<
algoliaAgents: AlgoliaAgentOptions[];
};

export type InitClientOptions = Partial<
export type ClientOptions = Partial<
Omit<CreateClientOptions, 'apiKey' | 'appId'>
>;
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import { createXhrRequester } from '{{{npmNamespace}}}/requester-browser-xhr';
export function algoliasearch(
appId: string,
apiKey: string,
options?: CommonClientOptions
options?: ClientOptions
) {
{{> algoliasearch/builds/checkParameters}}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ import { createPersonalizationClient, REGIONS as personalizationRegions } from '

import { createSearchClient, apiClientVersion as searchClientVersion } from '{{{npmNamespace}}}/client-search/src/searchClient';

import type { CreateClientOptions } from '{{{npmNamespace}}}/client-common';
import { CommonInitOptions, InitRegion, CommonClientOptions } from "./models"
import type { CreateClientOptions, ClientOptions } from '{{{npmNamespace}}}/client-common';
import { InitClientOptions, InitClientRegion } from "./models"

export * from './models';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
function initAnalytics(initOptions: CommonInitOptions & InitRegion<AnalyticsRegion> = {}): AnalyticsClient {
function initAnalytics(initOptions: InitClientOptions & InitClientRegion<AnalyticsRegion> = {}): AnalyticsClient {
if (
initOptions.region &&
(typeof initOptions.region !== 'string' ||
Expand All @@ -16,7 +16,7 @@ function initAnalytics(initOptions: CommonInitOptions & InitRegion<AnalyticsRegi
});
}

function initAbtesting(initOptions: CommonInitOptions & InitRegion<AbtestingRegion> = {}): AbtestingClient {
function initAbtesting(initOptions: InitClientOptions & InitClientRegion<AbtestingRegion> = {}): AbtestingClient {
if (
initOptions.region &&
(typeof initOptions.region !== 'string' ||
Expand All @@ -34,7 +34,7 @@ function initAbtesting(initOptions: CommonInitOptions & InitRegion<AbtestingRegi
});
}

function initPersonalization(initOptions: CommonInitOptions & Required<InitRegion<PersonalizationRegion>>): PersonalizationClient {
function initPersonalization(initOptions: InitClientOptions & Required<InitClientRegion<PersonalizationRegion>>): PersonalizationClient {
if (!initOptions.region) {
throw new Error('`region` is missing.');
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import type {
Host,
Requester,
ClientOptions,
} from '{{{npmNamespace}}}/client-common';
import {
ErrorBase,
Expand All @@ -24,9 +25,10 @@ export { AbtestingClient } from '{{{npmNamespace}}}/client-abtesting';

export { ErrorBase, PutProps, PostProps, DelProps, GetProps };

export type CommonClientOptions = { requester?: Requester; hosts?: Host[] };

export type CommonInitOptions = Partial<{
/**
* Options forwarded to the client initialized via the `init` method.
*/
export type InitClientOptions = Partial<{
/**
* App to target with the initialized client, defaults to the `algoliasearch` appId.
*/
Expand All @@ -35,10 +37,10 @@ export type CommonInitOptions = Partial<{
* API key of the targeted app ID, defaults to the `algoliasearch` apiKey.
*/
apiKey: string;
options: CommonClientOptions;
options: ClientOptions;
}>;

export type InitRegion<TRegion> = Partial<{
export type InitClientRegion<TRegion> = Partial<{
/**
* Available regions of the initialized client.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { createHttpRequester } from '{{{npmNamespace}}}/requester-node-http';
export function algoliasearch(
appId: string,
apiKey: string,
options?: CommonClientOptions
options?: ClientOptions
) {
{{> algoliasearch/builds/checkParameters}}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { DEFAULT_CONNECT_TIMEOUT_BROWSER, DEFAULT_READ_TIMEOUT_BROWSER, DEFAULT_
export function {{apiName}}(
appId: string,
apiKey: string,{{#hasRegionalHost}}region{{#fallbackToAliasHost}}?{{/fallbackToAliasHost}}: Region,{{/hasRegionalHost}}
options?: InitClientOptions
options?: ClientOptions
): {{capitalizedApiName}} {
{{> client/builds/checkParameters}}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { InitClientOptions } from '{{{npmNamespace}}}/client-common';
import type { ClientOptions } from '{{{npmNamespace}}}/client-common';
import { createMemoryCache, createFallbackableCache, createBrowserLocalStorageCache, createNullCache } from '{{{npmNamespace}}}/client-common';

import { create{{capitalizedApiName}}, apiClientVersion } from '../src/{{apiName}}';
Expand Down
2 changes: 1 addition & 1 deletion templates/javascript/clients/client/builds/node.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { DEFAULT_CONNECT_TIMEOUT_NODE, DEFAULT_READ_TIMEOUT_NODE, DEFAULT_WRITE_
export function {{apiName}}(
appId: string,
apiKey: string,{{#hasRegionalHost}}region{{#fallbackToAliasHost}}?{{/fallbackToAliasHost}}: Region,{{/hasRegionalHost}}
options?: InitClientOptions
options?: ClientOptions
): {{capitalizedApiName}} {
{{> client/builds/checkParameters}}

Expand Down

0 comments on commit eb108de

Please sign in to comment.