load extensions

This commit is contained in:
Jan Prochazka
2021-02-22 18:50:54 +01:00
parent 1e540b3fe9
commit 48e3cf1be5
7 changed files with 223 additions and 4 deletions

View File

@@ -0,0 +1,34 @@
import { FileFormatDefinition } from 'dbgate-types';
const jsonlFormat = {
storageType: 'jsonl',
extension: 'jsonl',
name: 'JSON lines',
readerFunc: 'jsonLinesReader',
writerFunc: 'jsonLinesWriter',
};
export function buildFileFormats(plugins): FileFormatDefinition[] {
const res = [jsonlFormat];
for (const { content } of plugins) {
const { fileFormats } = content;
if (fileFormats) res.push(...fileFormats);
}
return res;
}
export function findFileFormat(extensions, storageType) {
return extensions.fileFormats.find(x => x.storageType == storageType);
}
export function getFileFormatDirections(format) {
if (!format) return [];
const res = [];
if (format.readerFunc) res.push('source');
if (format.writerFunc) res.push('target');
return res;
}
export function getDefaultFileFormat(extensions) {
return extensions.fileFormats.find(x => x.storageType == 'csv') || jsonlFormat;
}