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 c=Object.create;var a=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var F=(e,r)=>{for(var t in r)a(e,t,{get:r[t],enumerable:!0})},m=(e,r,t,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of w(r))!y.call(e,i)&&i!==t&&a(e,i,{get:()=>r[i],enumerable:!(s=u(r,i))||s.enumerable});return e};var p=(e,r,t)=>(t=e!=null?c(h(e)):{},m(r||!e||!e.__esModule?a(t,"default",{value:e,enumerable:!0}):t,e)),L=e=>m(a({},"__esModule",{value:!0}),e);var b={};F(b,{create:()=>P,jsonFileAppender:()=>d,name:()=>O});module.exports=L(b);var n=p(require("fs"),1),f=p(require("path"),1),l=class{constructor(r){this.logger=r}stream;async open(r,t=!1){let s=f.dirname(r);return await new Promise((i,g)=>n.mkdir(s,{recursive:!0},o=>{o?(this.logger.error(`error creating directory ${s}`,o),g(o)):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)})?this.stream.once("drain",()=>{t()}):t():s(new Error("no stream - did you call open()"))}),this}close(){this.stream&&(this.stream.end(),this.stream=void 0)}},O="file";function d(e){return new l(e)}function P(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