@opengis/fastify-table
Version:
core-plugins
51 lines (50 loc) • 1.52 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;