const babel = require ( "@rollup/plugin-babel" ) ;
const { nodeResolve } = require ( "@rollup/plugin-node-resolve" ) ;
const replace = require ( '@rollup/plugin-replace' )
const globals = require ( "rollup-plugin-node-globals" ) ;
const commonjs = require ( "@rollup/plugin-commonjs" ) ;
const progress = require ( "rollup-plugin-progress" ) ;
const { terser } = require ( "rollup-plugin-terser" ) ;
const path = require ( "path" ) ;
const alias = require ( "@rollup/plugin-alias" ) ;
const aliases = {
// 'qortal-ui-crypto': 'node_modules/qortal-ui-crypto/api.js'
} ;
const generateRollupConfig = ( inputFile , outputFile ) => {
return {
inputOptions : {
onwarn : ( warning , rollupWarn ) => {
if ( warning . code !== "CIRCULAR_DEPENDENCY" ) {
rollupWarn ( warning ) ;
}
} ,
input : inputFile ,
plugins : [
alias ( {
// entries: {}
entries : Object . keys ( aliases ) . map ( ( find ) => {
return {
find ,
replacement : aliases [ find ] ,
} ;
} ) ,
} ) ,
nodeResolve ( {
preferBuiltins : false ,
mainFields : [ 'module' , 'browser' ]
} ) ,
replace ( {
preventAssignment : true ,
"process.env.NODE_ENV" : JSON . stringify ( "production" ) ,
} ) ,
commonjs ( ) ,
globals ( ) ,
progress ( ) ,
babel . babel ( {
babelHelpers : 'bundled' ,
exclude : "node_modules/**" ,
} ) ,
terser ( {
compress : true ,
output : {
comments : false ,
} ,
} )
] ,
} ,
outputOptions : {
file : outputFile ,
format : "umd" ,
} ,
} ;
} ;
const generateForPlugins = ( ) => {
const configs = [
{
in : "plugins/core/main.src.js" ,
out : "plugins/core/main.js" ,
} ,
{
in : "plugins/core/trade-portal/trade-portal.src.js" ,
out : "plugins/core/trade-portal/trade-portal.js" ,
} ,
{
in : "plugins/core/send-coin/send-coin.src.js" ,
out : "plugins/core/send-coin/send-coin.js" ,
} ,
{
in : "plugins/core/wallet/wallet-app.src.js" ,
out : "plugins/core/wallet/wallet-app.js" ,
} ,
{
in : "plugins/core/reward-share/reward-share.src.js" ,
out : "plugins/core/reward-share/reward-share.js" ,
} ,
{
in : "plugins/core/node-management/node-management.src.js" ,
out : "plugins/core/node-management/node-management.js" ,
} ,
{
in : "plugins/core/group-management/group-management.src.js" ,
out : "plugins/core/group-management/group-management.js" ,
} ,
// {
// in: 'plugins/core/group-management/group-transaction/group-transaction.src.js',
// out: 'plugins/core/group-management/group-transaction/group-transaction.js'
// },
{
in : "plugins/core/name-registration/name-registration.src.js" ,
out : "plugins/core/name-registration/name-registration.js" ,
} ,
{
in : "plugins/core/qdn/websites.src.js" ,
out : "plugins/core/qdn/websites.js" ,
} ,
{
in : "plugins/core/qdn/publish/publish.src.js" ,
out : "plugins/core/qdn/publish/publish.js" ,
} ,
{
in : "plugins/core/qdn/browser/browser.src.js" ,
out : "plugins/core/qdn/browser/browser.js" ,
} ,
{
in : "plugins/core/qdn/data-management/data-management.src.js" ,
out : "plugins/core/qdn/data-management/data-management.js" ,
} ,
{
in : "plugins/core/messaging/messaging.src.js" ,
out : "plugins/core/messaging/messaging.js" ,
} ,
{
in : "plugins/core/messaging/chain-messaging/chain-messaging.src.js" ,
out : "plugins/core/messaging/chain-messaging/chain-messaging.js" ,
} ,
{
in : "plugins/core/messaging/q-chat/q-chat.src.js" ,
out : "plugins/core/messaging/q-chat/q-chat.js" ,
} ,
{
in : "plugins/core/minting/minting-info.src.js" ,
out : "plugins/core/minting/minting-info.js" ,
} ,
{
in : "plugins/core/puzzles/puzzles.src.js" ,
out : "plugins/core/puzzles/puzzles.js" ,
} ,
] . map ( ( file ) => {
return generateRollupConfig (
path . join ( _ _dirname , file . in ) ,
path . join ( _ _dirname , file . out )
) ;
} ) ;
return configs ;
} ;
module . exports = generateForPlugins ;