mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
And restrictIndexes can be an array of strings, rather than just a single string See https://www.algolia.com/doc/api-reference/api-methods/generate-secured-api-key/
250 lines
6.4 KiB
TypeScript
250 lines
6.4 KiB
TypeScript
import * as algoliasearch from 'algoliasearch';
|
|
import {
|
|
ClientOptions,
|
|
SynonymOption,
|
|
ApiKeyOptions,
|
|
SearchSynonymOptions,
|
|
SecuredApiOptions,
|
|
Index,
|
|
Response,
|
|
IndexSettings,
|
|
QueryParameters,
|
|
ApiKey,
|
|
MultiResponse,
|
|
Client,
|
|
} from 'algoliasearch';
|
|
import * as algoliasearchLite from 'algoliasearch/lite';
|
|
|
|
let _algoliaResponse: Response = {
|
|
hits: [{}, {}],
|
|
page: 0,
|
|
nbHits: 12,
|
|
nbPages: 6,
|
|
hitsPerPage: 2,
|
|
processingTimeMS: 32,
|
|
query: '',
|
|
params: '',
|
|
index: '',
|
|
exhaustiveFacetsCount: true,
|
|
exhaustiveNbHits: false,
|
|
};
|
|
|
|
let _clientOptions: ClientOptions = {
|
|
timeout: 12,
|
|
protocol: '',
|
|
httpAgent: '',
|
|
};
|
|
|
|
let _synonymOption: SynonymOption = {
|
|
forwardToReplicas: false,
|
|
replaceExistingSynonyms: false,
|
|
};
|
|
|
|
let _algoliaApiKeyOptions: ApiKeyOptions = {
|
|
validity: 0,
|
|
maxQueriesPerIPPerHour: 0,
|
|
indexes: [''],
|
|
queryParameters: { attributesToRetrieve: ['algolia'] },
|
|
description: '',
|
|
};
|
|
|
|
let _searchSynonymOptions: SearchSynonymOptions = {
|
|
query: '',
|
|
page: 0,
|
|
type: '',
|
|
hitsPerPage: 0,
|
|
};
|
|
|
|
let _algoliaSecuredApiOptions: SecuredApiOptions = {
|
|
filters: '',
|
|
validUntil: 0,
|
|
restrictIndices: '',
|
|
userToken: '',
|
|
};
|
|
|
|
let _algoliaSecuredApiOptionsAdvanced: SecuredApiOptions = {
|
|
filters: '',
|
|
validUntil: 0,
|
|
restrictIndices: ['', ''],
|
|
userToken: '',
|
|
attributesToRetrieve: ['foo', 'bar'],
|
|
restrictSearchableAttributes: [''],
|
|
};
|
|
|
|
let _algoliaIndexSettings: IndexSettings = {
|
|
attributesToIndex: [''],
|
|
attributesForFaceting: [''],
|
|
unretrievableAttributes: [''],
|
|
attributesToRetrieve: [''],
|
|
ranking: [''],
|
|
customRanking: [''],
|
|
replicas: [''],
|
|
maxValuesPerFacet: 100,
|
|
attributesToHighlight: [''],
|
|
attributesToSnippet: [''],
|
|
highlightPreTag: '',
|
|
highlightPostTag: '',
|
|
snippetEllipsisText: '',
|
|
restrictHighlightAndSnippetArrays: false,
|
|
hitsPerPage: 0,
|
|
minWordSizefor1Typo: 0,
|
|
minWordSizefor2Typos: 0,
|
|
typoTolerance: false,
|
|
allowTyposOnNumericTokens: false,
|
|
ignorePlurals: false,
|
|
disableTypoToleranceOnAttributes: '',
|
|
separatorsToIndex: '',
|
|
queryType: 'prefixAll',
|
|
removeWordsIfNoResults: '',
|
|
advancedSyntax: false,
|
|
optionalWords: [''],
|
|
removeStopWords: [''],
|
|
disablePrefixOnAttributes: [''],
|
|
disableExactOnAttributes: [''],
|
|
exactOnSingleWordQuery: '',
|
|
alternativesAsExact: ['ignorePlurals'],
|
|
attributeForDistinct: '',
|
|
distinct: false,
|
|
numericAttributesToIndex: [''],
|
|
allowCompressionOfIntegerArray: false,
|
|
altCorrections: [{}],
|
|
minProximity: 0,
|
|
placeholders: { '': [''] },
|
|
camelCaseAttributes: [''],
|
|
sortFacetValuesBy: 'count',
|
|
queryLanguages: ['fr', 'es'],
|
|
paginationLimitedTo: 500,
|
|
};
|
|
|
|
let _algoliaQueryParameters: QueryParameters = {
|
|
query: '',
|
|
filters: '',
|
|
attributesToRetrieve: [''],
|
|
restrictSearchableAttributes: [''],
|
|
facets: [''],
|
|
facetingAfterDistinct: true,
|
|
maxValuesPerFacet: 2,
|
|
attributesToHighlight: [''],
|
|
attributesToSnippet: [''],
|
|
highlightPreTag: '',
|
|
highlightPostTag: '',
|
|
snippetEllipsisText: '',
|
|
restrictHighlightAndSnippetArrays: false,
|
|
hitsPerPage: 0,
|
|
page: 0,
|
|
offset: 0,
|
|
length: 0,
|
|
minWordSizefor1Typo: 0,
|
|
minWordSizefor2Typos: 0,
|
|
typoTolerance: false,
|
|
allowTyposOnNumericTokens: false,
|
|
ignorePlurals: false,
|
|
disableTypoToleranceOnAttributes: [''],
|
|
aroundLatLng: '',
|
|
aroundLatLngViaIP: true,
|
|
aroundRadius: 0,
|
|
aroundPrecision: 0,
|
|
minimumAroundRadius: 0,
|
|
insideBoundingBox: [[0]],
|
|
queryType: 'prefixAll',
|
|
insidePolygon: [[0]],
|
|
removeWordsIfNoResults: 'firstWords',
|
|
advancedSyntax: false,
|
|
optionalWords: [''],
|
|
removeStopWords: [''],
|
|
disableExactOnAttributes: [''],
|
|
exactOnSingleWordQuery: 'attribute',
|
|
alternativesAsExact: ['ignorePlurals'],
|
|
distinct: 0,
|
|
getRankingInfo: false,
|
|
numericAttributesToIndex: [''],
|
|
numericAttributesForFiltering: [''],
|
|
numericFilters: [''],
|
|
tagFilters: [''],
|
|
facetFilters: ['', ['']],
|
|
analytics: false,
|
|
clickAnalytics: true,
|
|
analyticsTags: [''],
|
|
synonyms: true,
|
|
replaceSynonymsInHighlight: false,
|
|
minProximity: 0,
|
|
sortFacetValuesBy: 'alpha',
|
|
};
|
|
|
|
let _apiKey: ApiKey = {
|
|
value: '0eb3e6308abccdf9b67d70ddacb418b4',
|
|
createdAt: 1513462891,
|
|
acl: ['search'],
|
|
validity: 0,
|
|
};
|
|
|
|
let client: Client = algoliasearch('', '');
|
|
let index: Index = client.initIndex('');
|
|
|
|
let search = index.search({ query: '' });
|
|
|
|
index.search({ query: '' }, (err, res) => {});
|
|
|
|
// partialUpdateObject
|
|
index.partialUpdateObject({}, () => {});
|
|
index.partialUpdateObject({}, false, () => {});
|
|
index.partialUpdateObject({}).then(() => {});
|
|
index.partialUpdateObject({}, false).then(() => {});
|
|
|
|
// partialUpdateObjects
|
|
index.partialUpdateObjects([{}], () => {});
|
|
index.partialUpdateObjects([{}], false, () => {});
|
|
index.partialUpdateObjects([{}]).then(() => {});
|
|
index.partialUpdateObjects([{}], false).then(() => {});
|
|
|
|
let indexName: string = index.indexName;
|
|
|
|
// complete copy
|
|
client.copyIndex('from', 'to').then(() => {});
|
|
client.copyIndex('from', 'to', () => {});
|
|
// with scope
|
|
client.copyIndex('from', 'to', ['settings']).then(() => {});
|
|
client.copyIndex('from', 'to', ['synonyms', 'rules'], () => {});
|
|
|
|
// Browsing
|
|
const browser = index.browseAll();
|
|
index.browseAll('query');
|
|
index.browseAll('', {
|
|
filters: 'dog',
|
|
});
|
|
|
|
let hits: Object[] = [];
|
|
|
|
browser.on('result', function onResult(content) {
|
|
hits = hits.concat(content.hits);
|
|
});
|
|
|
|
browser.on('end', function onEnd() {
|
|
const _message = `We got ${hits.length} hits`;
|
|
});
|
|
|
|
browser.on('error', function onError(err) {
|
|
throw err;
|
|
});
|
|
|
|
browser.stop();
|
|
|
|
index.setSettings({ hitsPerPage: 10 }, () => {});
|
|
index.setSettings({ hitsPerPage: 10 }, { forwardToReplicas: true }, () => {});
|
|
index.setSettings({ hitsPerPage: 10 }).then(() => {});
|
|
index.setSettings({ hitsPerPage: 10 }, { forwardToReplicas: true }).then(() => {});
|
|
|
|
index.browse('', {
|
|
advancedSyntax: false,
|
|
attributesToRetrieve: ['dogs'],
|
|
});
|
|
client.copyIndex('from', 'to', ['settings']).then(() => {});
|
|
client.copyIndex('from', 'to', ['synonyms', 'rules'], () => {});
|
|
|
|
const liteClient: algoliasearchLite.Client = algoliasearchLite('', '');
|
|
|
|
liteClient.search([], (err: Error, res: MultiResponse) => {});
|
|
liteClient.search([]).then((res: MultiResponse) => {});
|
|
type Res = { zipzop: true };
|
|
liteClient.search<Res>([]).then((res: MultiResponse<Res>) => {});
|