Skip to content

Commit

Permalink
chore: maintain the IIFE wrapper used by rollup as an independent file
Browse files Browse the repository at this point in the history
  • Loading branch information
mike-north committed Apr 4, 2019
1 parent 5e87b0b commit 5a07d62
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 48 deletions.
37 changes: 37 additions & 0 deletions iife-wrapper.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
var Pretender = (function(self) {
function getModuleDefault(module) {
return module.default || module;
}

var appearsBrowserified =
typeof self !== 'undefined' &&
typeof process !== 'undefined' &&
(Object.prototype.toString.call(process) === '[object Object]' ||
Object.prototype.toString.call(process) === '[object process]');

var RouteRecognizer = appearsBrowserified
? getModuleDefault(require('route-recognizer'))
: self.RouteRecognizer;
var FakeXMLHttpRequest = appearsBrowserified
? getModuleDefault(require('fake-xml-http-request'))
: self.FakeXMLHttpRequest;

// fetch related ponyfills
var FakeFetch = appearsBrowserified
? getModuleDefault(require('whatwg-fetch'))
: self.WHATWGFetch;

/*==ROLLUP_CONTENT==*/

if (typeof module === 'object') {
module.exports = Pretender;
} else if (typeof define !== 'undefined') {
define('pretender', [], function() {
return Pretender;
});
}

self.Pretender = Pretender;

return Pretender;
})(self);
58 changes: 10 additions & 48 deletions rollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,49 +2,15 @@ const commonjs = require('rollup-plugin-commonjs');
const resolve = require('rollup-plugin-node-resolve');
const typescript = require('rollup-plugin-typescript');
const pkg = require('./package.json');

const fs = require('fs');
const globals = {
'whatwg-fetch': 'FakeFetch',
'fake-xml-http-request': 'FakeXMLHttpRequest',
'route-recognizer': 'RouteRecognizer',
'route-recognizer': 'RouteRecognizer'
};

const iife = {
banner:
`var Pretender = (function (self) {
function getModuleDefault(module) {
return module.default || module;
}
var appearsBrowserified = typeof self !== 'undefined' &&
typeof process !== 'undefined' &&
(Object.prototype.toString.call(process) === '[object Object]' ||
Object.prototype.toString.call(process) === '[object process]');
var RouteRecognizer = appearsBrowserified ? getModuleDefault(require('route-recognizer')) : self.RouteRecognizer;
var FakeXMLHttpRequest = appearsBrowserified ? getModuleDefault(require('fake-xml-http-request')) :
self.FakeXMLHttpRequest;
// fetch related ponyfills
var FakeFetch = appearsBrowserified ? getModuleDefault(require('whatwg-fetch')) : self.WHATWGFetch;
`,
footer:
`
if (typeof module === 'object') {
module.exports = Pretender;
} else if (typeof define !== 'undefined') {
define('pretender', [], function() {
return Pretender;
});
}
self.Pretender = Pretender;
return Pretender;
}(self));`,
};
const rollupTemplate = fs.readFileSync('./iife-wrapper.js').toString();
const [ banner, footer ] = rollupTemplate.split('/*==ROLLUP_CONTENT==*/');

module.exports = {
input: 'src/index.ts',
Expand All @@ -54,18 +20,14 @@ module.exports = {
name: 'Pretender',
file: pkg.main,
format: 'iife',
globals: globals,
banner: iife.banner,
footer: iife.footer,
globals,
banner,
footer
},
{
file: pkg.module,
format: 'es',
},
],
plugins: [
commonjs(),
resolve(),
typescript()
format: 'es'
}
],
plugins: [commonjs(), resolve(), typescript()]
};

0 comments on commit 5a07d62

Please sign in to comment.