@@ -7,10 +7,12 @@ import { fileURLToPath } from 'url'
7
7
import { join } from 'path'
8
8
import rmtree from '@tgrajewski/rmtree'
9
9
10
+ const docFileRegex = / ^ ( r e a d m e | l i c e n s e ) / i
11
+
10
12
const copy = o => JSON . parse ( JSON . stringify ( o ) )
11
13
const vals = Object . values
12
14
13
- const { writeFile, mkdir, unlink, readdir, readFile } = fs
15
+ const { writeFile, mkdir, unlink, readdir, readFile, copyFile } = fs
14
16
15
17
class Package {
16
18
constructor ( { cwd, hooks, tests } ) {
@@ -69,6 +71,7 @@ class Package {
69
71
}
70
72
this . exports = exports
71
73
let promises = [ ...this . files . values ( ) ]
74
+ this . docFiles = new Map ( ( await this . getDocFiles ( ) ) . map ( f => [ f , toURL ( f ) ] ) )
72
75
if ( this . includeTests ) {
73
76
const testFiles = await this . getTestFiles ( )
74
77
this . tests = new Map ( testFiles . map ( k => [ k , this . testFile ( toURL ( k ) ) ] ) )
@@ -101,6 +104,10 @@ class Package {
101
104
return this . pkgjson . exports [ key ]
102
105
}
103
106
107
+ async getDocFiles ( ) {
108
+ return ( await readdir ( this . cwd ) ) . filter ( f => docFileRegex . test ( f ) )
109
+ }
110
+
104
111
async getTestFiles ( ) {
105
112
const files = await readdir ( this . cwd )
106
113
const testFiles = [ ]
@@ -156,11 +163,13 @@ class Package {
156
163
async deflate ( dist ) {
157
164
if ( ! ( dist instanceof URL ) ) dist = path ( dist )
158
165
rmtree ( fileURLToPath ( dist ) )
159
- await mkdir ( dist )
160
- await mkdir ( new URL ( dist + '/cjs' ) )
166
+ await mkdir ( new URL ( dist + '/cjs' ) , { recursive : true } )
161
167
await mkdir ( new URL ( dist + '/esm' ) )
162
168
163
169
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
+ }
164
173
if ( this . includeTests ) {
165
174
pending . push ( ...[ ...this . testFiles . values ( ) ] . map ( p => p . then ( f => f . deflate ( dist ) ) ) )
166
175
}
0 commit comments