mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-03 00:09:56 +08:00
67 lines
1.6 KiB
JavaScript
67 lines
1.6 KiB
JavaScript
/*
|
|
_ __ _ __
|
|
| | / /___ _(_) /____
|
|
| | /| / / __ `/ / / ___/
|
|
| |/ |/ / /_/ / / (__ )
|
|
|__/|__/\__,_/_/_/____/
|
|
The lightweight framework for web-like apps
|
|
(c) Lea Anthony 2019-present
|
|
*/
|
|
/* jshint esversion: 6 */
|
|
|
|
import { Call } from './calls';
|
|
|
|
window.backend = {};
|
|
|
|
export function SetBindings(bindingsMap) {
|
|
try {
|
|
bindingsMap = JSON.parse(bindingsMap);
|
|
} catch (e) {
|
|
console.error(e);
|
|
}
|
|
|
|
// Initialise the backend map
|
|
window.backend = window.backend || {};
|
|
|
|
// Iterate package names
|
|
Object.keys(bindingsMap).forEach((packageName) => {
|
|
|
|
// Create inner map if it doesn't exist
|
|
window.backend[packageName] = window.backend[packageName] || {};
|
|
|
|
// Iterate struct names
|
|
Object.keys(bindingsMap[packageName]).forEach((structName) => {
|
|
|
|
// Create inner map if it doesn't exist
|
|
window.backend[packageName][structName] = window.backend[packageName][structName] || {};
|
|
|
|
Object.keys(bindingsMap[packageName][structName]).forEach((methodName) => {
|
|
|
|
window.backend[packageName][structName][methodName] = function () {
|
|
|
|
// No timeout by default
|
|
let timeout = 0;
|
|
|
|
// Actual function
|
|
function dynamic() {
|
|
const args = [].slice.call(arguments);
|
|
return Call([packageName, structName, methodName].join('.'), args, timeout);
|
|
}
|
|
|
|
// Allow setting timeout to function
|
|
dynamic.setTimeout = function (newTimeout) {
|
|
timeout = newTimeout;
|
|
};
|
|
|
|
// Allow getting timeout to function
|
|
dynamic.getTimeout = function () {
|
|
return timeout;
|
|
};
|
|
|
|
return dynamic;
|
|
}();
|
|
});
|
|
});
|
|
});
|
|
}
|