/// /// import freedom_types = require('freedom.types'); export interface OnEmitModule extends freedom_types.OnAndEmit {}; export interface OnEmitModuleFactory extends freedom_types.FreedomModuleFactoryManager {}; var script = document.createElement('script'); script.src = 'freedom-for-chrome/freedom-for-chrome.js'; document.head.appendChild(script); // Keep a background timeout running continuously, to prevent chrome from // putting the app to sleep. function keepAlive() { setTimeout(keepAlive, 5000); } keepAlive(); export var freedomModule :OnEmitModule = null; export function runFreedomModule(modulePath:string) :void { freedom(modulePath, { 'logger': 'uproxy-lib/loggingprovider/freedom-module.json', 'debug': 'debug' }).then((freedomModuleFactory:OnEmitModuleFactory) => { freedomModule = freedomModuleFactory(); }, (e:Error) => { throw e; }); } console.info( 'This is a sample app to run top level freedom modules. \n' + 'This can be helpful to debug integration test failures, for example. + \n' + 'Example usage: \n ' + ' browserified_exports.runFreedomModule(' + '\'uproxy-networking/integration-tests/tcp/freedom-module.json\'); \n' + 'or \n' + ' browserified_exports.runFreedomModule(' + '\'uproxy-networking/simple-socks/freedom-module.json\'); \n' + 'Then, once loaded, you can bind the module with something like this: \n' + ' var m = browserified_exports.freedomModule; \n' );