@forzalabs/remora
Version:
A powerful CLI tool for seamless data translation.
44 lines (43 loc) • 1.84 kB
JavaScript
;
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;