@chakra-ui/cli
Version:
Generate theme typings for autocomplete
30 lines (27 loc) • 989 B
JavaScript
;
import { HttpsProxyAgent } from 'https-proxy-agent';
import fetch from 'node-fetch';
import { processEnvSchema, compositionIndexSchema, compositionFileSchema } from './schema.js';
const env = processEnvSchema.parse(process.env);
const agent = env.HTTPS_PROXY ? new HttpsProxyAgent(env.HTTPS_PROXY) : void 0;
async function fetchCompositions() {
const res = await fetch(`${env.REGISTRY_URL}/compositions/index.json`, {
agent
});
const json = await res.json();
return compositionIndexSchema.parse(json);
}
async function fetchComposition(id) {
try {
const res = await fetch(`${env.REGISTRY_URL}/compositions/${id}.json`, {
agent
});
const json = await res.json();
return compositionFileSchema.parse(json);
} catch (error) {
throw new Error(
`Failed to fetch snippet "${id}". Make sure the id is correct or run @chakra-ui/cli snippet list to see available snippets.`
);
}
}
export { fetchComposition, fetchCompositions };