@opengis/fastify-table
Version:
core-plugins
54 lines (50 loc) • 1.41 kB
JavaScript
import { readFile } from 'fs/promises';
import { createReadStream } from 'fs';
import { Readable } from 'stream';
import dataTypes from './dataTypes.js';
const handlers = {
isReadableStream: () => 'Unsupported',
isBuffer: ({ data, types }) => {
if (types.includes(dataTypes.stream)) {
return Readable.from(data);
}
return null;
},
isArray: ({ data, types }) => {
if (types.includes(dataTypes.stream)) {
return Readable.from(Buffer.from(data));
}
if (types.includes(dataTypes.buffer)) {
return Buffer.from(data, 'utf-8');
}
if (types.includes(dataTypes.path)) {
return 'Unsupported';
}
return null;
},
isPath: async ({ data, types }) => {
if (types.includes(dataTypes.stream)) {
return createReadStream(data);
}
if (types.includes(dataTypes.buffer)) {
return readFile(data);
}
if (types.includes(dataTypes.text)) {
return (await readFile(data)).toString();
}
return null;
},
isText: async ({ data, types }) => {
if (types.includes(dataTypes.stream)) {
return Readable.from(Buffer.from(data));
}
if (types.includes(dataTypes.buffer)) {
return Buffer.from(data, 'utf-8');
}
if (types.includes(dataTypes.path)) {
return 'Unsupported';
}
return null;
},
};
export default handlers;