Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
inputs.cors || null,
inputs.protocol
)
// Build environment variables
if (inputs.env && Object.keys(inputs.env).length && inputs.code.root) {
this.context.status(`Bundling environment variables`)
this.context.debug(`Bundling website environment variables.`)
let script = 'window.env = {};\n'
inputs.env = inputs.env || {}
for (const e in inputs.env) {
// eslint-disable-line
script += `window.env.${e} = ${JSON.stringify(inputs.env[e])};\n` // eslint-disable-line
}
const envFilePath = path.join(inputs.code.root, 'env.js')
await utils.writeFile(envFilePath, script)
this.context.debug(`Website env written to file ${envFilePath}.`)
}
// If a hook is provided, build the website
if (inputs.code.hook) {
this.context.status('Building assets')
this.context.debug(`Running ${inputs.code.hook} in ${inputs.code.root}.`)
const options = { cwd: inputs.code.root }
try {
await exec(inputs.code.hook, options)
} catch (err) {
console.error(err.stderr) // eslint-disable-line
throw new Error(
`Failed building website via "${inputs.code.hook}" due to the following error: "${err.stderr}"`
)
this.context.debug(`Configuring bucket ${inputs.bucketName} for website hosting.`)
await configureBucketForHosting(s3, inputs.bucketName)
// Build environment variables
inputs.env = inputs.env || {}
if (Object.keys(inputs.env).length && inputs.code.root) {
this.context.status(`Bundling environment variables`)
this.context.debug(`Bundling website environment variables.`)
let script = 'window.env = {};\n'
for (const e in inputs.env) {
// eslint-disable-line
script += `window.env.${e} = ${JSON.stringify(inputs.env[e])};\n` // eslint-disable-line
}
const envFilePath = path.join(inputs.code.root, 'env.js')
await utils.writeFile(envFilePath, script)
this.context.debug(`Website env written to file ${envFilePath}.`)
}
// If a hook is provided, build the website
if (inputs.code.hook) {
this.context.status('Building assets')
this.context.debug(`Running ${inputs.code.hook} in ${inputs.code.root}.`)
const options = {
cwd: inputs.code.root,
// Merge input & process env variables to be available for hooks execution
env: Object.assign(process.env, inputs.env),
}
try {
await exec(inputs.code.hook, options)