UNPKG

@opengis/fastify-table

Version:

core-plugins

54 lines (50 loc) 1.41 kB
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;