envilder
Version:
A CLI that securely centralizes your environment variables from AWS SSM as a single source of truth
41 lines • 1.33 kB
JavaScript
import { SSM } from '@aws-sdk/client-ssm';
import { fromIni } from '@aws-sdk/credential-providers';
import { Envilder } from '../application/EnvilderHandler.js';
import { AwsSsmSecretProvider } from '../infrastructure/AwsSsmSecretProvider.js';
import { EnvFileManager } from '../infrastructure/EnvFileManager.js';
export class EnvilderBuilder {
static build() {
return new EnvilderBuilder();
}
withDefaultFileManager() {
this.fileManager = new EnvFileManager();
return this;
}
withEnvFileManager(fileManager) {
this.fileManager = fileManager;
return this;
}
withProvider(provider) {
this.provider = provider;
return this;
}
withAwsProvider(profile) {
const ssm = profile == null
? new SSM()
: new SSM({
credentials: fromIni({ profile: profile }),
});
this.provider = new AwsSsmSecretProvider(ssm);
return this;
}
create() {
if (!this.provider) {
throw new Error('Secret provider must be specified');
}
if (!this.fileManager) {
throw new Error('Env file manager must be specified');
}
return new Envilder(this.provider, this.fileManager);
}
}
//# sourceMappingURL=EnvilderBuilder.js.map