1 | 'use strict'
|
2 |
|
3 | const debug = require('debug')('lint-staged:file')
|
4 | const fs = require('fs')
|
5 | const { promisify } = require('util')
|
6 |
|
7 | const fsReadFile = promisify(fs.readFile)
|
8 | const fsUnlink = promisify(fs.unlink)
|
9 | const fsWriteFile = promisify(fs.writeFile)
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 | const readFile = async (filename, ignoreENOENT = true) => {
|
18 | debug('Reading file `%s`', filename)
|
19 | try {
|
20 | return await fsReadFile(filename)
|
21 | } catch (error) {
|
22 | if (ignoreENOENT && error.code === 'ENOENT') {
|
23 | debug("File `%s` doesn't exist, ignoring...", filename)
|
24 | return null
|
25 | } else {
|
26 | throw error
|
27 | }
|
28 | }
|
29 | }
|
30 |
|
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 | const unlink = async (filename, ignoreENOENT = true) => {
|
37 | debug('Removing file `%s`', filename)
|
38 | try {
|
39 | await fsUnlink(filename)
|
40 | } catch (error) {
|
41 | if (ignoreENOENT && error.code === 'ENOENT') {
|
42 | debug("File `%s` doesn't exist, ignoring...", filename)
|
43 | } else {
|
44 | throw error
|
45 | }
|
46 | }
|
47 | }
|
48 |
|
49 |
|
50 |
|
51 |
|
52 |
|
53 |
|
54 | const writeFile = async (filename, buffer) => {
|
55 | debug('Writing file `%s`', filename)
|
56 | await fsWriteFile(filename, buffer)
|
57 | }
|
58 |
|
59 | module.exports = {
|
60 | readFile,
|
61 | unlink,
|
62 | writeFile,
|
63 | }
|