Files
rss-nostr-lambda/node_modules/tstl/exception/global.js
T

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