UNPKG

metaapi.cloud-sdk

Version:

SDK for MetaApi, a professional cloud forex API which includes MetaTrader REST API and MetaTrader websocket API. Supports both MetaTrader 5 (MT5) and MetaTrader 4 (MT4). CopyFactory copy trading API included. (https://metaapi.cloud)

265 lines (234 loc) 5.17 kB
const TerserPlugin = require('terser-webpack-plugin'); const webpack = require('webpack'); const path = require('path'); const optimization = { minimize: true, minimizer: [ new TerserPlugin({ terserOptions: { mangle: false, compress: { keep_fnames: true, }, }, }), ], }; /* configs */ const swcWebESM = require('./swc/swcrc.esm'); const webESM = { mode: 'production', entry: './lib/index.es6', devtool: 'source-map', target: 'web', module: { rules: [ { loader: 'swc-loader', options: swcWebESM, test: /\.(es6)|(ts)$/, exclude: /(node_modules)/ } ] }, output: { filename: 'index.js', path: path.resolve(__dirname, './dists/esm-web/'), library: { type: 'module', } }, experiments: { outputModule: true, }, plugins: [ new webpack.DefinePlugin({ 'process.env.NODE_DEBUG': false, 'process.env.IS_BROWSER': true }), new webpack.ProvidePlugin({ Buffer: ['buffer', 'Buffer'], process: 'process/browser', }), ], resolve: { extensions: ['.es6', '.js', '.ts'], alias: { process: 'process/browser', '@HistoryDatabase': './browserHistoryDatabase', '@axios': 'axios', log4js: false }, fallback: { stream: require.resolve('stream-browserify'), buffer: require.resolve('buffer'), util: require.resolve('util'), fs: false, assert: false, constants: false, crypto: false, http: false, https: false, process: false, url: false, zlib: false, path: false, net: false, os: false, tls: false, tty: false, cluster: false, querystring: false }, }, optimization }; const swcrcUMD = require('./swc/swcrc.umd'); const webUMD = { entry: './lib/index.es6', target: 'web', mode: 'production', devtool: 'source-map', module: { rules: [ { loader: 'swc-loader', test: /\.(es6)|(ts)$/, exclude: /(node_modules)/, options: swcrcUMD } ] }, output: { filename: 'index.js', path: path.resolve(__dirname, './dists/umd/'), globalObject: 'this', library: { name: 'MetaApi', type: 'umd' } }, plugins: [ new webpack.DefinePlugin({ 'process.env.NODE_DEBUG': false, 'process.env.IS_BROWSER': true }), new webpack.ProvidePlugin({ Buffer: ['buffer', 'Buffer'], process: 'process/browser' }), ], resolve: { extensions: ['.es6', '.js', '.ts'], alias: { process: 'process/browser', '@HistoryDatabase': './browserHistoryDatabase', '@axios': 'axios', 'metaapi.cloud-metastats-sdk': 'metaapi.cloud-metastats-sdk/web', 'metaapi.cloud-copyfactory-sdk': 'metaapi.cloud-copyfactory-sdk/web', log4js: false }, fallback: { stream: require.resolve('stream-browserify'), buffer: require.resolve('buffer'), util: require.resolve('util'), fs: false, assert: false, constants: false, crypto: false, http: false, https: false, process: false, url: false, zlib: false, path: false, net: false, os: false, tls: false, tty: false, cluster: false, querystring: false }, }, optimization }; const swcNodeESM = require('./swc/swcrc.esm'); const nodeESM = { mode: 'production', entry: './lib/index.es6', devtool: 'source-map', target: 'node16', module: { rules: [ { loader: 'swc-loader', options: swcNodeESM, test: /\.(es6)|(ts)$/, exclude: /(node_modules)/ } ] }, output: { filename: 'index.mjs', path: path.resolve(__dirname, './dists/esm-node/'), library: { type: 'module' } }, experiments: { outputModule: true }, plugins: [ new webpack.DefinePlugin({ 'process.env.IS_BROWSER': false }) ], resolve: { extensions: ['.es6', '.js', '.ts'], alias: { '@HistoryDatabase': './filesystemHistoryDatabase', '@axios': 'axios', 'metaapi.cloud-copyfactory-sdk': 'metaapi.cloud-copyfactory-sdk/esm', 'metaapi.cloud-metastats-sdk': 'metaapi.cloud-metastats-sdk/esm' } }, optimization }; const swcrcCJS = require('./swc/swcrc.cjs'); const nodeCJS = { entry: './lib/index.es6', target: 'node', mode: 'production', devtool: 'source-map', module: { rules: [ { loader: 'swc-loader', test: /\.(es6)|(ts)$/, exclude: /(node_modules)/, options: swcrcCJS } ] }, output: { filename: 'index.js', path: path.resolve(__dirname, './dists/cjs/'), library: { type: 'commonjs' } }, resolve: { extensions: ['.es6', '.js', '.ts'], alias: { '@HistoryDatabase': './filesystemHistoryDatabase', '@axios': 'axios' } }, plugins: [ new webpack.DefinePlugin({ 'process.env.IS_BROWSER': false }) ], optimization }; module.exports = [ webESM, webUMD, nodeESM, nodeCJS ];