1
1
const build = require ( 'extra-build' ) ;
2
2
3
3
const owner = 'nodef' ;
4
+ const repo = build . readMetadata ( '.' ) . name ;
4
5
const srcts = 'index.ts' ;
5
6
const LOCATIONS = [
6
7
'src/index.ts' ,
@@ -17,8 +18,8 @@ function keywords(ds) {
17
18
}
18
19
19
20
20
- // Publish root package to NPM, GitHub.
21
- function publishRoot ( ds , ver , typ ) {
21
+ // Publish a root package to NPM, GitHub.
22
+ function publishRootPackage ( ds , ver , typ ) {
22
23
var _package = build . readDocument ( 'package.json' ) ;
23
24
var _readme = build . readDocument ( 'README.md' ) ;
24
25
var m = build . readMetadata ( '.' ) ;
@@ -27,8 +28,8 @@ function publishRoot(ds, ver, typ) {
27
28
m . keywords = keywords ( ds ) ;
28
29
if ( typ ) {
29
30
m . name = `${ m . name } .${ typ } ` ;
30
- m . description . replace ( / \. $ / , `{${ typ } }.` ) ;
31
- md . replace ( / ( u n p k g \. c o m \/ ) ( \S + ?) ( \/ \) ) / , `$1$2.${ typ } $3` ) ;
31
+ m . description = m . description . replace ( / \. $ / , `{${ typ } }.` ) ;
32
+ md = md . replace ( / ( u n p k g \. c o m \/ ) ( \S + ?) ( \/ \) ) / , `$1$2.${ typ } $3` ) ;
32
33
}
33
34
build . writeMetadata ( '.' , m ) ;
34
35
build . writeFileText ( 'README.md' , md ) ;
@@ -40,27 +41,49 @@ function publishRoot(ds, ver, typ) {
40
41
}
41
42
42
43
43
- // Deploy root package to NPM, GitHub.
44
- function deployRoot ( ds , ver ) {
44
+ // Transform JSDoc in .d.ts file.
45
+ function transformJsdoc ( x , dm ) {
46
+ if ( ! dm . has ( x . name ) ) return null ;
47
+ var link = `[📘](https://github.com/${ owner } /${ repo } /wiki/${ x . name } )` ;
48
+ x . description = x . description . trim ( ) + '\n' + link ;
49
+ return x ;
50
+ }
51
+
52
+
53
+ // Bundle script for test or publish.
54
+ function bundleScript ( ds ) {
55
+ var dm = new Map ( ds . map ( d => [ d . name , d ] ) ) ;
56
+ build . exec ( `tsc` ) ;
57
+ build . bundleScript ( `.build/${ srcts } ` ) ;
58
+ build . jsdocifyScript ( 'index.d.ts' , 'index.d.ts' , x => transformJsdoc ( x , dm ) ) ;
59
+ }
60
+
61
+
62
+ // Publish root packages to NPM, GitHub.
63
+ function publishRootPackages ( ds , ver ) {
45
64
var m = build . readMetadata ( '.' ) ;
46
65
var sym = build . symbolname ( m . name ) ;
47
- build . bundleScript ( `.build/ ${ srcts } ` ) ;
48
- publishRoot ( ds , ver , '' ) ;
66
+ bundleScript ( ds ) ;
67
+ publishRootPackage ( ds , ver , '' ) ;
49
68
build . webifyScript ( 'index.mjs' , 'index.mjs' , { format : 'esm' } ) ;
50
69
build . webifyScript ( 'index.js' , 'index.js' , { format : 'cjs' , symbol : sym } ) ;
51
- publishRoot ( ds , ver , 'web' ) ;
70
+ publishRootPackage ( ds , ver , 'web' ) ;
52
71
}
53
72
54
73
55
- // Deploy root, sub packages to NPM, GitHub.
56
- function deployAll ( ds ) {
57
- var m = build . readMetadata ( '.' ) ;
58
- var ver = build . nextUnpublishedVersion ( m . name , m . version ) ;
59
- build . exec ( `tsc` ) ;
74
+ // Publish docs.
75
+ function publishDocs ( ds ) {
60
76
build . updateGithubRepoDetails ( { topics : keywords ( ds ) } ) ;
61
77
build . generateDocs ( `src/${ srcts } ` ) ;
62
78
build . publishDocs ( ) ;
63
- deployRoot ( ds , ver ) ;
79
+ }
80
+
81
+
82
+ // Pushish root, sub packages to NPM, GitHub.
83
+ function publishPackages ( ds ) {
84
+ var m = build . readMetadata ( '.' ) ;
85
+ var ver = build . nextUnpublishedVersion ( m . name , m . version ) ;
86
+ publishRootPackages ( ds , ver ) ;
64
87
}
65
88
66
89
@@ -108,12 +131,14 @@ function updateReadme(ds) {
108
131
}
109
132
110
133
134
+ // Finally.
111
135
function main ( a ) {
112
136
var p = build . loadDocs ( [ `src/${ srcts } ` ] ) ;
113
137
var ds = p . children . map ( build . docsDetails ) ;
114
- if ( a [ 2 ] === 'deploy' ) deployAll ( ds ) ;
115
- else if ( a [ 2 ] === 'wiki' ) generateWiki ( ds ) ;
116
- else if ( a [ 2 ] === 'readme' ) updateReadme ( ds ) ;
117
- else build . bundleScript ( `.build/${ srcts } ` ) ;
138
+ if ( a [ 2 ] === 'wiki' ) generateWiki ( ds ) ;
139
+ else if ( a [ 2 ] === 'readme' ) updateReadme ( ds ) ;
140
+ else if ( a [ 2 ] === 'publish-docs' ) publishDocs ( ds ) ;
141
+ else if ( a [ 2 ] === 'publish-packages' ) publishPackages ( ds ) ;
142
+ else bundleScript ( ds ) ;
118
143
}
119
144
main ( process . argv ) ;
0 commit comments