UNPKG

@amag-ch/sap_cap_common_objectstore

Version:

NodeJS library to communicate with an objectstore

31 lines (22 loc) 806 B
const fs = require('node:fs/promises') const { createReadStream } = require('node:fs') let sourceFolder const register = (folder) => { sourceFolder = folder cds.on('connect', (srv) => (srv?.name === 'objectstore') ? cds.spawn(run) : Promise.resolve()) } const getSourceFilenames = async () => { const entries = await fs.readdir(sourceFolder, { withFileTypes: true }) return entries.filter(entry => entry.isFile()).map(({ name }) => name ) } const run = async() => { const filenames = await getSourceFilenames() if (!filenames?.length) return const objectstore = await cds.connect.to('objectstore') await Promise.all(filenames.map(name => { objectstore.addToStore(name, createReadStream(`${sourceFolder}/${name}`)) })) } module.exports = { register }