UNPKG

@forzalabs/remora

Version:

A powerful CLI tool for seamless data translation.

73 lines (72 loc) 3.56 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const RedshiftDriver_1 = __importDefault(require("./RedshiftDriver")); const DeltaShareDriver_1 = __importDefault(require("./DeltaShareDriver")); const HttpApiDriver_1 = __importDefault(require("./HttpApiDriver")); const LocalSourceDriver_1 = __importDefault(require("./files/LocalSourceDriver")); const LocalDestinationDriver_1 = __importDefault(require("./files/LocalDestinationDriver")); const S3SourceDriver_1 = __importDefault(require("./s3/S3SourceDriver")); const S3DestinationDriver_1 = __importDefault(require("./s3/S3DestinationDriver")); class DriverFactoryClass { constructor() { this.instantiateSource = (source) => __awaiter(this, void 0, void 0, function* () { switch (source.engine) { case 'aws-redshift': { const driver = new RedshiftDriver_1.default(); yield driver.init(source); return driver; } case 'aws-s3': { const driver = new S3SourceDriver_1.default(); yield driver.init(source); return driver; } case 'delta-share': { const driver = new DeltaShareDriver_1.default(); yield driver.init(source); return driver; } case 'local': { const driver = new LocalSourceDriver_1.default(); yield driver.init(source); return driver; } case 'http-api': { const driver = new HttpApiDriver_1.default(); yield driver.init(source); return driver; } default: throw new Error(`Invalid driver type "${source.engine}". This driver is not implemented yet`); } }); this.instantiateDestination = (source) => __awaiter(this, void 0, void 0, function* () { switch (source.engine) { case 'aws-s3': { const driver = new S3DestinationDriver_1.default(); yield driver.init(source); return driver; } case 'local': { const driver = new LocalDestinationDriver_1.default(); yield driver.init(source); return driver; } default: throw new Error(`Invalid driver type "${source.engine}". This driver is not implemented yet`); } }); } } const DriverFactory = new DriverFactoryClass(); exports.default = DriverFactory;