{"version":3,"file":"peek42.node.mjs","sources":["../src/universal/base.js","../src/node/cable.js","../src/node/peek42.js"],"sourcesContent":["import {\n  name as LIB_NAME,\n  version as LIB_VERSION\n} from '../../package.json';\n\nfunction _isNullProtoObject(val) {\n  return typeof val === 'object' &&\n    val !== null &&\n    val.__proto__ === undefined;\n}\n\nfunction _string(val) {\n  return (_isNullProtoObject(val)) ?\n    '[object Object(proto:Null)]' :\n    String(val);\n}\n\nfunction _comment(comment, val, note = undefined) {\n  if (comment !== undefined && comment !== '') {\n    return comment;\n  }\n\n  let str = _string(val).replace(/\\s+/gm, ' ');\n  let max = 69;\n\n  if (str.length > max) {\n    str = `${str.substr(0, max)}...`;\n  }\n\n  return (note === undefined) ?\n    str :\n    `(${note}) ${str}`;\n}\n\nconst _outputOptsDefaults = {\n  level: 'log',\n  collapsed: false\n};\n\nfunction _prettyMakesSense(val) {\n  return (val instanceof Object && !(val instanceof Function)) ||\n    _isNullProtoObject(val);\n}\n\nfunction pretty(val) {\n  let objs = [];\n  let keys = [];\n\n  return JSON.stringify(val, (k, v) => {\n    if (v instanceof Object || _isNullProtoObject(v)) {\n      let seen = objs.indexOf(v);\n\n      if (seen === -1) {\n        objs.push(v);\n        keys.push(k || 'ROOT');\n\n        return v;\n      }\n\n      return `${_string(v)} (ref to ${keys[seen]})`;\n    }\n\n    return v;\n  }, 2);\n}\n\nfunction p(val, comment = undefined, opts = undefined) {\n  peek42._output(\n    val,\n    _comment(comment, val, 'value'),\n    opts\n  );\n}\n\np.pretty = function (val, comment = undefined, opts = undefined) {\n  peek42._output(\n    (_prettyMakesSense(val)) ? pretty(val) : val,\n    _comment(comment, val, 'pretty'),\n    opts\n  );\n};\n\nfunction pp(...args) {\n  ((p.inspect) ? p.inspect : p.pretty)(...args);\n}\n\nfunction use(lib) {\n  Object.assign(p,\n    lib.peek42(p, _comment)\n  );\n\n  return peek42;\n}\n\nconst peek42 = {\n  get [Symbol.toStringTag]() {\n    return LIB_NAME;\n  },\n  version: LIB_VERSION,\n  pretty,\n  p,\n  pp,\n  use\n};\n\nexport {\n  _string,\n  _comment,\n  _outputOptsDefaults,\n  _prettyMakesSense,\n  pretty,\n  p,\n  pp,\n  use\n};\nexport default peek42;\n","import EventEmitter from 'events';\n\nconst cable = {\n  __proto__: EventEmitter.prototype,\n\n  // Call as early as possible on new client connecting\n  /* e.g. in a pre-routing http get middleware\n    httpRouter.get('/', (ctx, next) => {\n      peek42.cable.init0();\n\n      next();\n    });\n  */\n  init0() {\n    this.init(null);\n  },\n\n  // Between init0 and init calls, any cp call will\n  // wait for the websocket promise to resolve.\n  // (If init0 is not called, there will be a dead zone during\n  // which cp calls will use the previous (probably stale)\n  // peek42 websocket)\n\n  // Call as soon as peek42 websocket is available\n  /* e.g. in the peek42 websocket get middleware\n    wsRouter.get('/peek42', ctx => {\n      peek42.cable.init(ctx.websocket);\n    });\n  */\n  init(websocket) {\n    if (this._websocket) {\n      this._websocket.terminate();\n    }\n\n    if (!websocket) {\n      this._websocket = null;\n    } else {\n      this._websocket = websocket;\n\n      this.emit('ready');\n    }\n  },\n\n  get websocket() {\n    return new Promise((resolve, reject) => {\n      if (this._websocket) {\n        resolve(this._websocket);\n      } else {\n        this.on('ready', () => resolve(this._websocket));\n      }\n    });\n  }\n};\n\nconst _send = async (val, comment, opts) => (await cable.websocket).\n  send(JSON.stringify({val, comment, opts}));\n\nexport {\n  cable,\n  _send\n};\n","import peek42, {\n  _string,\n  _comment,\n  _outputOptsDefaults,\n  _prettyMakesSense,\n  pretty,\n  p,\n  pp\n} from '../universal/base';\nimport {cable, _send} from './cable';\n\nfunction _output(val, comment, opts = {}) {\n  opts = {..._outputOptsDefaults, ...opts};\n\n  let str = (comment === null) ?\n    _string(val) :\n    `// ${String(comment)}\\n${_string(val)}`;\n\n  console[opts.level](str);\n}\n\nfunction cp(val, comment = undefined, opts = undefined) {\n  _send(\n    val,\n    _comment(comment, val, 'value'),\n    opts\n  );\n}\n\nfunction cpp(val, comment = undefined, opts = undefined) {\n  _send(\n    (_prettyMakesSense(val)) ? pretty(val) : val,\n    _comment(comment, val, 'pretty'),\n    opts\n  );\n}\n\np.trace = (comment = undefined, opts = undefined) => {\n  let stack = ((new Error).stack || '\\n').split('\\n').\n    map(entry => entry.trim());\n  let trace = (stack.shift(), stack.shift(), stack);\n  let loc = trace[0];\n\n  _output(\n    trace.join('\\n'),\n    _comment(comment, loc, `trace`),\n    opts\n  );\n};\n\ncp.trace = (comment = undefined, opts = undefined) => {\n  let stack = ((new Error).stack || '\\n').split('\\n').\n    map(entry => entry.trim());\n  let trace = (stack.shift(), stack.shift(), stack);\n  let loc = trace[0];\n\n  _send(\n    trace.join('\\n'),\n    _comment(comment, loc, `trace`),\n    opts\n  );\n};\n\nfunction use(lib) {\n  Object.assign(p,\n    lib.peek42(p, _comment)\n  );\n\n  Object.assign(cp,\n    lib.peek42(cp, _comment)\n  );\n\n  return peek42;\n}\n\nObject.assign(peek42, {\n  _output,\n  cable,\n  cp,\n  cpp,\n  use // Overwrite the value from '../universal/base'\n});\n\nexport default peek42;\n"],"names":["_isNullProtoObject","val","__proto__","undefined","_string","String","_comment","comment","note","str","replace","max","length","substr","_outputOptsDefaults","level","collapsed","_prettyMakesSense","Object","Function","pretty","objs","keys","JSON","stringify","k","v","seen","indexOf","push","p","opts","peek42","_output","pp","args","inspect","use","lib","assign","Symbol","toStringTag","LIB_NAME","version","LIB_VERSION","cable","EventEmitter","prototype","init0","init","websocket","_websocket","terminate","emit","Promise","resolve","reject","on","_send","send","console","cp","cpp","trace","stack","Error","split","map","entry","trim","shift","loc","join"],"mappings":"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"}