Files

89 lines
2.1 KiB
JavaScript
Raw Permalink Normal View History

2019-07-12 10:12:15 +10:00
/*
_ __ _ __
2019-07-12 10:12:15 +10:00
| | / /___ _(_) /____
| | /| / / __ `/ / / ___/
| |/ |/ / /_/ / / (__ )
|__/|__/\__,_/_/_/____/
2019-07-12 10:12:15 +10:00
The lightweight framework for web-like apps
(c) Lea Anthony 2019-present
*/
2019-07-13 15:34:00 +10:00
/* jshint esversion: 6 */
2019-07-12 10:12:15 +10:00
import * as Log from './log';
2019-07-20 19:32:30 +10:00
import * as Browser from './browser';
2021-09-27 21:05:43 +10:00
import {Acknowledge, Emit, Heartbeat, Notify, On, OnMultiple} from './events';
import {NewBinding} from './bindings';
import {Callback} from './calls';
import {AddScript, InjectCSS, InjectFirebug} from './utils';
import {AddIPCListener} from './ipc';
2020-08-30 15:49:12 +10:00
import * as Store from './store';
2019-07-12 10:12:15 +10:00
// Initialise global if not already
window.wails = window.wails || {};
window.backend = {};
// On webkit2gtk >= 2.32, the external object is not passed to the window context.
// However, IE will throw a strict mode error if window.external is assigned to
// so we need to make sure that line of code isn't reached in IE
// Using !window.external transpiles to `window.external = window.external || ...`
// so we have to use an explicit if statement to prevent webpack from optimizing the code.
if (window.external == undefined) {
window.external = {
2021-09-27 21:05:43 +10:00
invoke: function (x) {
window.webkit.messageHandlers.external.postMessage(x);
}
};
}
2019-07-12 10:12:15 +10:00
// Setup internal calls
var internal = {
2019-07-13 22:10:43 +10:00
NewBinding,
Callback,
Notify,
AddScript,
2019-07-20 19:32:30 +10:00
InjectCSS,
Init,
2019-11-27 22:55:19 +11:00
AddIPCListener,
2019-07-13 22:10:43 +10:00
};
2019-07-12 10:12:15 +10:00
// Setup runtime structure
var runtime = {
2019-07-13 22:10:43 +10:00
Log,
2019-07-20 19:32:30 +10:00
Browser,
2019-07-13 22:10:43 +10:00
Events: {
On,
2019-10-06 14:20:59 +11:00
OnMultiple,
2019-07-13 22:10:43 +10:00
Emit,
Heartbeat,
Acknowledge,
},
2020-08-30 15:49:12 +10:00
Store,
2019-07-13 22:10:43 +10:00
_: internal,
};
2019-07-12 10:12:15 +10:00
// Augment global
Object.assign(window.wails, runtime);
2019-11-27 21:28:33 +11:00
// Setup global error handler
window.onerror = function (msg, url, lineNo, columnNo, error) {
window.wails.Log.Error('**** Caught Unhandled Error ****');
window.wails.Log.Error('Message: ' + msg);
window.wails.Log.Error('URL: ' + url);
window.wails.Log.Error('Line No: ' + lineNo);
window.wails.Log.Error('Column No: ' + columnNo);
window.wails.Log.Error('error: ' + error);
};
2020-10-28 21:20:47 +11:00
// Use firebug?
2021-09-27 21:05:43 +10:00
if (window.usefirebug) {
2020-10-28 21:20:47 +11:00
InjectFirebug();
}
2019-07-12 10:12:15 +10:00
// Emit loaded event
2019-07-20 19:32:30 +10:00
Emit('wails:loaded');
// Nothing to init in production
export function Init(callback) {
callback();
}