UNPKG

@wbg-mde/repository

Version:

Managing all common method for file system CRUD operations.

161 lines (160 loc) 5.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const fs = require("fs"); const mkdirp = require("mkdirp"); const path = require("path"); class FileRepository { find(type, entity, callback) { try { let filePath = path.join(this.basePath, type, entity + '.json'); fs.readFile(filePath, (err, data) => { if (err) { callback({ result: 'error', messages: err }); console.log('File Repository Read Error >> ' + err); } else { callback({ result: 'ok', data: JSON.parse(data.toString()) }); } }); } catch (err) { callback({ result: 'error', messages: err }); console.log('File Repository Read Error >> ' + err); } } findFile(paths, callback) { try { let filePath = paths; if (typeof paths !== "string") { filePath = path.join(...paths); } fs.readFile(filePath, (err, data) => { if (err) { callback({ result: 'error', messages: err }); } else { callback({ result: 'ok', data: JSON.parse(data.toString()) }); } }); } catch (err) { callback({ result: 'error', messages: err }); } } create(type, entity, data, callback) { try { let filePath = path.join(this.basePath, type, entity + '.json'); let directory = path.dirname(filePath); mkdirp(directory, (err) => { if (err) { callback({ result: 'error', messages: err }); console.log('File Repository Create Error >> ' + err); } else { fs.writeFile(filePath, JSON.stringify(data), (err) => { if (err) { callback({ result: 'error', messages: err }); console.log('File Repository Create Error >> ' + err); } else { callback({ result: 'ok', data: data }); } }); } }); } catch (err) { callback({ result: 'error', messages: err }); console.log('File Repository Write Error >> ' + err); } } createTemplate(filePath, data, callback) { try { let directory = path.dirname(filePath); mkdirp(directory, (err) => { if (err) { callback({ result: 'error', messages: err }); console.log('File Repository Create Error >> ' + err); } else { fs.writeFile(filePath, JSON.stringify(data), (err) => { if (err) { callback({ result: 'error', messages: err }); console.log('File Repository Create Error >> ' + err); } else { callback({ result: 'ok', data: data }); } }); } }); } catch (err) { callback({ result: 'error', messages: err }); console.log('File Repository Write Error >> ' + err); } } delete(type, entity, callback) { try { let filePath = path.join(this.basePath, type, entity + '.json'); fs.unlink(filePath, (err) => { if (err) { callback({ result: 'error', messgae: err }); console.log('File Repository Remove Error >> ' + err); } else { callback({ result: 'ok', messgae: 'file deleted!!' }); } }); } catch (err) { callback({ result: 'error', messgae: err }); console.log('File Repository Remove Error >> ' + err); } } deleteTemplate(paths, callback) { try { let filePath = paths; if (typeof paths !== "string") { filePath = path.join(...paths); } fs.unlink(filePath, (err) => { if (err) { callback({ result: 'error', messgae: err }); console.log('File Repository Remove Error >> ' + err); } else { callback({ result: 'ok', messgae: 'file deleted!!' }); } }); } catch (err) { callback({ result: 'error', messgae: err }); console.log('File Repository Remove Error >> ' + err); } } export(type, entity, callback) { try { let filePath = path.join(this.basePath, type, entity + '.json'); fs.readFile(filePath, (err, data) => { if (err) { callback({ result: 'error', messages: err }); console.log('File Repository Export Error >> ' + err); } else { callback({ result: 'ok', data: JSON.parse(data.toString()) }); } }); } catch (err) { callback({ result: 'error', messages: err }); console.log('File Repository Export Error >> ' + err); } } writeFile(filePath, data) { let directory = path.dirname(filePath); mkdirp.sync(directory); fs.writeFileSync(filePath, data); } } exports.FileRepository = FileRepository;