@@ -21,13 +21,44 @@ const extractSass = new ExtractTextPlugin({
21
21
allChunks : true
22
22
} ) ;
23
23
24
+ const ENTRYPOINTS = {
25
+ OneNotePicker : `exports/oneNotePicker.Index` ,
26
+ OneNoteApiDataProvider : `exports/oneNoteApiDataProvider.Index` ,
27
+ OneNoteItemUtils : `exports/oneNoteItemUtils.Index` ,
28
+ }
29
+
30
+ function generateWebpackEntries ( ) {
31
+ const entries = { } ;
32
+
33
+ for ( const key of Object . keys ( ENTRYPOINTS ) ) {
34
+ entries [ key ] = `${ path . resolve ( __dirname ) } /${ ENTRYPOINTS [ key ] } ` ;
35
+ }
36
+
37
+ return entries ;
38
+ }
39
+
40
+ function generateDtsBundlePlugins ( ) {
41
+ const entries = [ ] ;
42
+
43
+ for ( const key of Object . keys ( ENTRYPOINTS ) ) {
44
+ const plugin = new DtsBundlePlugin ( {
45
+ name : key ,
46
+ main : `${ path . resolve ( __dirname ) } /dist/types/${ ENTRYPOINTS [ key ] } .d.ts` ,
47
+ out : `${ path . resolve ( __dirname ) } /dist/${ key } .d.ts` ,
48
+ removeSource : false ,
49
+ outputAsModuleFolder : true ,
50
+ emitOnIncludedFileNotFound : true ,
51
+ headerText : `TypeScript Definition for ${ key } `
52
+ } ) ;
53
+
54
+ entries . push ( plugin )
55
+ }
56
+
57
+ return entries ;
58
+ }
59
+
24
60
const base = {
25
- entry : {
26
- sample : './sampleApp/sample' ,
27
- OneNotePicker : './src/oneNotePicker' ,
28
- OneNoteApiDataProvider : './src/providers/oneNoteApiDataProvider' ,
29
- OneNoteItemUtils : './src/oneNoteDataStructures/oneNoteItemUtils'
30
- } ,
61
+ entry : generateWebpackEntries ( ) ,
31
62
output : {
32
63
path : OUT_DIR ,
33
64
publicPath : '/dist/' ,
@@ -136,31 +167,7 @@ const prod = {
136
167
'NODE_ENV' : JSON . stringify ( 'production' )
137
168
}
138
169
} ) ,
139
- new DtsBundlePlugin ( {
140
- name : 'OneNotePicker' ,
141
- main : `${ path . resolve ( __dirname ) } /dist/types/src/OneNotePicker.d.ts` ,
142
- out : `${ path . resolve ( __dirname ) } /dist/OneNotePicker.d.ts` ,
143
- removeSource : false ,
144
- outputAsModuleFolder : true ,
145
- headerText : "TypeScript Definition for OneNotePicker"
146
- } ) ,
147
- new DtsBundlePlugin ( {
148
- name : 'OneNotePickerApiDataProvider' ,
149
- main : `${ path . resolve ( __dirname ) } /dist/types/src/providers/OneNoteApiDataProvider.d.ts` ,
150
- out : `${ path . resolve ( __dirname ) } /dist/OneNoteApiDataProvider.d.ts` ,
151
- removeSource : false ,
152
- outputAsModuleFolder : true ,
153
- headerText : "TypeScript Definition for OneNoteApiDataProvider"
154
- } ) ,
155
- new DtsBundlePlugin ( {
156
- name : 'OneNoteItemUtils' ,
157
- main : `${ path . resolve ( __dirname ) } /dist/types/src/oneNoteDataStructures/OneNoteItemUtils.d.ts` ,
158
- out : `${ path . resolve ( __dirname ) } /dist/OneNoteItemUtils.d.ts` ,
159
- removeSource : false ,
160
- outputAsModuleFolder : true ,
161
- emitOnIncludedFileNotFound : true ,
162
- headerText : "TypeScript Definition for OneNoteItemUtils"
163
- } )
170
+ ...generateDtsBundlePlugins ( )
164
171
] ,
165
172
externals : {
166
173
'react' : { root : 'React' , amd : 'react' , commonjs2 : 'react' , commonjs : 'react' } ,
0 commit comments