73 lines
2.2 KiB
JavaScript
73 lines
2.2 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.get_terminate = exports.set_terminate = exports.terminate = void 0;
|
|
//================================================================
|
|
/**
|
|
* @packageDocumentation
|
|
* @module std
|
|
*/
|
|
//================================================================
|
|
var node_1 = require("../utility/node");
|
|
var Global_1 = require("../internal/Global");
|
|
/**
|
|
* Terminate program.
|
|
*/
|
|
function terminate() {
|
|
if ((0, node_1.is_node)() === true)
|
|
global.process.exit();
|
|
else {
|
|
if (typeof window !== "undefined" && self.open instanceof Function)
|
|
self.open("", "_self", "");
|
|
self.close();
|
|
}
|
|
}
|
|
exports.terminate = terminate;
|
|
/**
|
|
* Set terminate handler.
|
|
*
|
|
* @param func The terminate handler.
|
|
*/
|
|
function set_terminate(func) {
|
|
//----
|
|
// PREPARE EVENT LISTENER
|
|
//----
|
|
var type;
|
|
var register;
|
|
var eraser;
|
|
if ((0, node_1.is_node)() === true) {
|
|
type = "exit";
|
|
register = function (type, listener) {
|
|
return global.process.addListener(type, listener);
|
|
};
|
|
eraser = function (type, listener) {
|
|
return global.process.removeListener(type, listener);
|
|
};
|
|
}
|
|
else {
|
|
// IF WORKER, THEN CANNOT ASSURE ACTIVATION.
|
|
type = typeof window !== "undefined" ? "unload" : "close";
|
|
register = function (type, listener) { return self.addEventListener(type, listener); };
|
|
eraser = function (type, listener) { return self.removeEventListener(type, listener); };
|
|
}
|
|
//----
|
|
// ENROLL THE LISTENER
|
|
//----
|
|
// ERASE ORDINARY
|
|
if ((0, Global_1._Get_root)().__s_pTerminate_handler !== undefined)
|
|
eraser(type, (0, Global_1._Get_root)().__s_pTerminate_handler);
|
|
// DO REGISTER
|
|
register("exit", func);
|
|
// ARCHIVE THE LISTENER
|
|
(0, Global_1._Get_root)().__s_pTerminate_handler = func;
|
|
}
|
|
exports.set_terminate = set_terminate;
|
|
/**
|
|
* Get terminate handler.
|
|
*
|
|
* @return The terminate handler.
|
|
*/
|
|
function get_terminate() {
|
|
return (0, Global_1._Get_root)().__s_pTerminate_handler;
|
|
}
|
|
exports.get_terminate = get_terminate;
|
|
//# sourceMappingURL=global.js.map
|