UNPKG

apex-nitro

Version:
60 lines (54 loc) 1.51 kB
'use strict'; const gulp = require('gulp'); const opn = require('opn'); let isBuilderOpened = false; module.exports = function (config, browsersync, port) { const openAPEXBuilder = function (protocol, host, paramString) { // Should only open the builder once if (!isBuilderOpened && config.apex.openBuilder) { // App 4000 is the APEX builder opn(protocol + '//' + host + paramString.substring(0, paramString.indexOf('f?p')) + 'f?p=4000'); isBuilderOpened = true; } }; const apexProxyReq = function (req, res) { openAPEXBuilder(req.agent.protocol, res.headers.host, req.path, res, req); req.setHeader('Origin', req.agent.protocol + '//' + req._headers.host); req.setHeader('APEX-Nitro', '//' + res.headers.host + '/'); }; // Launch browsersync server gulp.task('browsersync', done => { browsersync.init({ logPrefix: 'APEX Nitro', port, notify: false, cors: true, proxy: { target: config.appURL, proxyReq: [apexProxyReq] }, serveStatic: [config.distFolder || config.srcFolder], ui: false, ghostMode: config.browsersync.ghostMode, snippetOptions: { // Ignores all APEX builder apps blacklist: [ '**/f?p=4000:*', '**/f?p=4050:*', '**/f?p=4155:*', '**/f?p=4300:*', '**/f?p=4350:*', '**/f?p=4400:*', '**/f?p=4411:*', '**/f?p=4500:*', '**/f?p=4550:*', '**/f?p=4700:*', '**/f?p=4750:*', '**/f?p=4800:*', '**/f?p=4850:*', '**/f?p=4900:*' ] } }, done); }); };