-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Expand file tree
/
Copy pathapi.js
More file actions
60 lines (55 loc) · 1.48 KB
/
api.js
File metadata and controls
60 lines (55 loc) · 1.48 KB
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
/**
* Provider API functions.
*
* @since 7.0.0
*
* @package WordPress
* @subpackage AI
*/
import { resolveSelect } from '@wordpress/data';
import { store } from './store';
/**
* Gets all registered AI providers.
*
* @since 7.0.0
*
* @return {Promise<Array>} Promise resolving to array of providers.
*/
export async function getProviders() {
return await resolveSelect( store ).getProviders();
}
/**
* Gets a specific provider by its ID.
*
* @since 7.0.0
*
* @param {string} id Provider ID.
* @return {Promise<Object|undefined>} Promise resolving to provider object, or undefined if not found.
*/
export async function getProvider( id ) {
return await resolveSelect( store ).getProvider( id );
}
/**
* Gets all models for a specific provider.
*
* @since 7.0.0
*
* @param {string} providerId Provider ID.
* @return {Promise<Array>} Promise resolving to array of models for the provider.
*/
export async function getProviderModels( providerId ) {
return await resolveSelect( store ).getProviderModels( providerId );
}
/**
* Gets a specific model by its ID for a provider.
*
* @since 7.0.0
*
* @param {string} providerId Provider ID.
* @param {string} modelId Model ID.
* @return {Promise<Object|undefined>} Promise resolving to model object, or undefined if not found.
*/
export async function getProviderModel( providerId, modelId ) {
const models = await resolveSelect( store ).getProviderModels( providerId );
return models.find( ( model ) => model.id === modelId );
}