Update file.js

This commit is contained in:
Aleksandr Statciuk 2023-05-11 04:12:25 +03:00
parent 34c96ae885
commit a5e1c15c1b
1 changed files with 28 additions and 9 deletions

View File

@ -6,28 +6,47 @@ module.exports.write = write
module.exports.resolve = resolve module.exports.resolve = resolve
module.exports.join = join module.exports.join = join
module.exports.dirname = dirname module.exports.dirname = dirname
module.exports.templateVariables = templateVariables
module.exports.templateFormat = templateFormat
function read(filepath) { function read(filepath) {
return fs.readFileSync(path.resolve(filepath), { encoding: 'utf-8' }) return fs.readFileSync(path.resolve(filepath), { encoding: 'utf-8' })
} }
function write(filepath, data) { function write(filepath, data) {
const dir = path.resolve(path.dirname(filepath)) const dir = path.resolve(path.dirname(filepath))
if (!fs.existsSync(dir)) { if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true }) fs.mkdirSync(dir, { recursive: true })
} }
fs.writeFileSync(path.resolve(filepath), data) fs.writeFileSync(path.resolve(filepath), data)
} }
function resolve(filepath) { function resolve(filepath) {
return path.resolve(filepath) return path.resolve(filepath)
} }
function join(path1, path2) { function join(path1, path2) {
return path.join(path1, path2) return path.join(path1, path2)
} }
function dirname(filepath) { function dirname(filepath) {
return path.dirname(filepath) return path.dirname(filepath)
}
function templateVariables(template) {
const match = template.match(/{[^}]+}/g)
return Array.isArray(match) ? match.map(s => s.substring(1, s.length - 1)) : []
}
function templateFormat(template, obj) {
let output = template
for (let key in obj) {
const regex = new RegExp(`{${key}}`, 'g')
const value = obj[key] || undefined
output = output.replace(regex, value)
}
return output
} }