mirror of
https://github.com/stronk-dev/RandomChad.git
synced 2025-07-05 18:35:10 +02:00
61 lines
1.5 KiB
JavaScript
61 lines
1.5 KiB
JavaScript
const { promises: fs } = require( 'fs' )
|
|
const { normalize } = require('path')
|
|
const del = require( 'del' )
|
|
const mkdirp = require( 'mkdirp' )
|
|
|
|
const wait = ms => new Promise( res => setTimeout( res, ms ) )
|
|
|
|
// Promise structure for writing a file to disk
|
|
const writefile = fs.writeFile
|
|
|
|
// Check if a resource exists
|
|
const exists = what => fs.access( what ).then( f => true ).catch( f => false )
|
|
|
|
// Delete a folder through the promise api
|
|
const delp = async what => {
|
|
|
|
const file = await exists( what )
|
|
if( file ) return del.sync( [ what ] )
|
|
|
|
}
|
|
|
|
// Make directory if it does not exist yet
|
|
const mkdir = async path => {
|
|
|
|
|
|
const file = await exists( path )
|
|
// console.log( file ? '✅ exists ' : '🛑 not exists ', path )
|
|
if( !file ) {
|
|
// console.log( '👵 creating ', path )
|
|
const folder = await mkdirp( path )
|
|
// await wait( 5000 )
|
|
// console.log( 'Creation of ', path, folder )
|
|
// await wait( 5000 )
|
|
// file = await exists( path )
|
|
}
|
|
}
|
|
|
|
// Read the contents of these files and return as an array
|
|
const readdata = ( path, filename ) => fs.readFile( normalize( `${path}/${filename}` ), 'utf8' ).then( data => ( { filename: filename, data: data } ) )
|
|
|
|
// Safely write a file by chacking if the path exists
|
|
const safewrite = async ( path, file, content ) => {
|
|
|
|
try {
|
|
path = normalize( path )
|
|
await mkdir( path )
|
|
await writefile( path + file, content )
|
|
} catch( e ) {
|
|
console.log( `Error writing ${ path }${ file }: `, e )
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = {
|
|
write: writefile,
|
|
swrite: safewrite,
|
|
del: delp,
|
|
mkdir: mkdir,
|
|
readFile: readdata,
|
|
exists: exists
|
|
} |