-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathnode.ts
130 lines (112 loc) · 5 KB
/
node.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
import type { ClientOptions } from '@algolia/client-common';
import type { AbtestingClient } from '@algolia/client-abtesting';
import { abtestingClient } from '@algolia/client-abtesting';
import type { AnalyticsClient } from '@algolia/client-analytics';
import { analyticsClient } from '@algolia/client-analytics';
import type { InsightsClient } from '@algolia/client-insights';
import { insightsClient } from '@algolia/client-insights';
import type { PersonalizationClient } from '@algolia/client-personalization';
import { personalizationClient } from '@algolia/client-personalization';
import type { QuerySuggestionsClient } from '@algolia/client-query-suggestions';
import { querySuggestionsClient } from '@algolia/client-query-suggestions';
import type { SearchClient } from '@algolia/client-search';
import { searchClient } from '@algolia/client-search';
import type { IngestionClient } from '@algolia/ingestion';
import { ingestionClient } from '@algolia/ingestion';
import type { MonitoringClient } from '@algolia/monitoring';
import { monitoringClient } from '@algolia/monitoring';
import type { RecommendClient } from '@algolia/recommend';
import { recommendClient } from '@algolia/recommend';
import type {
AbtestingRegionOptions,
AnalyticsRegionOptions,
IngestionRegionOptions,
InitClientOptions,
InsightsRegionOptions,
PersonalizationRegionOptions,
QuerySuggestionsRegionOptions,
} from './models';
export * from './models';
export type Algoliasearch = SearchClient & {
initAbtesting: (initOptions: InitClientOptions & AbtestingRegionOptions) => AbtestingClient;
initAnalytics: (initOptions: InitClientOptions & AnalyticsRegionOptions) => AnalyticsClient;
initIngestion: (initOptions: InitClientOptions & IngestionRegionOptions) => IngestionClient;
initInsights: (initOptions: InitClientOptions & InsightsRegionOptions) => InsightsClient;
initMonitoring: (initOptions?: InitClientOptions) => MonitoringClient;
initPersonalization: (initOptions: InitClientOptions & PersonalizationRegionOptions) => PersonalizationClient;
initQuerySuggestions: (initOptions: InitClientOptions & QuerySuggestionsRegionOptions) => QuerySuggestionsClient;
initRecommend: (initOptions?: InitClientOptions) => RecommendClient;
};
export function algoliasearch(appId: string, apiKey: string, options?: ClientOptions): Algoliasearch {
if (!appId || typeof appId !== 'string') {
throw new Error('`appId` is missing.');
}
if (!apiKey || typeof apiKey !== 'string') {
throw new Error('`apiKey` is missing.');
}
const client = searchClient(appId, apiKey, options);
return {
...client,
/**
* Get the value of the `algoliaAgent`, used by our libraries internally and telemetry system.
*/
get _ua(): string {
return client.transporter.algoliaAgent.value;
},
initAbtesting: (initOptions: InitClientOptions & AbtestingRegionOptions): AbtestingClient => {
return abtestingClient(
initOptions.appId || appId,
initOptions.apiKey || apiKey,
initOptions.region,
initOptions.options,
);
},
initAnalytics: (initOptions: InitClientOptions & AnalyticsRegionOptions): AnalyticsClient => {
return analyticsClient(
initOptions.appId || appId,
initOptions.apiKey || apiKey,
initOptions.region,
initOptions.options,
);
},
initIngestion: (initOptions: InitClientOptions & IngestionRegionOptions): IngestionClient => {
return ingestionClient(
initOptions.appId || appId,
initOptions.apiKey || apiKey,
initOptions.region,
initOptions.options,
);
},
initInsights: (initOptions: InitClientOptions & InsightsRegionOptions): InsightsClient => {
return insightsClient(
initOptions.appId || appId,
initOptions.apiKey || apiKey,
initOptions.region,
initOptions.options,
);
},
initMonitoring: (initOptions: InitClientOptions = {}): MonitoringClient => {
return monitoringClient(initOptions.appId || appId, initOptions.apiKey || apiKey, initOptions.options);
},
initPersonalization: (initOptions: InitClientOptions & PersonalizationRegionOptions): PersonalizationClient => {
return personalizationClient(
initOptions.appId || appId,
initOptions.apiKey || apiKey,
initOptions.region,
initOptions.options,
);
},
initQuerySuggestions: (initOptions: InitClientOptions & QuerySuggestionsRegionOptions): QuerySuggestionsClient => {
return querySuggestionsClient(
initOptions.appId || appId,
initOptions.apiKey || apiKey,
initOptions.region,
initOptions.options,
);
},
initRecommend: (initOptions: InitClientOptions = {}): RecommendClient => {
return recommendClient(initOptions.appId || appId, initOptions.apiKey || apiKey, initOptions.options);
},
};
}