UNPKG

terrac

Version:

A minimal private module registry for Terraform and OpenTofu

29 lines (28 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BackendFactory = exports.configSchema = void 0; const Joi = require("joi"); const s3_1 = require("./s3"); const local_1 = require("./local"); const gcp_1 = require("./gcp"); const azure_1 = require("./azure"); exports.configSchema = Joi.alternatives(s3_1.configSchemaS3, local_1.configSchemaLocal, gcp_1.configSchemaGCP, azure_1.configSchemaAzure); class BackendFactory { // eslint-disable-next-line @typescript-eslint/no-empty-function, no-useless-constructor constructor() { } static create(config) { switch (config.type) { case 's3': return new s3_1.BackendS3(config); case 'local': return new local_1.BackendLocal(config); case 'gcp': return new gcp_1.BackendGCP(config); case 'azure': return new azure_1.BackendAzure(config); default: throw new Error('Unrecongized backend type'); } } } exports.BackendFactory = BackendFactory;