init
This commit is contained in:
212
nv/html/nv-nopdf/styles/packages/callback-hook.js
Normal file
212
nv/html/nv-nopdf/styles/packages/callback-hook.js
Normal file
@@ -0,0 +1,212 @@
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// This is a generated file. You can view the original //
|
||||
// source in your browser if your browser supports source maps. //
|
||||
// Source maps are supported by all recent versions of Chrome, Safari, //
|
||||
// and Firefox, and by Internet Explorer 11. //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
(function () {
|
||||
|
||||
/* Imports */
|
||||
var Meteor = Package.meteor.Meteor;
|
||||
var global = Package.meteor.global;
|
||||
var meteorEnv = Package.meteor.meteorEnv;
|
||||
var meteorInstall = Package.modules.meteorInstall;
|
||||
var meteorBabelHelpers = Package['babel-runtime'].meteorBabelHelpers;
|
||||
var Promise = Package.promise.Promise;
|
||||
var Symbol = Package['ecmascript-runtime-client'].Symbol;
|
||||
var Map = Package['ecmascript-runtime-client'].Map;
|
||||
var Set = Package['ecmascript-runtime-client'].Set;
|
||||
|
||||
/* Package-scope variables */
|
||||
var Hook;
|
||||
|
||||
var require = meteorInstall({"node_modules":{"meteor":{"callback-hook":{"hook.js":function(require,exports,module){
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// packages/callback-hook/hook.js //
|
||||
// //
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
module.export({
|
||||
Hook: function () {
|
||||
return Hook;
|
||||
}
|
||||
});
|
||||
// XXX This pattern is under development. Do not add more callsites
|
||||
// using this package for now. See:
|
||||
// https://meteor.hackpad.com/Design-proposal-Hooks-YxvgEW06q6f
|
||||
//
|
||||
// Encapsulates the pattern of registering callbacks on a hook.
|
||||
//
|
||||
// The `each` method of the hook calls its iterator function argument
|
||||
// with each registered callback. This allows the hook to
|
||||
// conditionally decide not to call the callback (if, for example, the
|
||||
// observed object has been closed or terminated).
|
||||
//
|
||||
// By default, callbacks are bound with `Meteor.bindEnvironment`, so they will be
|
||||
// called with the Meteor environment of the calling code that
|
||||
// registered the callback. Override by passing { bindEnvironment: false }
|
||||
// to the constructor.
|
||||
//
|
||||
// Registering a callback returns an object with a single `stop`
|
||||
// method which unregisters the callback.
|
||||
//
|
||||
// The code is careful to allow a callback to be safely unregistered
|
||||
// while the callbacks are being iterated over.
|
||||
//
|
||||
// If the hook is configured with the `exceptionHandler` option, the
|
||||
// handler will be called if a called callback throws an exception.
|
||||
// By default (if the exception handler doesn't itself throw an
|
||||
// exception, or if the iterator function doesn't return a falsy value
|
||||
// to terminate the calling of callbacks), the remaining callbacks
|
||||
// will still be called.
|
||||
//
|
||||
// Alternatively, the `debugPrintExceptions` option can be specified
|
||||
// as string describing the callback. On an exception the string and
|
||||
// the exception will be printed to the console log with
|
||||
// `Meteor._debug`, and the exception otherwise ignored.
|
||||
//
|
||||
// If an exception handler isn't specified, exceptions thrown in the
|
||||
// callback will propagate up to the iterator function, and will
|
||||
// terminate calling the remaining callbacks if not caught.
|
||||
var hasOwn = Object.prototype.hasOwnProperty;
|
||||
|
||||
var Hook =
|
||||
/*#__PURE__*/
|
||||
function () {
|
||||
function Hook(options) {
|
||||
options = options || {};
|
||||
this.nextCallbackId = 0;
|
||||
this.callbacks = Object.create(null); // Whether to wrap callbacks with Meteor.bindEnvironment
|
||||
|
||||
this.bindEnvironment = true;
|
||||
|
||||
if (options.bindEnvironment === false) {
|
||||
this.bindEnvironment = false;
|
||||
}
|
||||
|
||||
if (options.exceptionHandler) {
|
||||
this.exceptionHandler = options.exceptionHandler;
|
||||
} else if (options.debugPrintExceptions) {
|
||||
if (typeof options.debugPrintExceptions !== "string") {
|
||||
throw new Error("Hook option debugPrintExceptions should be a string");
|
||||
}
|
||||
|
||||
this.exceptionHandler = options.debugPrintExceptions;
|
||||
}
|
||||
}
|
||||
|
||||
var _proto = Hook.prototype;
|
||||
|
||||
_proto.register = function () {
|
||||
function register(callback) {
|
||||
var _this2 = this;
|
||||
|
||||
var exceptionHandler = this.exceptionHandler || function (exception) {
|
||||
// Note: this relies on the undocumented fact that if bindEnvironment's
|
||||
// onException throws, and you are invoking the callback either in the
|
||||
// browser or from within a Fiber in Node, the exception is propagated.
|
||||
throw exception;
|
||||
};
|
||||
|
||||
if (this.bindEnvironment) {
|
||||
callback = Meteor.bindEnvironment(callback, exceptionHandler);
|
||||
} else {
|
||||
callback = dontBindEnvironment(callback, exceptionHandler);
|
||||
}
|
||||
|
||||
var id = this.nextCallbackId++;
|
||||
this.callbacks[id] = callback;
|
||||
return {
|
||||
stop: function () {
|
||||
delete _this2.callbacks[id];
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return register;
|
||||
}(); // For each registered callback, call the passed iterator function
|
||||
// with the callback.
|
||||
//
|
||||
// The iterator function can choose whether or not to call the
|
||||
// callback. (For example, it might not call the callback if the
|
||||
// observed object has been closed or terminated).
|
||||
//
|
||||
// The iteration is stopped if the iterator function returns a falsy
|
||||
// value or throws an exception.
|
||||
//
|
||||
|
||||
|
||||
_proto.each = function () {
|
||||
function each(iterator) {
|
||||
// Invoking bindEnvironment'd callbacks outside of a Fiber in Node doesn't
|
||||
// run them to completion (and exceptions thrown from onException are not
|
||||
// propagated), so we need to be in a Fiber.
|
||||
Meteor._nodeCodeMustBeInFiber();
|
||||
|
||||
var ids = Object.keys(this.callbacks);
|
||||
|
||||
for (var i = 0; i < ids.length; ++i) {
|
||||
var id = ids[i]; // check to see if the callback was removed during iteration
|
||||
|
||||
if (hasOwn.call(this.callbacks, id)) {
|
||||
var callback = this.callbacks[id];
|
||||
|
||||
if (!iterator(callback)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return each;
|
||||
}();
|
||||
|
||||
return Hook;
|
||||
}();
|
||||
|
||||
// Copied from Meteor.bindEnvironment and removed all the env stuff.
|
||||
function dontBindEnvironment(func, onException, _this) {
|
||||
if (!onException || typeof onException === 'string') {
|
||||
var description = onException || "callback of async function";
|
||||
|
||||
onException = function (error) {
|
||||
Meteor._debug("Exception in " + description + ":", error && error.stack || error);
|
||||
};
|
||||
}
|
||||
|
||||
return function () {
|
||||
try {
|
||||
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
||||
args[_key] = arguments[_key];
|
||||
}
|
||||
|
||||
var ret = func.apply(_this, args);
|
||||
} catch (e) {
|
||||
onException(e);
|
||||
}
|
||||
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
}}}}},{
|
||||
"extensions": [
|
||||
".js",
|
||||
".json"
|
||||
]
|
||||
});
|
||||
var exports = require("/node_modules/meteor/callback-hook/hook.js");
|
||||
|
||||
/* Exports */
|
||||
Package._define("callback-hook", exports, {
|
||||
Hook: Hook
|
||||
});
|
||||
|
||||
})();
|
||||
Reference in New Issue
Block a user