UNPKG

@interopio/gateway

Version:

[![npm version](https://img.shields.io/npm/v/@interopio/gateway.svg)](https://www.npmjs.com/package/@interopio/gateway)

4 lines (3 loc) 1.72 kB
"use strict";var u=Object.create;var o=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var b=(e,r)=>{for(var t in r)o(e,t,{get:r[t],enumerable:!0})},l=(e,r,t,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of h(r))!y.call(e,i)&&i!==t&&o(e,i,{get:()=>r[i],enumerable:!(s=g(r,i))||s.enumerable});return e};var m=(e,r,t)=>(t=e!=null?u(w(e)):{},l(r||!e||!e.__esModule?o(t,"default",{value:e,enumerable:!0}):t,e)),F=e=>l(o({},"__esModule",{value:!0}),e);var A={};b(A,{create:()=>v,jsonFileAppender:()=>d,name:()=>P});module.exports=F(A);var n=m(require("fs"),1),f=m(require("path"),1),p=class{constructor(r){this.logger=r}stream;async open(r,t=!1){let s=f.dirname(r);return await new Promise((i,c)=>n.mkdir(s,{recursive:!0},a=>{a?(this.logger.error(`error creating directory ${s}`,a),c(a)):i()})),this.stream=n.createWriteStream(r,{flags:t?"a":"w"}),this.stream.on("error",i=>{this.logger.warn(`write stream error. location: ${r}, append: ${t}`,i)}),this}async write(r){return await new Promise((t,s)=>{this.stream?this.stream.write(JSON.stringify(r)+` `,i=>{i&&this.logger.error("failed to write json line in current write stream",i)})?t():this.stream.once("drain",()=>{t()}):s(new Error("no stream - did you call open()"))}),this}close(){this.stream&&(this.stream.end(),this.stream=void 0)}},P="file";function d(e){return new p(e)}function v(e,r){let t=d(r);return async s=>{if(s==="start")return await t.open(e.location,e.append??!1),t;if(s==="stop")return i=>{i.close()};!(e.status??!1)&&s.status||await t.write(s)}}0&&(module.exports={create,jsonFileAppender,name}); //# sourceMappingURL=file.cjs.map