@studion/infra-code-blocks
Version:
Studion common infra components
35 lines (34 loc) • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.UpstashRedis = void 0;
const pulumi = require("@pulumi/pulumi");
const upstash = require("@upstash/pulumi");
const password_1 = require("../password");
const merge_with_defaults_1 = require("../../shared/merge-with-defaults");
const defaults = {
region: 'global',
primaryRegion: 'us-east-1',
};
class UpstashRedis extends pulumi.ComponentResource {
name;
instance;
password;
constructor(name, args, opts = {}) {
super('studion:redis:UpstashRedis', name, {}, {
...opts,
aliases: [...(opts.aliases || []), { type: 'studion:Redis' }],
});
const argsWithDefaults = (0, merge_with_defaults_1.mergeWithDefaults)(defaults, args);
this.name = name;
this.instance = new upstash.RedisDatabase(`${this.name}-database`, {
databaseName: argsWithDefaults.dbName,
region: argsWithDefaults.region,
primaryRegion: argsWithDefaults.primaryRegion,
eviction: true,
tls: true,
}, { parent: this });
this.password = new password_1.Password(`${this.name}-database-password`, { value: this.instance.password }, { parent: this });
this.registerOutputs();
}
}
exports.UpstashRedis = UpstashRedis;