@@ -47,6 +47,9 @@ import {
4747 DocumentsDeletionQuery ,
4848 SearchForFacetValuesParams ,
4949 SearchForFacetValuesResponse ,
50+ SeparatorTokens ,
51+ NonSeparatorTokens ,
52+ Dictionary ,
5053} from './types'
5154import { removeUndefinedFromObject } from './utils'
5255import { HttpRequests } from './http-requests'
@@ -1117,6 +1120,133 @@ class Index<T extends Record<string, any> = Record<string, any>> {
11171120
11181121 return new EnqueuedTask ( task )
11191122 }
1123+
1124+ ///
1125+ /// SEPARATOR TOKENS
1126+ ///
1127+
1128+ /**
1129+ * Get the list of all separator tokens.
1130+ *
1131+ * @returns Promise containing array of separator tokens
1132+ */
1133+ async getSeparatorTokens ( ) : Promise < string [ ] > {
1134+ const url = `indexes/${ this . uid } /settings/separator-tokens`
1135+ return await this . httpRequest . get < string [ ] > ( url )
1136+ }
1137+
1138+ /**
1139+ * Update the list of separator tokens. Overwrite the old list.
1140+ *
1141+ * @param separatorTokens - Array that contains separator tokens.
1142+ * @returns Promise containing an EnqueuedTask or null
1143+ */
1144+ async updateSeparatorTokens (
1145+ separatorTokens : SeparatorTokens
1146+ ) : Promise < EnqueuedTask > {
1147+ const url = `indexes/${ this . uid } /settings/separator-tokens`
1148+ const task = await this . httpRequest . put ( url , separatorTokens )
1149+
1150+ return new EnqueuedTask ( task )
1151+ }
1152+
1153+ /**
1154+ * Reset the separator tokens list to its default value
1155+ *
1156+ * @returns Promise containing an EnqueuedTask
1157+ */
1158+ async resetSeparatorTokens ( ) : Promise < EnqueuedTask > {
1159+ const url = `indexes/${ this . uid } /settings/separator-tokens`
1160+ const task = await this . httpRequest . delete < EnqueuedTask > ( url )
1161+
1162+ task . enqueuedAt = new Date ( task . enqueuedAt )
1163+
1164+ return task
1165+ }
1166+
1167+ ///
1168+ /// NON-SEPARATOR TOKENS
1169+ ///
1170+
1171+ /**
1172+ * Get the list of all non-separator tokens.
1173+ *
1174+ * @returns Promise containing array of non-separator tokens
1175+ */
1176+ async getNonSeparatorTokens ( ) : Promise < string [ ] > {
1177+ const url = `indexes/${ this . uid } /settings/non-separator-tokens`
1178+ return await this . httpRequest . get < string [ ] > ( url )
1179+ }
1180+
1181+ /**
1182+ * Update the list of non-separator tokens. Overwrite the old list.
1183+ *
1184+ * @param nonSeparatorTokens - Array that contains non-separator tokens.
1185+ * @returns Promise containing an EnqueuedTask or null
1186+ */
1187+ async updateNonSeparatorTokens (
1188+ nonSeparatorTokens : NonSeparatorTokens
1189+ ) : Promise < EnqueuedTask > {
1190+ const url = `indexes/${ this . uid } /settings/non-separator-tokens`
1191+ const task = await this . httpRequest . put ( url , nonSeparatorTokens )
1192+
1193+ return new EnqueuedTask ( task )
1194+ }
1195+
1196+ /**
1197+ * Reset the non-separator tokens list to its default value
1198+ *
1199+ * @returns Promise containing an EnqueuedTask
1200+ */
1201+ async resetNonSeparatorTokens ( ) : Promise < EnqueuedTask > {
1202+ const url = `indexes/${ this . uid } /settings/non-separator-tokens`
1203+ const task = await this . httpRequest . delete < EnqueuedTask > ( url )
1204+
1205+ task . enqueuedAt = new Date ( task . enqueuedAt )
1206+
1207+ return task
1208+ }
1209+
1210+ ///
1211+ /// DICTIONARY
1212+ ///
1213+
1214+ /**
1215+ * Get the dictionary settings of a Meilisearch index.
1216+ *
1217+ * @returns Promise containing the dictionary settings
1218+ */
1219+ async getDictionary ( ) : Promise < string [ ] > {
1220+ const url = `indexes/${ this . uid } /settings/dictionary`
1221+ return await this . httpRequest . get < string [ ] > ( url )
1222+ }
1223+
1224+ /**
1225+ * Update the the dictionary settings. Overwrite the old settings.
1226+ *
1227+ * @param dictionary - Array that contains the new dictionary settings.
1228+ * @returns Promise containing an EnqueuedTask or null
1229+ */
1230+ async updateDictionary ( dictionary : Dictionary ) : Promise < EnqueuedTask > {
1231+ const url = `indexes/${ this . uid } /settings/dictionary`
1232+ const task = await this . httpRequest . put ( url , dictionary )
1233+
1234+ return new EnqueuedTask ( task )
1235+ }
1236+
1237+ /**
1238+ * Reset the dictionary settings to its default value
1239+ *
1240+ * @returns Promise containing an EnqueuedTask
1241+ */
1242+ async resetDictionary ( ) : Promise < EnqueuedTask > {
1243+ const url = `indexes/${ this . uid } /settings/dictionary`
1244+ const task = await this . httpRequest . delete < EnqueuedTask > ( url )
1245+
1246+ task . enqueuedAt = new Date ( task . enqueuedAt )
1247+
1248+ return task
1249+ }
11201250}
11211251
11221252export { Index }
0 commit comments