isomorfeus 1.0.0.zeta25 → 2.0.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +21 -21
- data/README.md +26 -31
- data/bin/ismos +2 -2
- data/bin/isomorfeus +2 -3
- data/lib/isomorfeus/cli.rb +118 -31
- data/lib/isomorfeus/command.rb +29 -31
- data/lib/isomorfeus/console.rb +21 -21
- data/lib/isomorfeus/installer/bundle.rb +13 -0
- data/lib/isomorfeus/installer/dsl.rb +67 -0
- data/lib/isomorfeus/installer/gemfile.rb +39 -0
- data/lib/isomorfeus/installer/install_targets.rb +29 -0
- data/lib/isomorfeus/installer/new_project.rb +19 -56
- data/lib/isomorfeus/installer/options_mangler.rb +16 -16
- data/lib/isomorfeus/installer/rack_servers.rb +5 -11
- data/lib/isomorfeus/installer/target/web.rb +54 -0
- data/lib/isomorfeus/installer/templates/.gitignore.erb +25 -25
- data/lib/isomorfeus/installer/templates/Gemfile.erb +20 -36
- data/lib/isomorfeus/installer/templates/anonymous_policy.rb.erb +3 -3
- data/lib/isomorfeus/installer/templates/app_loader.rb.erb +8 -8
- data/lib/isomorfeus/installer/templates/config.ru.erb +23 -23
- data/lib/isomorfeus/installer/templates/hello_component.rb.erb +5 -5
- data/lib/isomorfeus/installer/templates/iodine.rb.erb +5 -0
- data/lib/isomorfeus/installer/templates/isomorfeus_loader.rb.erb +16 -16
- data/lib/isomorfeus/installer/templates/isomorfeus_web_worker_loader.rb.erb +2 -2
- data/lib/isomorfeus/installer/templates/{mail_components_loader.rb.erb → mail_loader.rb.erb} +18 -18
- data/lib/isomorfeus/installer/templates/mail_preview.mustache.erb +14 -0
- data/lib/isomorfeus/installer/templates/my_app.rb.erb +10 -10
- data/lib/isomorfeus/installer/templates/navigation_links.rb.erb +8 -8
- data/lib/isomorfeus/installer/templates/not_found_404_component.rb.erb +6 -6
- data/lib/isomorfeus/installer/templates/roda_app.rb.erb +71 -0
- data/lib/isomorfeus/installer/templates/spec_helper.rb.erb +19 -22
- data/lib/isomorfeus/installer/templates/web.mustache.erb +15 -0
- data/lib/isomorfeus/installer/templates/{test_spec.rb.erb → web_spec.rb.erb} +12 -12
- data/lib/isomorfeus/installer/templates/welcome_component.rb.erb +5 -5
- data/lib/isomorfeus/installer/test_app_files.rb +24 -0
- data/lib/isomorfeus/installer/upgrade.rb +11 -0
- data/lib/isomorfeus/installer.rb +57 -261
- data/lib/isomorfeus/version.rb +3 -3
- data/lib/isomorfeus.rb +10 -8
- metadata +68 -63
- data/bin/yandle +0 -9
- data/lib/isomorfeus/installer/databases/arangodb.rb +0 -13
- data/lib/isomorfeus/installer/templates/Procfile.erb +0 -1
- data/lib/isomorfeus/installer/templates/ProcfileDebug.erb +0 -3
- data/lib/isomorfeus/installer/templates/ProcfileDev.erb +0 -3
- data/lib/isomorfeus/installer/templates/app.rb.erb +0 -57
- data/lib/isomorfeus/installer/templates/application.css.erb +0 -0
- data/lib/isomorfeus/installer/templates/application.js.erb +0 -25
- data/lib/isomorfeus/installer/templates/application_common.js.erb +0 -17
- data/lib/isomorfeus/installer/templates/application_ssr.js.erb +0 -23
- data/lib/isomorfeus/installer/templates/application_web_worker.js.erb +0 -6
- data/lib/isomorfeus/installer/templates/arango_config.rb.erb +0 -20
- data/lib/isomorfeus/installer/templates/debug.js.erb +0 -131
- data/lib/isomorfeus/installer/templates/development.js.erb +0 -110
- data/lib/isomorfeus/installer/templates/development_ssr.js.erb +0 -115
- data/lib/isomorfeus/installer/templates/iodine_config.rb.erb +0 -14
- data/lib/isomorfeus/installer/templates/mail_components.js.erb +0 -23
- data/lib/isomorfeus/installer/templates/package.json.erb +0 -43
- data/lib/isomorfeus/installer/templates/production.js.erb +0 -100
@@ -1,110 +0,0 @@
|
|
1
|
-
// require requirements used below
|
2
|
-
const path = require('path');
|
3
|
-
const webpack = require('webpack');
|
4
|
-
const OwlResolver = require('opal-webpack-loader/resolver'); // to resolve ruby files
|
5
|
-
const ExtraWatchWebpackPlugin = require('extra-watch-webpack-plugin'); // to watch for added ruby files
|
6
|
-
|
7
|
-
const common_config = {
|
8
|
-
target: 'web',
|
9
|
-
context: path.resolve(__dirname, '../app'),
|
10
|
-
mode: "development",
|
11
|
-
optimization: {
|
12
|
-
removeAvailableModules: false,
|
13
|
-
removeEmptyChunks: false,
|
14
|
-
minimize: false // dont minimize in development, to speed up hot reloads
|
15
|
-
},
|
16
|
-
performance: {
|
17
|
-
maxAssetSize: 20000000,
|
18
|
-
maxEntrypointSize: 20000000
|
19
|
-
},
|
20
|
-
devtool: false,
|
21
|
-
output: {
|
22
|
-
filename: '[name].js',
|
23
|
-
path: path.resolve(__dirname, '../public/assets'),
|
24
|
-
publicPath: 'http://localhost:3035/assets/'
|
25
|
-
},
|
26
|
-
externals: { crypto: 'Crypto' },
|
27
|
-
resolve: { plugins: [new OwlResolver('resolve', 'resolved')] }, // resolve ruby files
|
28
|
-
plugins: [
|
29
|
-
// both for hot reloading
|
30
|
-
new webpack.HotModuleReplacementPlugin(),
|
31
|
-
// watch for added files in app dir
|
32
|
-
new ExtraWatchWebpackPlugin({ dirs: [ path.resolve(__dirname, '../app') ] })
|
33
|
-
],
|
34
|
-
module: {
|
35
|
-
rules: [
|
36
|
-
{
|
37
|
-
test: /\.s[ac]ss$/,
|
38
|
-
use: [ "style-loader" , "css-loader",
|
39
|
-
{
|
40
|
-
loader: "sass-loader",
|
41
|
-
options: {
|
42
|
-
sassOptions: { includePaths: [path.resolve(__dirname, '../app/styles')] },
|
43
|
-
sourceMap: false
|
44
|
-
}
|
45
|
-
}
|
46
|
-
]
|
47
|
-
},
|
48
|
-
{
|
49
|
-
test: /\.css$/,
|
50
|
-
use: ["style-loader", "css-loader"]
|
51
|
-
},
|
52
|
-
{
|
53
|
-
test: /\.(png|svg|jpg|gif|woff|woff2|eot|ttf|otf)$/,
|
54
|
-
use: ["file-loader"]
|
55
|
-
},
|
56
|
-
{
|
57
|
-
test: /(\.js)?\.rb$/,
|
58
|
-
use: [
|
59
|
-
{
|
60
|
-
loader: 'opal-webpack-loader', // opal-webpack-loader will compile and include ruby files in the pack
|
61
|
-
options: {
|
62
|
-
sourceMap: false,
|
63
|
-
hmr: true,
|
64
|
-
hmrHook: 'Opal.Isomorfeus.$force_render()'
|
65
|
-
}
|
66
|
-
}
|
67
|
-
]
|
68
|
-
}
|
69
|
-
]
|
70
|
-
},
|
71
|
-
// configuration for webpack-dev-server
|
72
|
-
devServer: {
|
73
|
-
open: false,
|
74
|
-
lazy: false,
|
75
|
-
port: 3035,
|
76
|
-
hot: true,
|
77
|
-
// hotOnly: true,
|
78
|
-
inline: true,
|
79
|
-
https: false,
|
80
|
-
disableHostCheck: true,
|
81
|
-
headers: {
|
82
|
-
"Access-Control-Allow-Origin": "*",
|
83
|
-
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS",
|
84
|
-
"Access-Control-Allow-Headers": "X-Requested-With, content-type, Authorization"
|
85
|
-
},
|
86
|
-
watchOptions: {
|
87
|
-
// in case of problems with hot reloading uncomment the following two lines:
|
88
|
-
// aggregateTimeout: 250,
|
89
|
-
// poll: 50,
|
90
|
-
ignored: /\bnode_modules\b/
|
91
|
-
},
|
92
|
-
contentBase: path.resolve(__dirname, 'public'),
|
93
|
-
useLocalIp: false
|
94
|
-
}
|
95
|
-
};
|
96
|
-
|
97
|
-
const browser_config = {
|
98
|
-
entry: { application: [path.resolve(__dirname, '../app/imports/application.js')] }
|
99
|
-
};
|
100
|
-
|
101
|
-
//const web_worker_config = {
|
102
|
-
// target: 'webworker',
|
103
|
-
// entry: { web_worker: [path.resolve(__dirname, '../app/imports/application_web_worker.js')] },
|
104
|
-
// externals: { crypto: 'Crypto' }
|
105
|
-
//};
|
106
|
-
|
107
|
-
const browser = Object.assign({}, common_config, browser_config);
|
108
|
-
// const web_worker = Object.assign({}, common_config, web_worker_config);
|
109
|
-
|
110
|
-
module.exports = [ browser ];
|
@@ -1,115 +0,0 @@
|
|
1
|
-
// require requirements used below
|
2
|
-
const path = require('path');
|
3
|
-
const webpack = require('webpack');
|
4
|
-
const OwlResolver = require('opal-webpack-loader/resolver'); // to resolve ruby files
|
5
|
-
const ExtraWatchWebpackPlugin = require('extra-watch-webpack-plugin'); // to watch for added ruby files
|
6
|
-
|
7
|
-
const common_config = {
|
8
|
-
target: 'node',
|
9
|
-
context: path.resolve(__dirname, '../app'),
|
10
|
-
mode: "development",
|
11
|
-
optimization: {
|
12
|
-
removeAvailableModules: false,
|
13
|
-
removeEmptyChunks: false,
|
14
|
-
minimize: false // dont minimize in development, to speed up hot reloads
|
15
|
-
},
|
16
|
-
performance: {
|
17
|
-
maxAssetSize: 20000000,
|
18
|
-
maxEntrypointSize: 20000000
|
19
|
-
},
|
20
|
-
devtool: false,
|
21
|
-
output: {
|
22
|
-
// webpack-dev-server keeps the output in memory
|
23
|
-
filename: '[name].js',
|
24
|
-
path: path.resolve(__dirname, '../public/assets'),
|
25
|
-
publicPath: 'http://localhost:3036/assets/'
|
26
|
-
},
|
27
|
-
resolve: {
|
28
|
-
plugins: [
|
29
|
-
// this makes it possible for webpack to find ruby files
|
30
|
-
new OwlResolver('resolve', 'resolved')
|
31
|
-
]
|
32
|
-
},
|
33
|
-
plugins: [
|
34
|
-
// dont split ssr asset in chunks
|
35
|
-
new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 1 }),
|
36
|
-
// watch for added files in app dir
|
37
|
-
new ExtraWatchWebpackPlugin({ dirs: [ path.resolve(__dirname, '../app') ] })
|
38
|
-
],
|
39
|
-
module: {
|
40
|
-
rules: [
|
41
|
-
{
|
42
|
-
// loader for .scss files
|
43
|
-
// test means "test for for file endings"
|
44
|
-
test: /\.s[ac]ss$/,
|
45
|
-
use: [ "style-loader", "css-loader",
|
46
|
-
{
|
47
|
-
loader: "sass-loader",
|
48
|
-
options: {
|
49
|
-
sassOptions: { includePaths: [path.resolve(__dirname, '../app/styles')] },
|
50
|
-
sourceMap: false
|
51
|
-
}
|
52
|
-
}
|
53
|
-
]
|
54
|
-
},
|
55
|
-
{
|
56
|
-
// loader for .css files
|
57
|
-
test: /\.css$/,
|
58
|
-
use: [ "style-loader", "css-loader" ]
|
59
|
-
},
|
60
|
-
{
|
61
|
-
test: /\.(png|svg|jpg|gif|woff|woff2|eot|ttf|otf)$/,
|
62
|
-
use: [ "file-loader" ]
|
63
|
-
},
|
64
|
-
{
|
65
|
-
// opal-webpack-loader will compile and include ruby files in the pack
|
66
|
-
test: /(\.js)?\.rb$/,
|
67
|
-
use: [
|
68
|
-
{
|
69
|
-
loader: 'opal-webpack-loader',
|
70
|
-
options: {
|
71
|
-
sourceMap: false,
|
72
|
-
hmr: false,
|
73
|
-
hmrHook: 'Opal.Isomorfeus.$force_render()'
|
74
|
-
}
|
75
|
-
}
|
76
|
-
]
|
77
|
-
}
|
78
|
-
]
|
79
|
-
},
|
80
|
-
// configuration for webpack-dev-server
|
81
|
-
devServer: {
|
82
|
-
open: false,
|
83
|
-
lazy: false,
|
84
|
-
port: 3036,
|
85
|
-
hot: false,
|
86
|
-
inline: true,
|
87
|
-
https: false,
|
88
|
-
disableHostCheck: true,
|
89
|
-
headers: {
|
90
|
-
"Access-Control-Allow-Origin": "*",
|
91
|
-
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS",
|
92
|
-
"Access-Control-Allow-Headers": "X-Requested-With, content-type, Authorization"
|
93
|
-
},
|
94
|
-
watchOptions: {
|
95
|
-
// in case of problems with hot reloading uncomment the following two lines:
|
96
|
-
// aggregateTimeout: 250,
|
97
|
-
// poll: 50,
|
98
|
-
ignored: /\bnode_modules\b/
|
99
|
-
},
|
100
|
-
contentBase: path.resolve(__dirname, 'public'),
|
101
|
-
useLocalIp: false
|
102
|
-
}
|
103
|
-
};
|
104
|
-
|
105
|
-
const ssr_config = {
|
106
|
-
entry: { application_ssr: [path.resolve(__dirname, '../app/imports/application_ssr.js')] }
|
107
|
-
};
|
108
|
-
|
109
|
-
const mail_components_config = {
|
110
|
-
entry: { mail_components: [path.resolve(__dirname, '../app/imports/mail_components.js')] }
|
111
|
-
};
|
112
|
-
|
113
|
-
const ssr = Object.assign({}, common_config, ssr_config);
|
114
|
-
const mail_components = Object.assign({}, common_config, mail_components_config);
|
115
|
-
module.exports = [ ssr, mail_components ];
|
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'etc'
|
2
|
-
Iodine.threads = ENV['THREADS'] ? ENV['THREADS'].to_i : 4
|
3
|
-
Iodine.workers = ENV['WORKERS'] ? ENV['WORKERS'].to_i : Etc.nprocessors
|
4
|
-
|
5
|
-
Iodine.on_state(:enter_child) do
|
6
|
-
Isomorfeus.connect_to_arango if Isomorfeus.arango_configured?
|
7
|
-
end
|
8
|
-
|
9
|
-
if ENV['REDIS_URL']
|
10
|
-
Iodine::PubSub.default = Iodine::PubSub::Redis.new(ENV['REDIS_URL'])
|
11
|
-
puts "* Using Redis for pub/sub."
|
12
|
-
else
|
13
|
-
puts "* Using Iodine for pub/sub within the process cluster."
|
14
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
// entry file for the server side rendering environment (ssr)
|
2
|
-
// import npm modules that are only valid to use in the server side rendering environment
|
3
|
-
// for example modules which depend on objects provided by node js
|
4
|
-
import ReactDOMServer from 'react-dom/server';
|
5
|
-
global.ReactDOMServer = ReactDOMServer;
|
6
|
-
|
7
|
-
import WebSocket from 'ws';
|
8
|
-
global.WebSocket = WebSocket;
|
9
|
-
|
10
|
-
import * as Redux from 'redux';
|
11
|
-
global.Redux = Redux;
|
12
|
-
|
13
|
-
import React from 'react';
|
14
|
-
global.React = React;
|
15
|
-
|
16
|
-
import * as ReactJSS from 'react-jss';
|
17
|
-
global.ReactJSS = ReactJSS;
|
18
|
-
|
19
|
-
import init_mail_components from 'mail_components_loader.rb';
|
20
|
-
init_mail_components();
|
21
|
-
global.Opal.load('mail_components_loader');
|
22
|
-
|
23
|
-
if (module.hot) { module.hot.accept(); }
|
@@ -1,43 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name": "<%= application_name %>",
|
3
|
-
"private": true,
|
4
|
-
"dependencies": {
|
5
|
-
"opal-webpack-loader": "^0.9.10",
|
6
|
-
"react": "^16.12.0",
|
7
|
-
"react-deep-force-update": "^2.1.3",
|
8
|
-
"react-dom": "^16.12.0",
|
9
|
-
"react-jss": "^10.0.0",
|
10
|
-
"react-router": "^5.1.2",
|
11
|
-
"react-router-dom": "^5.1.2",
|
12
|
-
"redux": "^4.0.5",
|
13
|
-
"ws": "^7.2.0"
|
14
|
-
},
|
15
|
-
"scripts": {
|
16
|
-
"build": "parallel-webpack --config=webpack/production.js",
|
17
|
-
"debug": "webpack-dev-server --config=webpack/debug.js",
|
18
|
-
"development": "webpack-dev-server --config=webpack/development.js",
|
19
|
-
"development_ssr": "webpack-dev-server --config=webpack/development_ssr.js",
|
20
|
-
"production_build": "parallel-webpack --config=webpack/production.js"
|
21
|
-
},
|
22
|
-
"devDependencies": {
|
23
|
-
"compression-webpack-plugin": "^3.0.0",
|
24
|
-
"css-loader": "^3.2.0",
|
25
|
-
"extra-watch-webpack-plugin": "^1.0.3",
|
26
|
-
"file-loader": "^4.2.0",
|
27
|
-
"jsdom": "15.2.1",
|
28
|
-
"node-sass": "^4.13.0",
|
29
|
-
"parallel-webpack": "^2.4.0",
|
30
|
-
"puppeteer": "2.0.0",
|
31
|
-
"sass-loader": "^8.0.0",
|
32
|
-
"style-loader": "^1.0.0",
|
33
|
-
"terser-webpack-plugin": "^2.2.1",
|
34
|
-
"webpack": "^4.41.2",
|
35
|
-
"webpack-assets-manifest": "^3.1.1",
|
36
|
-
"webpack-cli": "^3.3.10",
|
37
|
-
"webpack-dev-server": "^3.9.0"
|
38
|
-
},
|
39
|
-
"optionalDependencies": {
|
40
|
-
"bufferutil": "^4.0.1",
|
41
|
-
"utf-8-validate": "^5.0.2"
|
42
|
-
}
|
43
|
-
}
|
@@ -1,100 +0,0 @@
|
|
1
|
-
const path = require('path');
|
2
|
-
const OwlResolver = require('opal-webpack-loader/resolver');
|
3
|
-
const CompressionPlugin = require("compression-webpack-plugin"); // for gzipping the packs
|
4
|
-
const TerserPlugin = require('terser-webpack-plugin'); // for minifying the packs
|
5
|
-
const WebpackAssetsManifest = require('webpack-assets-manifest');
|
6
|
-
|
7
|
-
const common_config = {
|
8
|
-
context: path.resolve(__dirname, '../app'),
|
9
|
-
mode: "production",
|
10
|
-
optimization: {
|
11
|
-
minimize: true, // minimize
|
12
|
-
minimizer: [new TerserPlugin({ parallel: true, cache: true, terserOptions: { output: { comments: false }}})]
|
13
|
-
},
|
14
|
-
performance: {
|
15
|
-
maxAssetSize: 20000000,
|
16
|
-
maxEntrypointSize: 20000000
|
17
|
-
},
|
18
|
-
output: {
|
19
|
-
filename: '[name]-[chunkhash].js', // include fingerprint in file name, so browsers get the latest
|
20
|
-
path: path.resolve(__dirname, '../public/assets'),
|
21
|
-
publicPath: '/assets/'
|
22
|
-
},
|
23
|
-
resolve: { plugins: [new OwlResolver('resolve', 'resolved')] }, // resolve ruby files
|
24
|
-
module: {
|
25
|
-
rules: [
|
26
|
-
{
|
27
|
-
test: /\.s[ac]ss$/,
|
28
|
-
use: ["style-loader", "css-loader",
|
29
|
-
{
|
30
|
-
loader: "sass-loader",
|
31
|
-
options: {
|
32
|
-
sassOptions: { includePaths: [path.resolve(__dirname, '../app/styles')] },
|
33
|
-
sourceMap: false
|
34
|
-
}
|
35
|
-
}
|
36
|
-
]
|
37
|
-
},
|
38
|
-
{
|
39
|
-
test: /\.css$/,
|
40
|
-
use: ["style-loader", "css-loader"]
|
41
|
-
},
|
42
|
-
{
|
43
|
-
test: /\.(png|svg|jpg|gif|woff|woff2|eot|ttf|otf)$/,
|
44
|
-
use: ["file-loader"]
|
45
|
-
},
|
46
|
-
{
|
47
|
-
test: /(\.js)?\.rb$/,
|
48
|
-
use: [
|
49
|
-
{
|
50
|
-
loader: 'opal-webpack-loader', // opal-webpack-loader will compile and include ruby files in the pack
|
51
|
-
options: { sourceMap: false, hmr: false }
|
52
|
-
}
|
53
|
-
]
|
54
|
-
}
|
55
|
-
]
|
56
|
-
}
|
57
|
-
};
|
58
|
-
|
59
|
-
const browser_config = {
|
60
|
-
target: 'web',
|
61
|
-
entry: { application: [path.resolve(__dirname, '../app/imports/application.js')] },
|
62
|
-
plugins: [
|
63
|
-
new CompressionPlugin({ test: /^((?!application_ssr).)*$/, cache: true }), // gzip compress, exclude application_ssr.js
|
64
|
-
new WebpackAssetsManifest({ publicPath: true, merge: true }) // generate manifest
|
65
|
-
],
|
66
|
-
externals: { crypto: 'Crypto' }
|
67
|
-
};
|
68
|
-
|
69
|
-
const ssr_config = {
|
70
|
-
target: 'node',
|
71
|
-
entry: { application_ssr: [path.resolve(__dirname, '../app/imports/application_ssr.js')] },
|
72
|
-
plugins: [
|
73
|
-
new WebpackAssetsManifest({ publicPath: true, merge: true }) // generate manifest
|
74
|
-
]
|
75
|
-
};
|
76
|
-
|
77
|
-
const mail_components_config = {
|
78
|
-
target: 'node',
|
79
|
-
entry: { mail_components: [path.resolve(__dirname, '../app/imports/mail_components.js')] },
|
80
|
-
plugins: [
|
81
|
-
new WebpackAssetsManifest({ publicPath: true, merge: true }) // generate manifest
|
82
|
-
]
|
83
|
-
};
|
84
|
-
|
85
|
-
//const web_worker_config = {
|
86
|
-
// target: 'webworker',
|
87
|
-
// entry: { web_worker: [path.resolve(__dirname, '../app/imports/application_web_worker.js')] },
|
88
|
-
// plugins: [
|
89
|
-
// new CompressionPlugin({ test: /^((?!application_ssr).)*$/, cache: true }), // gzip compress, exclude application_ssr.js
|
90
|
-
// new WebpackAssetsManifest({ publicPath: true, merge: true }) // generate manifest
|
91
|
-
// ],
|
92
|
-
// externals: { crypto: 'Crypto' }
|
93
|
-
//};
|
94
|
-
|
95
|
-
const browser = Object.assign({}, common_config, browser_config);
|
96
|
-
const ssr = Object.assign({}, common_config, ssr_config);
|
97
|
-
const mail_components = Object.assign({}, common_config, mail_components_config);
|
98
|
-
// const web_worker = Object.assign({}, common_config, web_worker_config);
|
99
|
-
|
100
|
-
module.exports = [ browser, ssr, mail_components ];
|