Skip to content

Commit

Permalink
Add basic ESM support
Browse files Browse the repository at this point in the history
  • Loading branch information
c-vetter committed Dec 18, 2020
1 parent 6bffcd8 commit bfd3b25
Show file tree
Hide file tree
Showing 3 changed files with 316 additions and 0 deletions.
295 changes: 295 additions & 0 deletions lib/index.mjs
@@ -0,0 +1,295 @@
import fs from './index.js'

const {
Dir,
Dirent,
F_OK,
FileReadStream,
FileWriteStream,
R_OK,
ReadStream,
Stats,
W_OK,
WriteStream,
X_OK,
_toUnixTimestamp,
access,
accessSync,
appendFile,
appendFileSync,
chmod,
chmodSync,
chown,
chownSync,
close,
closeSync,
constants,
copy,
copyFile,
copyFileSync,
copySync,
createFile,
createFileSync,
createLink,
createLinkSync,
createReadStream,
createSymlink,
createSymlinkSync,
createWriteStream,
emptyDir,
emptyDirSync,
emptydir,
emptydirSync,
ensureDir,
ensureDirSync,
ensureFile,
ensureFileSync,
ensureLink,
ensureLinkSync,
ensureSymlink,
ensureSymlinkSync,
exists,
existsSync,
fchmod,
fchmodSync,
fchown,
fchownSync,
fdatasync,
fdatasyncSync,
fstat,
fstatSync,
fsync,
fsyncSync,
ftruncate,
ftruncateSync,
futimes,
futimesSync,
gracefulify,
lchmod,
lchmodSync,
lchown,
lchownSync,
link,
linkSync,
lstat,
lstatSync,
lutimes,
lutimesSync,
mkdir,
mkdirSync,
mkdirp,
mkdirpSync,
mkdirs,
mkdirsSync,
mkdtemp,
mkdtempSync,
move,
moveSync,
open,
openSync,
opendir,
opendirSync,
outputFile,
outputFileSync,
outputJSON,
outputJSONSync,
outputJson,
outputJsonSync,
pathExists,
pathExistsSync,
read,
readFile,
readFileSync,
readJSON,
readJSONSync,
readJson,
readJsonSync,
readSync,
readdir,
readdirSync,
readlink,
readlinkSync,
readv,
readvSync,
realpath,
realpathSync,
remove,
removeSync,
rename,
renameSync,
rm,
rmSync,
rmdir,
rmdirSync,
stat,
statSync,
symlink,
symlinkSync,
truncate,
truncateSync,
unlink,
unlinkSync,
unwatchFile,
utimes,
utimesSync,
watch,
watchFile,
write,
writeFile,
writeFileSync,
writeJSON,
writeJSONSync,
writeJson,
writeJsonSync,
writeSync,
writev,
writevSync,
promises
} = fs

export {
Dir,
Dirent,
F_OK,
FileReadStream,
FileWriteStream,
R_OK,
ReadStream,
Stats,
W_OK,
WriteStream,
X_OK,
_toUnixTimestamp,
access,
accessSync,
appendFile,
appendFileSync,
chmod,
chmodSync,
chown,
chownSync,
close,
closeSync,
constants,
copy,
copyFile,
copyFileSync,
copySync,
createFile,
createFileSync,
createLink,
createLinkSync,
createReadStream,
createSymlink,
createSymlinkSync,
createWriteStream,
emptyDir,
emptyDirSync,
emptydir,
emptydirSync,
ensureDir,
ensureDirSync,
ensureFile,
ensureFileSync,
ensureLink,
ensureLinkSync,
ensureSymlink,
ensureSymlinkSync,
exists,
existsSync,
fchmod,
fchmodSync,
fchown,
fchownSync,
fdatasync,
fdatasyncSync,
fstat,
fstatSync,
fsync,
fsyncSync,
ftruncate,
ftruncateSync,
futimes,
futimesSync,
gracefulify,
lchmod,
lchmodSync,
lchown,
lchownSync,
link,
linkSync,
lstat,
lstatSync,
lutimes,
lutimesSync,
mkdir,
mkdirSync,
mkdirp,
mkdirpSync,
mkdirs,
mkdirsSync,
mkdtemp,
mkdtempSync,
move,
moveSync,
open,
openSync,
opendir,
opendirSync,
outputFile,
outputFileSync,
outputJSON,
outputJSONSync,
outputJson,
outputJsonSync,
pathExists,
pathExistsSync,
read,
readFile,
readFileSync,
readJSON,
readJSONSync,
readJson,
readJsonSync,
readSync,
readdir,
readdirSync,
readlink,
readlinkSync,
readv,
readvSync,
realpath,
realpathSync,
remove,
removeSync,
rename,
renameSync,
rm,
rmSync,
rmdir,
rmdirSync,
stat,
statSync,
symlink,
symlinkSync,
truncate,
truncateSync,
unlink,
unlinkSync,
unwatchFile,
utimes,
utimesSync,
watch,
watchFile,
write,
writeFile,
writeFileSync,
writeJSON,
writeJSONSync,
writeJson,
writeJsonSync,
writeSync,
writev,
writevSync,
promises
}
16 changes: 16 additions & 0 deletions make-esm.js
@@ -0,0 +1,16 @@
const fs = require('./lib')

const list = [
'{',
...Object.keys(fs).sort().map(key => ` ${key},`),
' promises',
'}'
].join('\n')

fs.outputFile('./lib/index.mjs', `
import fs from './index.js'
const ${list} = fs
export ${list}
`.trimStart())
5 changes: 5 additions & 0 deletions package.json
Expand Up @@ -54,6 +54,10 @@
"standard": "^14.1.0"
},
"main": "./lib/index.js",
"exports": {
"import": "./lib/index.mjs",
"require": "./lib/index.js"
},
"files": [
"lib/",
"!lib/**/__tests__/"
Expand All @@ -63,6 +67,7 @@
"coverage": "nyc -r lcovonly npm run unit",
"coveralls": "coveralls < coverage/lcov.info",
"lint": "standard",
"make-esm": "node make-esm.js",
"test-find": "find ./lib/**/__tests__ -name *.test.js | xargs mocha",
"test": "npm run lint && npm run unit",
"unit": "node test.js"
Expand Down

0 comments on commit bfd3b25

Please sign in to comment.