@amag-ch/sap_cap_common_objectstore
Version:
NodeJS library to communicate with an objectstore
31 lines (22 loc) • 806 B
JavaScript
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
}