Skip to content

Commit 2fca839

Browse files
authored
feat: include doc files in dist output (mikeal#4)
Ref: multiformats/js-multiformats#55
1 parent 9d0410a commit 2fca839

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

src/package/index.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ import { fileURLToPath } from 'url'
77
import { join } from 'path'
88
import rmtree from '@tgrajewski/rmtree'
99

10+
const docFileRegex = /^(readme|license)/i
11+
1012
const copy = o => JSON.parse(JSON.stringify(o))
1113
const vals = Object.values
1214

13-
const { writeFile, mkdir, unlink, readdir, readFile } = fs
15+
const { writeFile, mkdir, unlink, readdir, readFile, copyFile } = fs
1416

1517
class Package {
1618
constructor ({ cwd, hooks, tests }) {
@@ -69,6 +71,7 @@ class Package {
6971
}
7072
this.exports = exports
7173
let promises = [...this.files.values()]
74+
this.docFiles = new Map((await this.getDocFiles()).map(f => [f, toURL(f)]))
7275
if (this.includeTests) {
7376
const testFiles = await this.getTestFiles()
7477
this.tests = new Map(testFiles.map(k => [k, this.testFile(toURL(k))]))
@@ -101,6 +104,10 @@ class Package {
101104
return this.pkgjson.exports[key]
102105
}
103106

107+
async getDocFiles () {
108+
return (await readdir(this.cwd)).filter(f => docFileRegex.test(f))
109+
}
110+
104111
async getTestFiles () {
105112
const files = await readdir(this.cwd)
106113
const testFiles = []
@@ -156,11 +163,13 @@ class Package {
156163
async deflate (dist) {
157164
if (!(dist instanceof URL)) dist = path(dist)
158165
rmtree(fileURLToPath(dist))
159-
await mkdir(dist)
160-
await mkdir(new URL(dist + '/cjs'))
166+
await mkdir(new URL(dist + '/cjs'), { recursive: true })
161167
await mkdir(new URL(dist + '/esm'))
162168

163169
const pending = [...this.files.values()].map(p => p.then(f => f.deflate(dist)))
170+
for (const [f, url] of this.docFiles) {
171+
pending.push(copyFile(url, new URL(`${dist}/${f}`)))
172+
}
164173
if (this.includeTests) {
165174
pending.push(...[...this.testFiles.values()].map(p => p.then(f => f.deflate(dist))))
166175
}

0 commit comments

Comments
 (0)