11"use strict" ;
22
3- let { abort , repr } = require ( "../ " ) ;
4- let fs = require ( "fs" ) ;
3+ let { writeFile } = require ( "fs/promises " ) ;
4+ let { mkdirSync } = require ( "fs" ) ;
55let path = require ( "path" ) ;
6- let { promisify } = require ( "util" ) ;
76
87let KNOWN = { } ; // avoids redundant `mkdirp` invocations
98let LOCKS = { } ;
109
11- let writeFile = promisify ( fs . writeFile ) ;
12-
1310// avoids concurrent write operations and creates target directory if necessary
1411module . exports = function createFile ( filepath , contents ) {
1512 let lock = LOCKS [ filepath ] ;
@@ -21,7 +18,7 @@ module.exports = function createFile(filepath, contents) {
2118 if ( ! KNOWN [ filepath ] ) {
2219 KNOWN [ filepath ] = true ;
2320 // NB: `sync` avoids race condition for subsequent operations
24- mkdirpSync ( path . dirname ( filepath ) ) ;
21+ mkdirSync ( path . dirname ( filepath ) , { recursive : true } ) ;
2522 }
2623
2724 let prom = writeFile ( filepath , contents ) ;
@@ -30,13 +27,3 @@ module.exports = function createFile(filepath, contents) {
3027 delete LOCKS [ filepath ] ;
3128 } ) ;
3229} ;
33-
34- function mkdirpSync ( directory ) {
35- try {
36- // NB: `recursive` option was introduced in Node v10.12.0
37- fs . mkdirSync ( directory , { recursive : true } ) ;
38- } catch ( err ) {
39- abort ( `ERROR: auto-creating ${ repr ( directory ) } requires ` +
40- "Node v10.12.0 or above" ) ;
41- }
42- }
0 commit comments