serverless/lib/utils/fs/write-file-sync.js
2024-05-29 11:51:04 -04:00

30 lines
754 B
JavaScript

import fse from 'fs-extra'
import path from 'path'
import jc from 'json-cycle'
import yaml from 'js-yaml'
function writeFileSync(filePath, conts, cycles) {
let contents = conts || ''
fse.mkdirsSync(path.dirname(filePath))
if (filePath.indexOf('.json') !== -1 && typeof contents !== 'string') {
if (cycles) {
contents = jc.stringify(contents, null, 2)
} else {
contents = JSON.stringify(contents, null, 2)
}
}
const yamlFileExists = filePath.indexOf('.yaml') !== -1
const ymlFileExists = filePath.indexOf('.yml') !== -1
if ((yamlFileExists || ymlFileExists) && typeof contents !== 'string') {
contents = yaml.dump(contents)
}
return fse.writeFileSync(filePath, contents)
}
export default writeFileSync