| 
									
										
										
										
											2018-11-04 11:41:21 -08:00
										 |  |  | import babel from 'rollup-plugin-babel'; | 
					
						
							|  |  |  | import builtins from 'rollup-plugin-node-builtins'; | 
					
						
							|  |  |  | import commonjs from 'rollup-plugin-commonjs'; | 
					
						
							| 
									
										
										
										
											2020-02-03 21:36:35 +08:00
										 |  |  | import copy from 'rollup-plugin-copy'; | 
					
						
							| 
									
										
										
										
											2018-11-04 11:41:21 -08:00
										 |  |  | import globals from 'rollup-plugin-node-globals'; | 
					
						
							|  |  |  | import json from 'rollup-plugin-json'; | 
					
						
							| 
									
										
										
										
											2018-08-22 17:03:50 -07:00
										 |  |  | import nodeResolve from 'rollup-plugin-node-resolve'; | 
					
						
							| 
									
										
										
										
											2018-11-04 11:41:21 -08:00
										 |  |  | import replace from 'rollup-plugin-replace'; | 
					
						
							| 
									
										
										
										
											2019-02-17 16:24:46 -08:00
										 |  |  | import {terser} from 'rollup-plugin-terser'; | 
					
						
							| 
									
										
										
										
											2018-08-22 13:30:04 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | const env = process.env.NODE_ENV; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-22 21:43:32 -07:00
										 |  |  | function generateConfig(configType) { | 
					
						
							|  |  |  |   const config = { | 
					
						
							|  |  |  |     input: 'src/index.js', | 
					
						
							|  |  |  |     plugins: [ | 
					
						
							| 
									
										
										
										
											2018-08-23 10:52:48 -07:00
										 |  |  |       json(), | 
					
						
							| 
									
										
										
										
											2018-08-22 21:43:32 -07:00
										 |  |  |       babel({ | 
					
						
							|  |  |  |         exclude: '**/node_modules/**', | 
					
						
							|  |  |  |         runtimeHelpers: true, | 
					
						
							|  |  |  |       }), | 
					
						
							|  |  |  |       replace({ | 
					
						
							|  |  |  |         'process.env.NODE_ENV': JSON.stringify(env), | 
					
						
							|  |  |  |       }), | 
					
						
							|  |  |  |       commonjs(), | 
					
						
							| 
									
										
										
										
											2020-02-03 21:36:35 +08:00
										 |  |  |       copy({ | 
					
						
							|  |  |  |         targets: [{src: 'module.d.ts', dest: 'lib', rename: 'index.d.ts'}], | 
					
						
							|  |  |  |       }), | 
					
						
							| 
									
										
										
										
											2018-08-22 21:43:32 -07:00
										 |  |  |     ], | 
					
						
							|  |  |  |   }; | 
					
						
							| 
									
										
										
										
											2018-08-22 13:30:04 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-22 21:43:32 -07:00
										 |  |  |   switch (configType) { | 
					
						
							| 
									
										
										
										
											2018-11-04 11:41:21 -08:00
										 |  |  |     case 'browser': | 
					
						
							|  |  |  |       config.output = [ | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |           file: 'lib/index.iife.js', | 
					
						
							|  |  |  |           format: 'iife', | 
					
						
							|  |  |  |           name: 'solanaWeb3', | 
					
						
							| 
									
										
										
										
											2018-12-02 10:17:15 -08:00
										 |  |  |           sourcemap: true, | 
					
						
							| 
									
										
										
										
											2018-11-04 11:41:21 -08:00
										 |  |  |         }, | 
					
						
							|  |  |  |       ]; | 
					
						
							|  |  |  |       config.plugins.push(builtins()); | 
					
						
							|  |  |  |       config.plugins.push(globals()); | 
					
						
							|  |  |  |       config.plugins.push( | 
					
						
							|  |  |  |         nodeResolve({ | 
					
						
							|  |  |  |           browser: true, | 
					
						
							|  |  |  |         }), | 
					
						
							|  |  |  |       ); | 
					
						
							| 
									
										
										
										
											2019-02-17 16:24:46 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |       if (env === 'production') { | 
					
						
							|  |  |  |         config.plugins.push( | 
					
						
							|  |  |  |           terser({ | 
					
						
							|  |  |  |             mangle: false, | 
					
						
							|  |  |  |             compress: false, | 
					
						
							|  |  |  |           }), | 
					
						
							|  |  |  |         ); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-04 11:41:21 -08:00
										 |  |  |       break; | 
					
						
							|  |  |  |     case 'node': | 
					
						
							|  |  |  |       config.output = [ | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |           file: 'lib/index.cjs.js', | 
					
						
							|  |  |  |           format: 'cjs', | 
					
						
							| 
									
										
										
										
											2018-12-02 10:17:15 -08:00
										 |  |  |           sourcemap: true, | 
					
						
							| 
									
										
										
										
											2018-11-04 11:41:21 -08:00
										 |  |  |         }, | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |           file: 'lib/index.esm.js', | 
					
						
							|  |  |  |           format: 'es', | 
					
						
							| 
									
										
										
										
											2018-12-02 10:17:15 -08:00
										 |  |  |           sourcemap: true, | 
					
						
							| 
									
										
										
										
											2018-11-04 11:41:21 -08:00
										 |  |  |         }, | 
					
						
							|  |  |  |       ]; | 
					
						
							| 
									
										
										
										
											2018-08-24 08:22:54 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-04 11:41:21 -08:00
										 |  |  |       // Quash 'Unresolved dependencies' complaints for modules listed in the
 | 
					
						
							|  |  |  |       // package.json "dependencies" section.  Unfortunately this list is manually
 | 
					
						
							|  |  |  |       // maintained.
 | 
					
						
							|  |  |  |       config.external = [ | 
					
						
							|  |  |  |         'assert', | 
					
						
							| 
									
										
										
										
											2019-02-17 16:24:46 -08:00
										 |  |  |         '@babel/runtime/core-js/get-iterator', | 
					
						
							|  |  |  |         '@babel/runtime/core-js/json/stringify', | 
					
						
							|  |  |  |         '@babel/runtime/core-js/object/assign', | 
					
						
							|  |  |  |         '@babel/runtime/core-js/object/get-prototype-of', | 
					
						
							|  |  |  |         '@babel/runtime/core-js/object/keys', | 
					
						
							|  |  |  |         '@babel/runtime/core-js/promise', | 
					
						
							|  |  |  |         '@babel/runtime/helpers/asyncToGenerator', | 
					
						
							|  |  |  |         '@babel/runtime/helpers/classCallCheck', | 
					
						
							|  |  |  |         '@babel/runtime/helpers/createClass', | 
					
						
							|  |  |  |         '@babel/runtime/helpers/defineProperty', | 
					
						
							|  |  |  |         '@babel/runtime/helpers/get', | 
					
						
							|  |  |  |         '@babel/runtime/helpers/getPrototypeOf', | 
					
						
							|  |  |  |         '@babel/runtime/helpers/inherits', | 
					
						
							|  |  |  |         '@babel/runtime/helpers/possibleConstructorReturn', | 
					
						
							| 
									
										
										
										
											2019-06-23 12:57:48 -04:00
										 |  |  |         '@babel/runtime/helpers/slicedToArray', | 
					
						
							| 
									
										
										
										
											2019-02-17 16:24:46 -08:00
										 |  |  |         '@babel/runtime/helpers/toConsumableArray', | 
					
						
							|  |  |  |         '@babel/runtime/helpers/typeof', | 
					
						
							|  |  |  |         '@babel/runtime/regenerator', | 
					
						
							| 
									
										
										
										
											2018-11-04 11:41:21 -08:00
										 |  |  |         'bn.js', | 
					
						
							|  |  |  |         'bs58', | 
					
						
							|  |  |  |         'buffer-layout', | 
					
						
							| 
									
										
										
										
											2020-03-16 17:44:12 +08:00
										 |  |  |         'crypto-hash', | 
					
						
							| 
									
										
										
										
											2020-10-07 00:41:18 +08:00
										 |  |  |         'http', | 
					
						
							|  |  |  |         'https', | 
					
						
							| 
									
										
										
										
											2018-11-04 11:41:21 -08:00
										 |  |  |         'jayson/lib/client/browser', | 
					
						
							|  |  |  |         'node-fetch', | 
					
						
							|  |  |  |         'rpc-websockets', | 
					
						
							|  |  |  |         'superstruct', | 
					
						
							|  |  |  |         'tweetnacl', | 
					
						
							|  |  |  |         'url', | 
					
						
							|  |  |  |       ]; | 
					
						
							|  |  |  |       break; | 
					
						
							|  |  |  |     default: | 
					
						
							|  |  |  |       throw new Error(`Unknown configType: ${configType}`); | 
					
						
							| 
									
										
										
										
											2018-08-22 21:43:32 -07:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return config; | 
					
						
							| 
									
										
										
										
											2018-08-22 13:30:04 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-04 11:41:21 -08:00
										 |  |  | export default [generateConfig('node'), generateConfig('browser')]; |