netlify
Version:
Netlify command line tool
46 lines • 2.02 kB
JavaScript
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