UNPKG

netlify

Version:

Netlify command line tool

46 lines 2.02 kB
import execa from 'execa'; import { parseAIGatewayContext, setupAIGateway } from '@netlify/ai/bootstrap'; import { NETLIFYDEVLOG, log } from '../../utils/command-helpers.js'; import { getDotEnvVariables, getSiteInformation, injectEnvVariables } from '../../utils/dev.js'; import { getEnvelopeEnv } from '../../utils/env/index.js'; export const devExec = async (cmd, options, command) => { const { api, cachedConfig, config, site, siteInfo } = command.netlify; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const withEnvelopeEnvVars = await getEnvelopeEnv({ api, context: options.context, env: cachedConfig.env, siteInfo }); const env = await getDotEnvVariables({ devConfig: { ...config.dev }, env: withEnvelopeEnvVars, site }); const { accountId, capabilities, siteUrl } = await getSiteInformation({ offline: false, api, site, siteInfo, }); if (!capabilities.aiGatewayDisabled) { const resolvedAccountId = accountId ?? command.netlify.accounts[0]?.id; await setupAIGateway({ api, env, siteID: site.id, siteURL: siteUrl, accountID: resolvedAccountId, siteHasDeploy: !!siteInfo.published_deploy, }); const aiGatewayEnv = env.AI_GATEWAY; if (aiGatewayEnv) { const aiGatewayContext = parseAIGatewayContext(aiGatewayEnv.value); if (aiGatewayContext?.envVars) { for (const envVar of aiGatewayContext.envVars) { env[envVar.key] = { sources: ['internal'], value: aiGatewayContext.token }; env[envVar.url] = { sources: ['internal'], value: aiGatewayContext.url }; } } } } else { log(`${NETLIFYDEVLOG} AI Gateway is disabled for this account`); } injectEnvVariables(env); await execa(cmd, command.args.slice(1), { stdio: 'inherit', }); }; //# sourceMappingURL=dev-exec.js.map