UNPKG

@forzalabs/remora

Version:

A powerful CLI tool for seamless data translation.

44 lines (43 loc) 1.84 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const Affirm_1 = __importDefault(require("../../core/Affirm")); const SecretManager_1 = __importDefault(require("../SecretManager")); class ProducerManagerClass { constructor() { this.getColumns = (producer) => { var _a; (0, Affirm_1.default)(producer, `Invalid producer`); (0, Affirm_1.default)((_a = producer.settings.fileKey) !== null && _a !== void 0 ? _a : producer.settings.sqlTable, `Missing required file key in producer settings`); (0, Affirm_1.default)(producer.settings.fileType, `Missing required file type in producer settings`); const columns = producer.dimensions.map(x => ({ aliasInProducer: x.alias, nameInProducer: x.name, consumerAlias: null, consumerKey: null, owner: producer.name, dimension: x })); return columns; }; this.getMask = (dimension) => { if (!dimension || !dimension.mask) return null; const mask = SecretManager_1.default.replaceSecret(dimension.mask); const allowedMaskValues = [ 'hash', 'mask', 'crypt', 'random', 'seeded-random', 'none' ]; (0, Affirm_1.default)(allowedMaskValues.includes(mask), `Mask value "${mask}" in dimension "${dimension.name}" is not a valid value.`); return mask; }; } } const ProducerManager = new ProducerManagerClass(); exports.default = ProducerManager;