imp exp configurator

This commit is contained in:
Jan Prochazka
2020-06-18 11:42:02 +02:00
parent a9ce93cd67
commit 3f40996d2d
4 changed files with 111 additions and 27 deletions

View File

@@ -1,3 +1,5 @@
import { DatabaseInfo, DatabaseInfoObjects } from '@dbgate/types';
export function fullNameFromString(name) {
const m = name.match(/\[([^\]]+)\]\.\[([^\]]+)\]/);
if (m) {
@@ -23,3 +25,23 @@ export function quoteFullName(dialect, { schemaName, pureName }) {
if (schemaName) return `${dialect.quoteIdentifier(schemaName)}.${dialect.quoteIdentifier(pureName)}`;
return `${dialect.quoteIdentifier(pureName)}`;
}
export function equalStringLike(s1, s2) {
return (s1 || '').toLowerCase().trim() == (s2 || '').toLowerCase().trim();
}
export function findObjectLike(
{ pureName, schemaName },
dbinfo: DatabaseInfo,
objectTypeField: keyof DatabaseInfoObjects
) {
if (!dbinfo) return null;
if (schemaName) {
// @ts-ignore
return dbinfo[objectTypeField].find(
(x) => equalStringLike(x.pureName, pureName) && equalStringLike(x.schemaName, schemaName)
);
}
// @ts-ignore
return dbinfo[objectTypeField].find((x) => equalStringLike(x.pureName, pureName));
}