15
15
* limitations under the License.
16
16
*/
17
17
18
- import typescript from 'rollup-plugin-typescript2' ;
18
+ import typescriptPlugin from 'rollup-plugin-typescript2' ;
19
19
import replace from 'rollup-plugin-replace' ;
20
+ import typescript from 'typescript' ;
20
21
import pkg from './package.json' ;
21
22
22
23
import firebasePkg from '../firebase/package.json' ;
23
24
24
- const plugins = [
25
- typescript ( {
26
- typescript : require ( 'typescript' )
25
+ const deps = Object . keys (
26
+ Object . assign ( { } , pkg . peerDependencies , pkg . dependencies )
27
+ ) ;
28
+
29
+ /**
30
+ * ES5 Builds
31
+ */
32
+ const es5BuildPlugins = [
33
+ typescriptPlugin ( {
34
+ typescript
27
35
} ) ,
28
36
replace ( {
29
37
delimiters : [ '${' , '}' ] ,
@@ -33,18 +41,14 @@ const plugins = [
33
41
} )
34
42
] ;
35
43
36
- const deps = Object . keys (
37
- Object . assign ( { } , pkg . peerDependencies , pkg . dependencies )
38
- ) ;
39
-
40
- export default [
44
+ const es5Builds = [
41
45
{
42
46
input : 'index.ts' ,
43
47
output : [
44
48
{ file : pkg . browser , format : 'cjs' , sourcemap : true } ,
45
49
{ file : pkg . module , format : 'es' , sourcemap : true }
46
50
] ,
47
- plugins,
51
+ plugins : es5BuildPlugins ,
48
52
external : id => deps . some ( dep => id === dep || id . startsWith ( `${ dep } /` ) )
49
53
} ,
50
54
{
@@ -54,7 +58,7 @@ export default [
54
58
format : 'cjs' ,
55
59
sourcemap : true
56
60
} ,
57
- plugins,
61
+ plugins : es5BuildPlugins ,
58
62
external : id => deps . some ( dep => id === dep || id . startsWith ( `${ dep } /` ) )
59
63
} ,
60
64
{
@@ -64,10 +68,68 @@ export default [
64
68
format : 'cjs' ,
65
69
sourcemap : true
66
70
} ,
67
- plugins,
71
+ plugins : es5BuildPlugins ,
68
72
external : id =>
69
73
[ ...deps , 'react-native' ] . some (
70
74
dep => id === dep || id . startsWith ( `${ dep } /` )
71
75
)
76
+ } ,
77
+ {
78
+ input : 'index.lite.ts' ,
79
+ output : {
80
+ file : pkg . lite ,
81
+ format : 'es' ,
82
+ sourcemap : true
83
+ } ,
84
+ plugins : es5BuildPlugins ,
85
+ external : id => deps . some ( dep => id === dep || id . startsWith ( `${ dep } /` ) )
86
+ }
87
+ ] ;
88
+
89
+ /**
90
+ * ES2017 Builds
91
+ */
92
+ const es2017BuildPlugins = [
93
+ typescriptPlugin ( {
94
+ typescript,
95
+ tsconfigOverride : {
96
+ compilerOptions : {
97
+ target : 'es2017'
98
+ }
99
+ }
100
+ } ) ,
101
+ replace ( {
102
+ delimiters : [ '${' , '}' ] ,
103
+ values : {
104
+ JSCORE_VERSION : firebasePkg . version
105
+ }
106
+ } )
107
+ ] ;
108
+
109
+ const es2017Builds = [
110
+ /**
111
+ * Browser Builds
112
+ */
113
+ {
114
+ input : 'index.ts' ,
115
+ output : {
116
+ file : pkg . esm2017 ,
117
+ format : 'es' ,
118
+ sourcemap : true
119
+ } ,
120
+ plugins : es2017BuildPlugins ,
121
+ external : id => deps . some ( dep => id === dep || id . startsWith ( `${ dep } /` ) )
122
+ } ,
123
+ {
124
+ input : 'index.lite.ts' ,
125
+ output : {
126
+ file : pkg [ 'lite-esm2017' ] ,
127
+ format : 'es' ,
128
+ sourcemap : true
129
+ } ,
130
+ plugins : es2017BuildPlugins ,
131
+ external : id => deps . some ( dep => id === dep || id . startsWith ( `${ dep } /` ) )
72
132
}
73
133
] ;
134
+
135
+ export default [ ...es5Builds , ...es2017Builds ] ;
0 commit comments