in lambda/create-config.ts [17:74]
public async handle(event: any): Promise<any> {
try {
console.info({ event });
const requestType = event.RequestType;
const s3BucketName = util.getEnv('S3_BUCKET_NAME');
let contents = '';
if (requestType === 'Create' || requestType === 'Update') {
const configFileName = 'config.js';
const apiDomain = util.getEnv('API_DOMAIN');
const cognitoDomain = util.getEnv('COGNITO_DOMAIN_PREFIX');
const region = util.getEnv('COGNITO_REGION');
const appClient = util.getEnv('COGNITO_APP_CLIENT_ID');
const redirect = util.getEnv('COGNITO_REDIRECT_URI');
const facebookAppId = util.getEnv('FACEBOOK_APP_ID');
const facebookVersion = util.getEnv('FACEBOOK_VERSION');
contents += 'window.FacebookExampleConfig = {};\n';
contents += `window.FacebookExampleConfig.apiUrl = "https://${apiDomain}";\n`;
contents += `window.FacebookExampleConfig.federatedLogin = `;
contents += `"https://${cognitoDomain}.auth.${region}.amazoncognito.com/`;
contents += `login?response_type=code&client_id=${appClient}&redirect_uri=${redirect}";\n`;
contents += `window.FacebookExampleConfig.federatedLogout = `;
contents += `"https://${cognitoDomain}.auth.${region}.amazoncognito.com/`;
contents += `logout?response_type=code&client_id=${appClient}&redirect_uri=${redirect}";\n`;
contents += `window.FacebookExampleConfig.facebookAppId = "${facebookAppId}"\n`;
contents += `window.FacebookExampleConfig.facebookVersion = "${facebookVersion}"\n`;
// Write the file to S3
await s3.putObject({
Bucket: s3BucketName,
Key: configFileName,
Body: contents
}).promise();
console.log('Wrote config.js to ' + s3BucketName);
} else {
// TODO - Do we care about other request types?
console.log('Received request type: ' + requestType);
}
return {
PhysicalResourceId: s3BucketName,
Data: {contents}
};
} catch (ex) {
console.error(ex);
throw ex;
}
}