dbgate-api
Version:
Allows run DbGate data-manipulation scripts.
33 lines (29 loc) • 908 B
JavaScript
function replaceInText(text, replacements) {
let result = text;
for (const key of Object.keys(replacements)) {
result = result.split(key).join(replacements[key]);
}
return result;
}
function replaceInCollection(collection, replacements) {
if (!collection) return collection;
return collection.map(item => {
if (item.createSql) {
return {
...item,
createSql: replaceInText(item.createSql, replacements),
};
}
return item;
});
}
const sqlTextReplacementTransform = replacements => database => {
return {
...database,
views: replaceInCollection(database.views, replacements),
matviews: replaceInCollection(database.matviews, replacements),
procedures: replaceInCollection(database.procedures, replacements),
functions: replaceInCollection(database.functions, replacements),
};
};
module.exports = sqlTextReplacementTransform;