UNPKG

seneca

Version:

A Microservices Framework for Node.js

72 lines 2.93 kB
/* Copyright © 2021 Richard Rodger and other contributors, MIT License. */ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.Meta = void 0; class Meta { constructor(instance, opts, origmsg, origreply) { this.start = Date.now(); this.mi = ''; this.tx = ''; this.id = ''; this.version = '0.1.0'; this.gate = false; this.fatal = false; this.closing = false; this.sync = true; this.local = true; this.remote = false; this.timeout = 0; let id_tx = Meta.resolve_msg_id_tx(instance, origmsg); let origmeta = origmsg.meta$; // Only a limited set of meta properties can be fixed let fixedmeta = instance.fixedmeta || {}; this.mi = id_tx[0]; this.tx = id_tx[1]; this.id = id_tx[0] + '/' + id_tx[1]; this.instance = instance.id; this.tag = instance.tag; this.seneca = instance.version; this.gate = !!origmsg.gate$ || fixedmeta.gate; this.fatal = !!origmsg.fatal$ || fixedmeta.fatal; this.local = !!origmsg.local$ || fixedmeta.local; this.closing = !!origmsg.closing$ || (origmeta && origmeta.closing); this.timeout = Math.max(0, 'number' === typeof origmsg.timeout$ ? origmsg.timeout$ : opts.timeout); this.dflt = origmsg.default$ || (origmeta && origmeta.dflt); // NOTE: do not create object here if not provided explicitly. // The parent custom object will be used when available during inward processing. // This preserves object ref of custom object, as it is shared over calls this.custom = origmsg.custom$ || (origmeta && origmeta.custom) || null; this.plugin = origmsg.plugin$; this.prior = origmsg.prior$; this.caller = origmsg.caller$; this.parents = origmsg.parents$; // Only true for arriving messages. Child messages called from an // action triggered by a remote message are not considered remote. this.remote = !!origmsg.remote$; this.sync = null != origmsg.sync$ ? !!origmsg.sync$ : origmeta && null != origmeta.sync ? !!origmeta.sync : 'function' === typeof origreply; this.trace = null; this.sub = null; this.data = null; this.err = null; this.err_trace = null; this.error = null; this.empty = null; } static resolve_msg_id_tx(instance, origmsg) { let id_tx = (origmsg.id$ || origmsg.actid$ || instance.idgen()).split('/'); id_tx[1] = id_tx[1] || origmsg.tx$ || instance.fixedargs.tx$ || instance.idgen(); id_tx[0] = id_tx[0] || instance.idgen(); return id_tx; } } exports.Meta = Meta; //# sourceMappingURL=meta.js.map