UNPKG

cdk-turborepo-remote-cache

Version:
48 lines 7.32 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.TurborepoRemoteCache = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const aws_cdk_lib_1 = require("aws-cdk-lib"); const constructs_1 = require("constructs"); const path = require("node:path"); class TurborepoRemoteCache extends constructs_1.Construct { constructor(scope, id, props) { super(scope, id); this.bucket = props.bucket ?? new aws_cdk_lib_1.aws_s3.Bucket(this, 'Bucket', {}); this.lambdaHandler = new aws_cdk_lib_1.aws_lambda.Function(this, 'Handler', { code: aws_cdk_lib_1.aws_lambda.Code.fromAsset(path.join(__dirname, '../lib/lambda')), description: 'API Handler for Turborepo Remote Cache', environment: { STORAGE_PATH: this.bucket.bucketName, STORAGE_PROVIDER: 's3', TURBO_TOKEN: props.secretToken, }, handler: 'index.handler', memorySize: 512, runtime: new aws_cdk_lib_1.aws_lambda.Runtime( // 'nodejs18.x', 'nodejs16.x', aws_cdk_lib_1.aws_lambda.RuntimeFamily.NODEJS), timeout: aws_cdk_lib_1.Duration.seconds(10), }); this.lambdaHandler.addToRolePolicy(new aws_cdk_lib_1.aws_iam.PolicyStatement({ actions: ['s3:*'], resources: [this.bucket.bucketArn, `${this.bucket.bucketArn}/*`], })); this.functionUrl = this.lambdaHandler.addFunctionUrl({ authType: aws_cdk_lib_1.aws_lambda.FunctionUrlAuthType.NONE, cors: { allowedHeaders: ['*'], allowedMethods: [aws_cdk_lib_1.aws_lambda.HttpMethod.ALL], allowedOrigins: ['*'], }, }); new aws_cdk_lib_1.CfnOutput(this, 'CacheUrl', { value: `${aws_cdk_lib_1.Fn.select(0, aws_cdk_lib_1.Fn.split('on.aws/', this.functionUrl.url))}on.aws`, }); } } _a = JSII_RTTI_SYMBOL_1; TurborepoRemoteCache[_a] = { fqn: "cdk-turborepo-remote-cache.TurborepoRemoteCache", version: "0.0.2" }; exports.TurborepoRemoteCache = TurborepoRemoteCache; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSw2Q0FPb0I7QUFDcEIsMkNBQXNDO0FBQ3RDLGtDQUFpQztBQWVqQyxNQUFhLG9CQUFxQixTQUFRLHNCQUFTO0lBZ0JqRCxZQUNFLEtBQVksRUFDWixFQUFVLEVBQ1YsS0FBZ0M7UUFFaEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxvQkFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRW5FLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSx3QkFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQzVELElBQUksRUFBRSx3QkFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFDdEUsV0FBVyxFQUFFLHdDQUF3QztZQUNyRCxXQUFXLEVBQUU7Z0JBQ1gsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVTtnQkFDcEMsZ0JBQWdCLEVBQUUsSUFBSTtnQkFDdEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO2FBQy9CO1lBQ0QsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLEdBQUc7WUFDZixPQUFPLEVBQUUsSUFBSSx3QkFBVSxDQUFDLE9BQU87WUFDN0IsZ0JBQWdCO1lBQ2hCLFlBQVksRUFDWix3QkFBVSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQ2hDO1lBQ0QsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztTQUM5QixDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FDaEMsSUFBSSxxQkFBTyxDQUFDLGVBQWUsQ0FBQztZQUMxQixPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDakIsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxDQUFDO1NBQ2pFLENBQUMsQ0FDSCxDQUFBO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztZQUNuRCxRQUFRLEVBQUUsd0JBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJO1lBQzdDLElBQUksRUFBRTtnQkFDSixjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUM7Z0JBQ3JCLGNBQWMsRUFBRSxDQUFDLHdCQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztnQkFDM0MsY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDO2FBQ3RCO1NBQ0YsQ0FBQyxDQUFBO1FBRUYsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDOUIsS0FBSyxFQUFFLEdBQUcsZ0JBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLGdCQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVE7U0FDMUUsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7OztBQTlEVSxvREFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInXG5pbXBvcnQge1xuICBhd3NfaWFtLFxuICBhd3NfbGFtYmRhLFxuICBhd3NfczMsXG4gIENmbk91dHB1dCxcbiAgRHVyYXRpb24sXG4gIEZuLFxufSBmcm9tICdhd3MtY2RrLWxpYidcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ25vZGU6cGF0aCdcblxuZXhwb3J0IGludGVyZmFjZSBUdXJib3JlcG9SZW1vdGVDYWNoZVByb3BzIHtcbiAgLyoqXG4gICAqIEFuIGV4aXN0aW5nIGJ1Y2tldCB0byB1c2UgZm9yIGhvc3RpbmcgdGhlIGNhY2hlLlxuICAgKiBAZGVmYXVsdCBjcmVhdGUgYSBuZXcgYnVja2V0XG4gICAqL1xuICByZWFkb25seSBidWNrZXQ/OiBhd3NfczMuQnVja2V0XG5cbiAgLyoqXG4gICAqIFRoZSBzZWNyZXQgdG9rZW4gdG8gdXNlIGZvciBhdXRoZW50aWNhdGluZyByZXF1ZXN0cy5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldFRva2VuOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNsYXNzIFR1cmJvcmVwb1JlbW90ZUNhY2hlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSBsYW1iZGEgaGFuZGxlciBmdW5jdGlvbi5cbiAgICovXG4gIHB1YmxpYyBsYW1iZGFIYW5kbGVyOiBhd3NfbGFtYmRhLkZ1bmN0aW9uXG5cbiAgLyoqXG4gICAqIFRoZSBidWNrZXQgdXNlZCBmb3IgaG9zdGluZyB0aGUgY2FjaGUuXG4gICAqL1xuICBwdWJsaWMgYnVja2V0OiBhd3NfczMuQnVja2V0XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgb2YgdGhlIGxhbWJkYSBmdW5jdGlvbi5cbiAgICovXG4gIHB1YmxpYyBmdW5jdGlvblVybDogYXdzX2xhbWJkYS5GdW5jdGlvblVybFxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogU3RhY2ssXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogVHVyYm9yZXBvUmVtb3RlQ2FjaGVQcm9wc1xuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICB0aGlzLmJ1Y2tldCA9IHByb3BzLmJ1Y2tldCA/PyBuZXcgYXdzX3MzLkJ1Y2tldCh0aGlzLCAnQnVja2V0Jywge30pXG5cbiAgICB0aGlzLmxhbWJkYUhhbmRsZXIgPSBuZXcgYXdzX2xhbWJkYS5GdW5jdGlvbih0aGlzLCAnSGFuZGxlcicsIHtcbiAgICAgIGNvZGU6IGF3c19sYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL2xpYi9sYW1iZGEnKSksXG4gICAgICBkZXNjcmlwdGlvbjogJ0FQSSBIYW5kbGVyIGZvciBUdXJib3JlcG8gUmVtb3RlIENhY2hlJyxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFNUT1JBR0VfUEFUSDogdGhpcy5idWNrZXQuYnVja2V0TmFtZSxcbiAgICAgICAgU1RPUkFHRV9QUk9WSURFUjogJ3MzJyxcbiAgICAgICAgVFVSQk9fVE9LRU46IHByb3BzLnNlY3JldFRva2VuLFxuICAgICAgfSxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgIG1lbW9yeVNpemU6IDUxMixcbiAgICAgIHJ1bnRpbWU6IG5ldyBhd3NfbGFtYmRhLlJ1bnRpbWUoXG4gICAgICAgIC8vICdub2RlanMxOC54JyxcbiAgICAgICAgJ25vZGVqczE2LngnLFxuICAgICAgICBhd3NfbGFtYmRhLlJ1bnRpbWVGYW1pbHkuTk9ERUpTXG4gICAgICApLFxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygxMCksXG4gICAgfSlcblxuICAgIHRoaXMubGFtYmRhSGFuZGxlci5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgYXdzX2lhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbJ3MzOionXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbdGhpcy5idWNrZXQuYnVja2V0QXJuLCBgJHt0aGlzLmJ1Y2tldC5idWNrZXRBcm59LypgXSxcbiAgICAgIH0pXG4gICAgKVxuXG4gICAgdGhpcy5mdW5jdGlvblVybCA9IHRoaXMubGFtYmRhSGFuZGxlci5hZGRGdW5jdGlvblVybCh7XG4gICAgICBhdXRoVHlwZTogYXdzX2xhbWJkYS5GdW5jdGlvblVybEF1dGhUeXBlLk5PTkUsXG4gICAgICBjb3JzOiB7XG4gICAgICAgIGFsbG93ZWRIZWFkZXJzOiBbJyonXSxcbiAgICAgICAgYWxsb3dlZE1ldGhvZHM6IFthd3NfbGFtYmRhLkh0dHBNZXRob2QuQUxMXSxcbiAgICAgICAgYWxsb3dlZE9yaWdpbnM6IFsnKiddLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCAnQ2FjaGVVcmwnLCB7XG4gICAgICB2YWx1ZTogYCR7Rm4uc2VsZWN0KDAsIEZuLnNwbGl0KCdvbi5hd3MvJywgdGhpcy5mdW5jdGlvblVybC51cmwpKX1vbi5hd3NgLFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==