File tree Expand file tree Collapse file tree 4 files changed +72
-0
lines changed Expand file tree Collapse file tree 4 files changed +72
-0
lines changed Original file line number Diff line number Diff line change @@ -28,6 +28,7 @@ import type {
2828 ExtraRequestInit ,
2929 Network ,
3030 RecordAny ,
31+ RuntimeTogglableFeatures ,
3132} from "./types/index.js" ;
3233import { ErrorStatusCode } from "./types/index.js" ;
3334import { HttpRequests } from "./http-requests.js" ;
@@ -454,4 +455,25 @@ export class MeiliSearch {
454455 path : "snapshots" ,
455456 } ) ;
456457 }
458+
459+ ///
460+ /// EXPERIMENTAL-FEATURES
461+ ///
462+
463+ /** {@link https://www.meilisearch.com/docs/reference/api/experimental_features#get-all-experimental-features } */
464+ async getExperimentalFeatures ( ) : Promise < RuntimeTogglableFeatures > {
465+ return await this . httpRequest . get ( {
466+ path : "experimental-features" ,
467+ } ) ;
468+ }
469+
470+ /** {@link https://www.meilisearch.com/docs/reference/api/experimental_features#configure-experimental-features } */
471+ async updateExperimentalFeatures (
472+ runtimeTogglableFeatures : RuntimeTogglableFeatures ,
473+ ) : Promise < RuntimeTogglableFeatures > {
474+ return await this . httpRequest . patch ( {
475+ path : "experimental-features" ,
476+ body : runtimeTogglableFeatures ,
477+ } ) ;
478+ }
457479}
Original file line number Diff line number Diff line change 1+ /**
2+ * {@link https://www.meilisearch.com/docs/reference/api/experimental_features#experimental-features-object }
3+ *
4+ * @see `meilisearch::routes::features::RuntimeTogglableFeatures`
5+ */
6+ export type RuntimeTogglableFeatures = {
7+ metrics ?: boolean | null ;
8+ logsRoute ?: boolean | null ;
9+ editDocumentsByFunction ?: boolean | null ;
10+ containsFilter ?: boolean | null ;
11+ network ?: boolean | null ;
12+ getTaskDocumentsRoute ?: boolean | null ;
13+ compositeEmbedders ?: boolean | null ;
14+ } ;
Original file line number Diff line number Diff line change 1+ export * from "./experimental-features.js" ;
12export * from "./task_and_batch.js" ;
23export * from "./token.js" ;
34export * from "./types.js" ;
Original file line number Diff line number Diff line change 1+ import { afterAll , test } from "vitest" ;
2+ import { assert , getClient } from "./utils/meilisearch-test-utils.js" ;
3+ import type { RuntimeTogglableFeatures } from "../src/index.js" ;
4+
5+ const ms = await getClient ( "Master" ) ;
6+
7+ afterAll ( async ( ) => {
8+ await ms . updateExperimentalFeatures ( {
9+ metrics : false ,
10+ logsRoute : false ,
11+ editDocumentsByFunction : false ,
12+ containsFilter : false ,
13+ network : false ,
14+ getTaskDocumentsRoute : false ,
15+ compositeEmbedders : false ,
16+ } satisfies { [ TKey in keyof RuntimeTogglableFeatures ] -?: false } ) ;
17+ } ) ;
18+
19+ test ( `${ ms . updateExperimentalFeatures . name } and ${ ms . getExperimentalFeatures . name } methods` , async ( ) => {
20+ const features : { [ TKey in keyof RuntimeTogglableFeatures ] -?: true } = {
21+ metrics : true ,
22+ logsRoute : true ,
23+ editDocumentsByFunction : true ,
24+ containsFilter : true ,
25+ network : true ,
26+ getTaskDocumentsRoute : true ,
27+ compositeEmbedders : true ,
28+ } ;
29+
30+ const updateFeatures = await ms . updateExperimentalFeatures ( features ) ;
31+ assert . deepEqual ( updateFeatures , features ) ;
32+
33+ const getFeatures = await ms . getExperimentalFeatures ( ) ;
34+ assert . deepEqual ( getFeatures , features ) ;
35+ } ) ;
You can’t perform that action at this time.
0 commit comments