@effect/platform 0.63.3 → 0.64.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Etag.js +11 -1
- package/dist/cjs/Etag.js.map +1 -1
- package/dist/cjs/HttpApiBuilder.js +35 -1
- package/dist/cjs/HttpApiBuilder.js.map +1 -1
- package/dist/cjs/HttpPlatform.js +6 -1
- package/dist/cjs/HttpPlatform.js.map +1 -1
- package/dist/cjs/Socket.js +56 -16
- package/dist/cjs/Socket.js.map +1 -1
- package/dist/cjs/internal/etag.js +42 -1
- package/dist/cjs/internal/etag.js.map +1 -1
- package/dist/cjs/internal/httpPlatform.js +28 -4
- package/dist/cjs/internal/httpPlatform.js.map +1 -1
- package/dist/cjs/internal/httpServerResponse.js +5 -4
- package/dist/cjs/internal/httpServerResponse.js.map +1 -1
- package/dist/cjs/internal/multipart.js +1 -3
- package/dist/cjs/internal/multipart.js.map +1 -1
- package/dist/dts/Etag.d.ts +11 -0
- package/dist/dts/Etag.d.ts.map +1 -1
- package/dist/dts/HttpApiBuilder.d.ts +29 -1
- package/dist/dts/HttpApiBuilder.d.ts.map +1 -1
- package/dist/dts/HttpPlatform.d.ts +6 -0
- package/dist/dts/HttpPlatform.d.ts.map +1 -1
- package/dist/dts/Socket.d.ts +20 -3
- package/dist/dts/Socket.d.ts.map +1 -1
- package/dist/esm/Etag.js +10 -0
- package/dist/esm/Etag.js.map +1 -1
- package/dist/esm/HttpApiBuilder.js +33 -0
- package/dist/esm/HttpApiBuilder.js.map +1 -1
- package/dist/esm/HttpPlatform.js +5 -0
- package/dist/esm/HttpPlatform.js.map +1 -1
- package/dist/esm/Socket.js +53 -15
- package/dist/esm/Socket.js.map +1 -1
- package/dist/esm/internal/etag.js +41 -0
- package/dist/esm/internal/etag.js.map +1 -1
- package/dist/esm/internal/httpPlatform.js +28 -4
- package/dist/esm/internal/httpPlatform.js.map +1 -1
- package/dist/esm/internal/httpServerResponse.js +4 -3
- package/dist/esm/internal/httpServerResponse.js.map +1 -1
- package/dist/esm/internal/multipart.js +1 -3
- package/dist/esm/internal/multipart.js.map +1 -1
- package/package.json +2 -2
- package/src/Etag.ts +13 -0
- package/src/HttpApiBuilder.ts +46 -2
- package/src/HttpPlatform.ts +7 -0
- package/src/Socket.ts +97 -23
- package/src/internal/etag.ts +43 -0
- package/src/internal/httpPlatform.ts +32 -4
- package/src/internal/httpServerResponse.ts +6 -3
- package/src/internal/multipart.ts +1 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multipart.js","names":["Schema","Cause","Channel","Chunk","Effect","FiberRef","dual","flow","pipe","globalValue","Inspectable","Option","Predicate","Queue","Stream","MP","TypeIdError","FileSystem","IncomingMessage","Path","TypeId","Symbol","for","isPart","u","hasProperty","isField","_tag","isFile","isPersistedFile","isTagged","ErrorTypeId","MultipartError","message","reason","maxParts","unsafeMake","none","withMaxParts","effect","count","locally","maxFieldSize","Size","withMaxFieldSize","size","maxFileSize","withMaxFileSize","map","fieldMimeTypes","make","withFieldMimeTypes","mimeTypes","fromIterable","FileSchema","declare","identifier","jsonSchema","type","format","FilesSchema","Array","SingleFileSchema","transform","itemsCount","strict","decode","file","encode","schemaPersisted","schema","options","parse","decodeUnknown","persisted","schemaJson","fromJson","parseJson","field","Struct","_","makeConfig","headers","all","get","getOrUndefined","Number","maxPartSize","maxTotalSize","maxBodySize","length","undefined","info","some","contentType","includes","defaultIsFile","makeChannel","bufferSize","acquireUseRelease","bounded","config","queue","makeFromQueue","shutdown","suspend","error","partsBuffer","partsFinished","input","awaitRead","void","emit","element","offer","cause","done","_value","parser","onField","value","push","FieldImpl","name","decodeField","onFile","chunks","finished","take","zipRight","pump","chunk","unsafeFromArray","write","FileImpl","onError","error_","fail","convertError","onDone","flatMap","sync","end","forEach","buf","takeParts","parts","partsChannel","failCause","embedInput","limit","PartBase","Class","constructor","key","toJSON","_id","content","channel","filename","fromChannel","defaultWriteFile","path","fs","mapError","run","sink","toPersisted","stream","writeFile","Do","bind","makeTempDirectoryScoped","dir","path_","runFoldEffect","Object","create","part","succeed","join","basename","slice","isArray","PersistedFileImpl","as","catchTags","SystemError","BadArgument"],"sources":["../../../src/internal/multipart.ts"],"sourcesContent":[null],"mappings":"AAEA,OAAO,KAAKA,MAAM,MAAM,uBAAuB;AAC/C,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,SAASC,IAAI,EAAEC,IAAI,EAAEC,IAAI,QAAQ,iBAAiB;AAClD,SAASC,WAAW,QAAQ,oBAAoB;AAChD,OAAO,KAAKC,WAAW,MAAM,oBAAoB;AACjD,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,KAAK,MAAM,cAAc;AAGrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,EAAE,MAAM,YAAY;AAChC,SAASC,WAAW,QAAQ,aAAa;AACzC,OAAO,KAAKC,UAAU,MAAM,kBAAkB;AAC9C,OAAO,KAAKC,eAAe,MAAM,2BAA2B;AAE5D,OAAO,KAAKC,IAAI,MAAM,YAAY;AAElC;AACA,OAAO,MAAMC,MAAM,gBAAqBC,MAAM,CAACC,GAAG,CAAC,4BAA4B,CAAqB;AAEpG;AACA,OAAO,MAAMC,MAAM,GAAIC,CAAU,IAA0BZ,SAAS,CAACa,WAAW,CAACD,CAAC,EAAEJ,MAAM,CAAC;AAE3F;AACA,OAAO,MAAMM,OAAO,GAAIF,CAAU,IAA2BD,MAAM,CAACC,CAAC,CAAC,IAAIA,CAAC,CAACG,IAAI,KAAK,OAAO;AAE5F;AACA,OAAO,MAAMC,MAAM,GAAIJ,CAAU,IAA0BD,MAAM,CAACC,CAAC,CAAC,IAAIA,CAAC,CAACG,IAAI,KAAK,MAAM;AAEzF;AACA,OAAO,MAAME,eAAe,GAAIL,CAAU,IACxCZ,SAAS,CAACa,WAAW,CAACD,CAAC,EAAEJ,MAAM,CAAC,IAAIR,SAAS,CAACkB,QAAQ,CAACN,CAAC,EAAE,eAAe,CAAC;AAE5E;AACA,OAAO,MAAMO,WAAW,gBAA0BV,MAAM,CAACC,GAAG,CAC1D,2CAA2C,CACnB;AAE1B;AACA,OAAM,MAAOU,cAAe,sBAAQhB,WAAW,CAACe,WAAW,EAAE,gBAAgB,CAG3E;EACA,IAAIE,OAAOA,CAAA;IACT,OAAO,IAAI,CAACC,MAAM;EACpB;;AAGF;AACA,OAAO,MAAMC,QAAQ,gBAA6C1B,WAAW,CAC3E,qCAAqC,EACrC,MAAMJ,QAAQ,CAAC+B,UAAU,CAACzB,MAAM,CAAC0B,IAAI,EAAU,CAAC,CACjD;AAED;AACA,OAAO,MAAMC,YAAY,gBAAGhC,IAAI,CAG9B,CAAC,EAAE,CAACiC,MAAM,EAAEC,KAAK,KAAKpC,MAAM,CAACqC,OAAO,CAACF,MAAM,EAAEJ,QAAQ,EAAEK,KAAK,CAAC,CAAC;AAEhE;AACA,OAAO,MAAME,YAAY,gBAAuCjC,WAAW,CACzE,yCAAyC,EACzC,MAAMJ,QAAQ,CAAC+B,UAAU,CAACnB,UAAU,CAAC0B,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAC7D;AAED;AACA,OAAO,MAAMC,gBAAgB,gBAAGtC,IAAI,CAGlC,CAAC,EAAE,CAACiC,MAAM,EAAEM,IAAI,KAAKzC,MAAM,CAACqC,OAAO,CAACF,MAAM,EAAEG,YAAY,EAAEzB,UAAU,CAAC0B,IAAI,CAACE,IAAI,CAAC,CAAC,CAAC;AAEnF;AACA,OAAO,MAAMC,WAAW,gBAAsDrC,WAAW,CACvF,wCAAwC,EACxC,MAAMJ,QAAQ,CAAC+B,UAAU,CAACzB,MAAM,CAAC0B,IAAI,EAAmB,CAAC,CAC1D;AAED;AACA,OAAO,MAAMU,eAAe,gBAAGzC,IAAI,CAGjC,CAAC,EAAE,CAACiC,MAAM,EAAEM,IAAI,KAAKzC,MAAM,CAACqC,OAAO,CAACF,MAAM,EAAEO,WAAW,EAAEnC,MAAM,CAACqC,GAAG,CAACH,IAAI,EAAE5B,UAAU,CAAC0B,IAAI,CAAC,CAAC,CAAC;AAE9F;AACA,OAAO,MAAMM,cAAc,gBAA2CxC,WAAW,CAC/E,2CAA2C,EAC3C,MAAMJ,QAAQ,CAAC+B,UAAU,CAAsBjC,KAAK,CAAC+C,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAC/E;AAED;AACA,OAAO,MAAMC,kBAAkB,gBAAG7C,IAAI,CAGpC,CAAC,EAAE,CAACiC,MAAM,EAAEa,SAAS,KAAKhD,MAAM,CAACqC,OAAO,CAACF,MAAM,EAAEU,cAAc,EAAE9C,KAAK,CAACkD,YAAY,CAACD,SAAS,CAAC,CAAC,CAAC;AAElG;AACA,OAAO,MAAME,UAAU,gBAA2CtD,MAAM,CAACuD,OAAO,CAAC1B,eAAe,EAAE;EAChG2B,UAAU,EAAE,eAAe;EAC3BC,UAAU,EAAE;IACVC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;;CAEX,CAAC;AAEF;AACA,OAAO,MAAMC,WAAW,gBAA0D5D,MAAM,CAAC6D,KAAK,CAACP,UAAU,CAAC;AAE1G;AACA,OAAO,MAAMQ,gBAAgB,gBAGzB9D,MAAM,CAAC+D,SAAS,eAACH,WAAW,CAACpD,IAAI,eAACR,MAAM,CAACgE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAEV,UAAU,EAAE;EACvEW,MAAM,EAAE,IAAI;EACZC,MAAM,EAAEA,CAAC,CAACC,IAAI,CAAC,KAAKA,IAAI;EACxBC,MAAM,EAAGD,IAAI,IAAK,CAACA,IAAI;CACxB,CAAC;AAEF;AACA,OAAO,MAAME,eAAe,GAAGA,CAC7BC,MAA8B,EAC9BC,OAAkC,KAChC;EACF,MAAMC,KAAK,GAAGxE,MAAM,CAACyE,aAAa,CAACH,MAAM,EAAEC,OAAO,CAAC;EACnD,OAAQG,SAA8B,IAAKF,KAAK,CAACE,SAAS,CAAC;AAC7D,CAAC;AAED;AACA,OAAO,MAAMC,UAAU,GAAGA,CAAUL,MAA8B,EAAEC,OAAkC,KAQlG;EACF,MAAMK,QAAQ,GAAG5E,MAAM,CAAC6E,SAAS,CAACP,MAAM,CAAC;EACzC,OAAOhE,IAAI,CAUT,CAAC,EAAE,CAACoE,SAAS,EAAEI,KAAK,KACpB1E,MAAM,CAAC4C,GAAG,CACRhD,MAAM,CAACyE,aAAa,CAClBzE,MAAM,CAAC+E,MAAM,CAAC;IACZ,CAACD,KAAK,GAAGF;GACV,CAAC,EACFL,OAAO,CACR,CAACG,SAAS,CAAC,EACXM,CAAC,IAAKA,CAAC,CAACF,KAAK,CAAC,CAChB,CAAC;AACN,CAAC;AAED;AACA,OAAO,MAAMG,UAAU,GACrBC,OAA+B,IAE/B9E,MAAM,CAAC4C,GAAG,CACR5C,MAAM,CAAC+E,GAAG,CAAC;EACThD,QAAQ,EAAE/B,MAAM,CAAC4C,GAAG,CAAC3C,QAAQ,CAAC+E,GAAG,CAACjD,QAAQ,CAAC,EAAExB,MAAM,CAAC0E,cAAc,CAAC;EACnE3C,YAAY,EAAEtC,MAAM,CAAC4C,GAAG,CAAC3C,QAAQ,CAAC+E,GAAG,CAAC1C,YAAY,CAAC,EAAE4C,MAAM,CAAC;EAC5DC,WAAW,EAAEnF,MAAM,CAAC4C,GAAG,CAAC3C,QAAQ,CAAC+E,GAAG,CAACtC,WAAW,CAAC,EAAEvC,IAAI,CAACI,MAAM,CAACqC,GAAG,CAACsC,MAAM,CAAC,EAAE3E,MAAM,CAAC0E,cAAc,CAAC,CAAC;EACnGG,YAAY,EAAEpF,MAAM,CAAC4C,GAAG,CACtB3C,QAAQ,CAAC+E,GAAG,CAAClE,eAAe,CAACuE,WAAW,CAAC,EACzClF,IAAI,CAACI,MAAM,CAACqC,GAAG,CAACsC,MAAM,CAAC,EAAE3E,MAAM,CAAC0E,cAAc,CAAC,CAChD;EACDzD,MAAM,EAAExB,MAAM,CAAC4C,GAAG,CAAC3C,QAAQ,CAAC+E,GAAG,CAACnC,cAAc,CAAC,EAAGG,SAAS,IAAI;IAC7D,IAAIA,SAAS,CAACsC,MAAM,KAAK,CAAC,EAAE;MAC1B,OAAOC,SAAS;IAClB;IACA,OAAQC,IAAiB,IACvB,CAACzF,KAAK,CAAC0F,IAAI,CACTzC,SAAS,EACR4B,CAAC,IAAKY,IAAI,CAACE,WAAW,CAACC,QAAQ,CAACf,CAAC,CAAC,CACpC,IAAIjE,EAAE,CAACiF,aAAa,CAACJ,IAAI,CAAC;EAC/B,CAAC;CACF,CAAC,EACDZ,CAAC,KAAM;EAAE,GAAGA,CAAC;EAAEE;AAAO,CAAE,CAAC,CAC3B;AAEH;AACA,OAAO,MAAMe,WAAW,GAAGA,CACzBf,OAA+B,EAC/BgB,UAAU,GAAG,EAAE,KASfhG,OAAO,CAACiG,iBAAiB,CACvB/F,MAAM,CAAC+E,GAAG,CAAC,CACTF,UAAU,CAACC,OAAO,CAAC,EACnBrE,KAAK,CAACuF,OAAO,CAAiCF,UAAU,CAAC,CAC1D,CAAC,EACF,CAAC,CAACG,MAAM,EAAEC,KAAK,CAAC,KAAKC,aAAa,CAACF,MAAM,EAAEC,KAAK,CAAC,EACjD,CAAC,GAAGA,KAAK,CAAC,KAAKzF,KAAK,CAAC2F,QAAQ,CAACF,KAAK,CAAC,CACrC;AAEH,MAAMC,aAAa,GAAGA,CACpBF,MAAqB,EACrBC,KAAkD,KASlDpG,OAAO,CAACuG,OAAO,CAAC,MAAK;EACnB,IAAIC,KAAK,GAAG/F,MAAM,CAAC0B,IAAI,EAA8C;EACrE,IAAIsE,WAAW,GAA0B,EAAE;EAC3C,IAAIC,aAAa,GAAG,KAAK;EAEzB,MAAMC,KAAK,GAAwE;IACjFC,SAAS,EAAEA,CAAA,KAAM1G,MAAM,CAAC2G,IAAI;IAC5BC,IAAIA,CAACC,OAAO;MACV,OAAOpG,KAAK,CAACqG,KAAK,CAACZ,KAAK,EAAEW,OAAO,CAAC;IACpC,CAAC;IACDP,KAAKA,CAACS,KAAK;MACTT,KAAK,GAAG/F,MAAM,CAACkF,IAAI,CAACsB,KAAK,CAAC;MAC1B,OAAOtG,KAAK,CAACqG,KAAK,CAACZ,KAAK,EAAE,IAAI,CAAC;IACjC,CAAC;IACDc,IAAIA,CAACC,MAAM;MACT,OAAOxG,KAAK,CAACqG,KAAK,CAACZ,KAAK,EAAE,IAAI,CAAC;IACjC;GACD;EAED,MAAMgB,MAAM,GAAGvG,EAAE,CAACmC,IAAI,CAAC;IACrB,GAAGmD,MAAM;IACTkB,OAAOA,CAAC3B,IAAI,EAAE4B,KAAK;MACjBb,WAAW,CAACc,IAAI,CAAC,IAAIC,SAAS,CAAC9B,IAAI,CAAC+B,IAAI,EAAE/B,IAAI,CAACE,WAAW,EAAE/E,EAAE,CAAC6G,WAAW,CAAChC,IAAI,EAAE4B,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;IACDK,MAAMA,CAACjC,IAAI;MACT,IAAIkC,MAAM,GAAsB,EAAE;MAClC,IAAIC,QAAQ,GAAG,KAAK;MACpB,MAAMC,IAAI,GAAqF9H,OAAO,CACnGuG,OAAO,CAAC,MAAK;QACZ,IAAIqB,MAAM,CAACpC,MAAM,KAAK,CAAC,EAAE;UACvB,OAAOqC,QAAQ,GAAG7H,OAAO,CAAC6G,IAAI,GAAG7G,OAAO,CAAC+H,QAAQ,CAACC,IAAI,EAAEF,IAAI,CAAC;QAC/D;QACA,MAAMG,KAAK,GAAGhI,KAAK,CAACiI,eAAe,CAACN,MAAM,CAAC;QAC3CA,MAAM,GAAG,EAAE;QACX,OAAOC,QAAQ,GAAG7H,OAAO,CAACmI,KAAK,CAACF,KAAK,CAAC,GAAGjI,OAAO,CAAC+H,QAAQ,CACvD/H,OAAO,CAACmI,KAAK,CAACF,KAAK,CAAC,EACpBjI,OAAO,CAAC+H,QAAQ,CAACC,IAAI,EAAEF,IAAI,CAAC,CAC7B;MACH,CAAC,CAAC;MACJrB,WAAW,CAACc,IAAI,CAAC,IAAIa,QAAQ,CAAC1C,IAAI,EAAEoC,IAAI,CAAC,CAAC;MAC1C,OAAO,UAASG,KAAK;QACnB,IAAIA,KAAK,KAAK,IAAI,EAAE;UAClBJ,QAAQ,GAAG,IAAI;QACjB,CAAC,MAAM;UACLD,MAAM,CAACL,IAAI,CAACU,KAAK,CAAC;QACpB;MACF,CAAC;IACH,CAAC;IACDI,OAAOA,CAACC,MAAM;MACZ9B,KAAK,GAAG/F,MAAM,CAACkF,IAAI,CAAC5F,KAAK,CAACwI,IAAI,CAACC,YAAY,CAACF,MAAM,CAAC,CAAC,CAAC;IACvD,CAAC;IACDG,MAAMA,CAAA;MACJ/B,aAAa,GAAG,IAAI;IACtB;GACD,CAAC;EAEF,MAAMsB,IAAI,GAAGhI,OAAO,CAAC0I,OAAO,CAC1B/H,KAAK,CAACmH,IAAI,CAAC1B,KAAK,CAAC,EAChB6B,KAAK,IACJjI,OAAO,CAAC2I,IAAI,CAAC,MAAK;IAChB,IAAIV,KAAK,KAAK,IAAI,EAAE;MAClBb,MAAM,CAACwB,GAAG,EAAE;IACd,CAAC,MAAM;MACL3I,KAAK,CAAC4I,OAAO,CAACZ,KAAK,EAAE,UAASa,GAAG;QAC/B1B,MAAM,CAACe,KAAK,CAACW,GAAG,CAAC;MACnB,CAAC,CAAC;IACJ;EACF,CAAC,CAAC,CACL;EAED,MAAMC,SAAS,GAAG/I,OAAO,CAAC+H,QAAQ,CAChCC,IAAI,EACJhI,OAAO,CAACuG,OAAO,CAAC,MAAK;IACnB,IAAIE,WAAW,CAACjB,MAAM,KAAK,CAAC,EAAE;MAC5B,OAAOxF,OAAO,CAAC6G,IAAI;IACrB;IACA,MAAMmC,KAAK,GAAG/I,KAAK,CAACiI,eAAe,CAACzB,WAAW,CAAC;IAChDA,WAAW,GAAG,EAAE;IAChB,OAAOzG,OAAO,CAACmI,KAAK,CAACa,KAAK,CAAC;EAC7B,CAAC,CAAC,CACH;EAED,MAAMC,YAAY,GAOdjJ,OAAO,CAACuG,OAAO,CAAC,MAAK;IACvB,IAAIC,KAAK,CAAC/E,IAAI,KAAK,MAAM,EAAE;MACzB,OAAOzB,OAAO,CAACkJ,SAAS,CAAC1C,KAAK,CAACc,KAAK,CAAC;IACvC,CAAC,MAAM,IAAIZ,aAAa,EAAE;MACxB,OAAO1G,OAAO,CAAC6G,IAAI;IACrB;IACA,OAAO7G,OAAO,CAAC+H,QAAQ,CAACgB,SAAS,EAAEE,YAAY,CAAC;EAClD,CAAC,CAAC;EAEF,OAAOjJ,OAAO,CAACmJ,UAAU,CAACF,YAAY,EAAEtC,KAAK,CAAC;AAChD,CAAC,CAAC;AAEJ,SAAS6B,YAAYA,CAACvB,KAAwB;EAC5C,QAAQA,KAAK,CAACxF,IAAI;IAChB,KAAK,cAAc;MAAE;QACnB,QAAQwF,KAAK,CAACmC,KAAK;UACjB,KAAK,UAAU;YAAE;cACf,OAAO,IAAItH,cAAc,CAAC;gBAAEE,MAAM,EAAE,cAAc;gBAAEiF;cAAK,CAAE,CAAC;YAC9D;UACA,KAAK,cAAc;YAAE;cACnB,OAAO,IAAInF,cAAc,CAAC;gBAAEE,MAAM,EAAE,eAAe;gBAAEiF;cAAK,CAAE,CAAC;YAC/D;UACA,KAAK,aAAa;YAAE;cAClB,OAAO,IAAInF,cAAc,CAAC;gBAAEE,MAAM,EAAE,cAAc;gBAAEiF;cAAK,CAAE,CAAC;YAC9D;UACA,KAAK,cAAc;YAAE;cACnB,OAAO,IAAInF,cAAc,CAAC;gBAAEE,MAAM,EAAE,cAAc;gBAAEiF;cAAK,CAAE,CAAC;YAC9D;QACF;MACF;IACA;MAAS;QACP,OAAO,IAAInF,cAAc,CAAC;UAAEE,MAAM,EAAE,OAAO;UAAEiF;QAAK,CAAE,CAAC;MACvD;EACF;AACF;AAEA,MAAeoC,QAAS,SAAQ7I,WAAW,CAAC8I,KAAK;EACtC,CAACpI,MAAM;EAChBqI,YAAA;IACE,KAAK,EAAE;IACP,IAAI,CAACrI,MAAM,CAAC,GAAGA,MAAM;EACvB;;AAGF,MAAMsG,SAAU,SAAQ6B,QAAQ;EAInBG,GAAA;EACA5D,WAAA;EACA0B,KAAA;EALF7F,IAAI,GAAG,OAAO;EAEvB8H,YACWC,GAAW,EACX5D,WAAmB,EACnB0B,KAAa;IAEtB,KAAK,EAAE;IAJE,KAAAkC,GAAG,GAAHA,GAAG;IACH,KAAA5D,WAAW,GAAXA,WAAW;IACX,KAAA0B,KAAK,GAALA,KAAK;EAGhB;EAEAmC,MAAMA,CAAA;IACJ,OAAO;MACLC,GAAG,EAAE,iCAAiC;MACtCjI,IAAI,EAAE,OAAO;MACb+H,GAAG,EAAE,IAAI,CAACA,GAAG;MACb5D,WAAW,EAAE,IAAI,CAACA,WAAW;MAC7B0B,KAAK,EAAE,IAAI,CAACA;KACb;EACH;;AAGF,MAAMc,QAAS,SAAQiB,QAAQ;EACpB5H,IAAI,GAAG,MAAM;EACb+H,GAAG;EACH/B,IAAI;EACJ7B,WAAW;EACX+D,OAAO;EAEhBJ,YACE7D,IAAiB,EACjBkE,OAAyF;IAEzF,KAAK,EAAE;IACP,IAAI,CAACJ,GAAG,GAAG9D,IAAI,CAAC+B,IAAI;IACpB,IAAI,CAACA,IAAI,GAAG/B,IAAI,CAACmE,QAAQ,IAAInE,IAAI,CAAC+B,IAAI;IACtC,IAAI,CAAC7B,WAAW,GAAGF,IAAI,CAACE,WAAW;IACnC,IAAI,CAAC+D,OAAO,GAAG/I,MAAM,CAACkJ,WAAW,CAACF,OAAO,CAAC;EAC5C;EAEAH,MAAMA,CAAA;IACJ,OAAO;MACLC,GAAG,EAAE,iCAAiC;MACtCjI,IAAI,EAAE,MAAM;MACZ+H,GAAG,EAAE,IAAI,CAACA,GAAG;MACb/B,IAAI,EAAE,IAAI,CAACA,IAAI;MACf7B,WAAW,EAAE,IAAI,CAACA;KACnB;EACH;;AAGF,MAAMmE,gBAAgB,GAAGA,CAACC,IAAY,EAAE/F,IAAoB,KAC1D/D,MAAM,CAACwI,OAAO,CACZ3H,UAAU,CAACA,UAAU,EACpBkJ,EAAE,IACD/J,MAAM,CAACgK,QAAQ,CACbtJ,MAAM,CAACuJ,GAAG,CAAClG,IAAI,CAAC0F,OAAO,EAAEM,EAAE,CAACG,IAAI,CAACJ,IAAI,CAAC,CAAC,EACtC/C,KAAK,IAAK,IAAInF,cAAc,CAAC;EAAEE,MAAM,EAAE,eAAe;EAAEiF;AAAK,CAAE,CAAC,CAClE,CACJ;AAEH;AACA,OAAO,MAAMoD,WAAW,GAAGA,CACzBC,MAA+D,EAC/DC,SAAS,GAAGR,gBAAgB,KAE5BzJ,IAAI,CACFJ,MAAM,CAACsK,EAAE,EACTtK,MAAM,CAACuK,IAAI,CAAC,IAAI,EAAE,MAAM1J,UAAU,CAACA,UAAU,CAAC,EAC9Cb,MAAM,CAACuK,IAAI,CAAC,MAAM,EAAE,MAAMxJ,IAAI,CAACA,IAAI,CAAC,EACpCf,MAAM,CAACuK,IAAI,CAAC,KAAK,EAAE,CAAC;EAAER;AAAE,CAAE,KAAKA,EAAE,CAACS,uBAAuB,EAAE,CAAC,EAC5DxK,MAAM,CAACwI,OAAO,CAAC,CAAC;EAAEiC,GAAG;EAAEX,IAAI,EAAEY;AAAK,CAAE,KAClChK,MAAM,CAACiK,aAAa,CAClBP,MAAM,EACNQ,MAAM,CAACC,MAAM,CAAC,IAAI,CAA4D,EAC9E,CAACvG,SAAS,EAAEwG,IAAI,KAAI;EAClB,IAAIA,IAAI,CAACvJ,IAAI,KAAK,OAAO,EAAE;IACzB+C,SAAS,CAACwG,IAAI,CAACxB,GAAG,CAAC,GAAGwB,IAAI,CAAC1D,KAAK;IAChC,OAAOpH,MAAM,CAAC+K,OAAO,CAACzG,SAAS,CAAC;EAClC;EACA,MAAMP,IAAI,GAAG+G,IAAI;EACjB,MAAMhB,IAAI,GAAGY,KAAK,CAACM,IAAI,CAACP,GAAG,EAAEC,KAAK,CAACO,QAAQ,CAAClH,IAAI,CAACwD,IAAI,CAAC,CAAC2D,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;EACnE,IAAI,CAACzH,KAAK,CAAC0H,OAAO,CAAC7G,SAAS,CAACwG,IAAI,CAACxB,GAAG,CAAC,CAAC,EAAE;IACvChF,SAAS,CAACwG,IAAI,CAACxB,GAAG,CAAC,GAAG,EAAE;EAC1B;EACA;EAAEhF,SAAS,CAACwG,IAAI,CAACxB,GAAG,CAAoC,CAACjC,IAAI,CAC3D,IAAI+D,iBAAiB,CACnBrH,IAAI,CAACuF,GAAG,EACRvF,IAAI,CAACwD,IAAI,EACTxD,IAAI,CAAC2B,WAAW,EAChBoE,IAAI,CACL,CACF;EACD,OAAO9J,MAAM,CAACqL,EAAE,CAAChB,SAAS,CAACP,IAAI,EAAE/F,IAAI,CAAC,EAAEO,SAAS,CAAC;AACpD,CAAC,CACF,CACF,EACDtE,MAAM,CAACsL,SAAS,CAAC;EACfC,WAAW,EAAGxE,KAAK,IAAK/G,MAAM,CAACqI,IAAI,CAAC,IAAIzG,cAAc,CAAC;IAAEE,MAAM,EAAE,eAAe;IAAEiF;EAAK,CAAE,CAAC,CAAC;EAC3FyE,WAAW,EAAGzE,KAAK,IAAK/G,MAAM,CAACqI,IAAI,CAAC,IAAIzG,cAAc,CAAC;IAAEE,MAAM,EAAE,eAAe;IAAEiF;EAAK,CAAE,CAAC;CAC3F,CAAC,CACH;AAEH,MAAMqE,iBAAkB,SAAQjC,QAAQ;EAI3BG,GAAA;EACA/B,IAAA;EACA7B,WAAA;EACAoE,IAAA;EANFvI,IAAI,GAAG,eAAe;EAE/B8H,YACWC,GAAW,EACX/B,IAAY,EACZ7B,WAAmB,EACnBoE,IAAY;IAErB,KAAK,EAAE;IALE,KAAAR,GAAG,GAAHA,GAAG;IACH,KAAA/B,IAAI,GAAJA,IAAI;IACJ,KAAA7B,WAAW,GAAXA,WAAW;IACX,KAAAoE,IAAI,GAAJA,IAAI;EAGf;EAEAP,MAAMA,CAAA;IACJ,OAAO;MACLC,GAAG,EAAE,iCAAiC;MACtCjI,IAAI,EAAE,eAAe;MACrB+H,GAAG,EAAE,IAAI,CAACA,GAAG;MACb/B,IAAI,EAAE,IAAI,CAACA,IAAI;MACf7B,WAAW,EAAE,IAAI,CAACA,WAAW;MAC7BoE,IAAI,EAAE,IAAI,CAACA;KACZ;EACH","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"multipart.js","names":["Schema","Cause","Channel","Chunk","Effect","FiberRef","dual","flow","pipe","globalValue","Inspectable","Option","Predicate","Queue","Stream","MP","TypeIdError","FileSystem","IncomingMessage","Path","TypeId","Symbol","for","isPart","u","hasProperty","isField","_tag","isFile","isPersistedFile","isTagged","ErrorTypeId","MultipartError","message","reason","maxParts","unsafeMake","none","withMaxParts","effect","count","locally","maxFieldSize","Size","withMaxFieldSize","size","maxFileSize","withMaxFileSize","map","fieldMimeTypes","make","withFieldMimeTypes","mimeTypes","fromIterable","FileSchema","declare","identifier","jsonSchema","type","format","FilesSchema","Array","SingleFileSchema","transform","itemsCount","strict","decode","file","encode","schemaPersisted","schema","options","parse","decodeUnknown","persisted","schemaJson","fromJson","parseJson","field","Struct","_","makeConfig","headers","all","get","getOrUndefined","Number","maxPartSize","maxTotalSize","maxBodySize","length","undefined","info","some","contentType","includes","defaultIsFile","makeChannel","bufferSize","acquireUseRelease","bounded","config","queue","makeFromQueue","shutdown","suspend","error","partsBuffer","partsFinished","input","awaitRead","void","emit","element","offer","cause","done","_value","parser","onField","value","push","FieldImpl","name","decodeField","onFile","chunks","finished","take","zipRight","pump","chunk","unsafeFromArray","write","FileImpl","onError","error_","fail","convertError","onDone","flatMap","sync","end","forEach","takeParts","parts","partsChannel","failCause","embedInput","limit","PartBase","Class","constructor","key","toJSON","_id","content","channel","filename","fromChannel","defaultWriteFile","path","fs","mapError","run","sink","toPersisted","stream","writeFile","Do","bind","makeTempDirectoryScoped","dir","path_","runFoldEffect","Object","create","part","succeed","join","basename","slice","isArray","PersistedFileImpl","as","catchTags","SystemError","BadArgument"],"sources":["../../../src/internal/multipart.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/platform",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.64.0",
|
|
4
4
|
"description": "Unified interfaces for common platform-specific services",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"multipasta": "^0.2.5"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"@effect/schema": "^0.72.
|
|
17
|
+
"@effect/schema": "^0.72.3",
|
|
18
18
|
"effect": "^3.7.2"
|
|
19
19
|
},
|
|
20
20
|
"publishConfig": {
|
package/src/Etag.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type * as Context from "effect/Context"
|
|
5
5
|
import type * as Effect from "effect/Effect"
|
|
6
|
+
import type { Layer } from "effect/Layer"
|
|
6
7
|
import type * as FileSystem from "./FileSystem.js"
|
|
7
8
|
import type * as Body from "./HttpBody.js"
|
|
8
9
|
import * as internal from "./internal/etag.js"
|
|
@@ -64,3 +65,15 @@ export interface Generator {
|
|
|
64
65
|
* @category tags
|
|
65
66
|
*/
|
|
66
67
|
export const Generator: Context.Tag<Generator, Generator> = internal.tag
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @since 1.0.0
|
|
71
|
+
* @category layers
|
|
72
|
+
*/
|
|
73
|
+
export const layer: Layer<Generator> = internal.layer
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @since 1.0.0
|
|
77
|
+
* @category layers
|
|
78
|
+
*/
|
|
79
|
+
export const layerWeak: Layer<Generator> = internal.layerWeak
|
package/src/HttpApiBuilder.ts
CHANGED
|
@@ -12,6 +12,7 @@ import * as FiberRef from "effect/FiberRef"
|
|
|
12
12
|
import { identity } from "effect/Function"
|
|
13
13
|
import { globalValue } from "effect/GlobalValue"
|
|
14
14
|
import * as Layer from "effect/Layer"
|
|
15
|
+
import type { ManagedRuntime } from "effect/ManagedRuntime"
|
|
15
16
|
import * as Option from "effect/Option"
|
|
16
17
|
import { type Pipeable, pipeArguments } from "effect/Pipeable"
|
|
17
18
|
import type { ReadonlyRecord } from "effect/Record"
|
|
@@ -85,9 +86,9 @@ export const serve: {
|
|
|
85
86
|
* @category constructors
|
|
86
87
|
*/
|
|
87
88
|
export const httpApp: Effect.Effect<
|
|
88
|
-
HttpApp.Default,
|
|
89
|
+
HttpApp.Default<never, HttpRouter.HttpRouter.DefaultServices>,
|
|
89
90
|
never,
|
|
90
|
-
Router | HttpApi.HttpApi.Service
|
|
91
|
+
Router | HttpApi.HttpApi.Service
|
|
91
92
|
> = Effect.gen(function*() {
|
|
92
93
|
const api = yield* HttpApi.HttpApi
|
|
93
94
|
const router = yield* Router.router
|
|
@@ -105,6 +106,49 @@ export const httpApp: Effect.Effect<
|
|
|
105
106
|
)
|
|
106
107
|
})
|
|
107
108
|
|
|
109
|
+
/**
|
|
110
|
+
* Construct an http web handler from an `HttpApi` instance.
|
|
111
|
+
*
|
|
112
|
+
* @since 1.0.0
|
|
113
|
+
* @category constructors
|
|
114
|
+
* @example
|
|
115
|
+
* import { HttpApi } from "@effect/platform"
|
|
116
|
+
* import { Etag, HttpApiBuilder, HttpMiddleware, HttpPlatform } from "@effect/platform"
|
|
117
|
+
* import { NodeContext } from "@effect/platform-node"
|
|
118
|
+
* import { Layer, ManagedRuntime } from "effect"
|
|
119
|
+
*
|
|
120
|
+
* const ApiLive = HttpApiBuilder.api(HttpApi.empty)
|
|
121
|
+
*
|
|
122
|
+
* const runtime = ManagedRuntime.make(
|
|
123
|
+
* Layer.mergeAll(
|
|
124
|
+
* ApiLive,
|
|
125
|
+
* HttpApiBuilder.Router.Live,
|
|
126
|
+
* HttpPlatform.layer,
|
|
127
|
+
* Etag.layerWeak
|
|
128
|
+
* ).pipe(
|
|
129
|
+
* Layer.provideMerge(NodeContext.layer)
|
|
130
|
+
* )
|
|
131
|
+
* )
|
|
132
|
+
*
|
|
133
|
+
* const handler = HttpApiBuilder.toWebHandler(runtime, HttpMiddleware.logger)
|
|
134
|
+
*/
|
|
135
|
+
export const toWebHandler = <R, ER>(
|
|
136
|
+
runtime: ManagedRuntime<R | HttpApi.HttpApi.Service | Router | HttpRouter.HttpRouter.DefaultServices, ER>,
|
|
137
|
+
middleware?: (
|
|
138
|
+
httpApp: HttpApp.Default
|
|
139
|
+
) => HttpApp.Default<never, R | HttpApi.HttpApi.Service | Router | HttpRouter.HttpRouter.DefaultServices>
|
|
140
|
+
): (request: Request) => Promise<Response> => {
|
|
141
|
+
const handlerPromise = httpApp.pipe(
|
|
142
|
+
Effect.bindTo("httpApp"),
|
|
143
|
+
Effect.bind("runtime", () => runtime.runtimeEffect),
|
|
144
|
+
Effect.map(({ httpApp, runtime }) =>
|
|
145
|
+
HttpApp.toWebHandlerRuntime(runtime)(middleware ? middleware(httpApp as any) : httpApp)
|
|
146
|
+
),
|
|
147
|
+
runtime.runPromise
|
|
148
|
+
)
|
|
149
|
+
return (request) => handlerPromise.then((handler) => handler(request))
|
|
150
|
+
}
|
|
151
|
+
|
|
108
152
|
/**
|
|
109
153
|
* Build a root level `Layer` from an `HttpApi` instance.
|
|
110
154
|
*
|
package/src/HttpPlatform.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type * as Context from "effect/Context"
|
|
5
5
|
import type * as Effect from "effect/Effect"
|
|
6
|
+
import type { Layer } from "effect/Layer"
|
|
6
7
|
import type * as Error from "./Error.js"
|
|
7
8
|
import type * as Etag from "./Etag.js"
|
|
8
9
|
import type * as FileSystem from "./FileSystem.js"
|
|
@@ -69,3 +70,9 @@ export const make: (
|
|
|
69
70
|
) => ServerResponse.HttpServerResponse
|
|
70
71
|
}
|
|
71
72
|
) => Effect.Effect<HttpPlatform, never, FileSystem.FileSystem | Etag.Generator> = internal.make
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @since 1.0.0
|
|
76
|
+
* @category layers
|
|
77
|
+
*/
|
|
78
|
+
export const layer: Layer<HttpPlatform, never, FileSystem.FileSystem> = internal.layer
|
package/src/Socket.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
import * as Cause from "effect/Cause"
|
|
5
4
|
import * as Channel from "effect/Channel"
|
|
6
5
|
import * as Chunk from "effect/Chunk"
|
|
7
6
|
import * as Context from "effect/Context"
|
|
@@ -12,6 +11,7 @@ import * as ExecutionStrategy from "effect/ExecutionStrategy"
|
|
|
12
11
|
import * as Exit from "effect/Exit"
|
|
13
12
|
import * as FiberRef from "effect/FiberRef"
|
|
14
13
|
import * as FiberSet from "effect/FiberSet"
|
|
14
|
+
import { dual } from "effect/Function"
|
|
15
15
|
import { globalValue } from "effect/GlobalValue"
|
|
16
16
|
import * as Layer from "effect/Layer"
|
|
17
17
|
import * as Predicate from "effect/Predicate"
|
|
@@ -32,6 +32,12 @@ export const TypeId: unique symbol = Symbol.for("@effect/platform/Socket")
|
|
|
32
32
|
*/
|
|
33
33
|
export type TypeId = typeof TypeId
|
|
34
34
|
|
|
35
|
+
/**
|
|
36
|
+
* @since 1.0.0
|
|
37
|
+
* @category guards
|
|
38
|
+
*/
|
|
39
|
+
export const isSocket = (u: unknown): u is Socket => Predicate.hasProperty(u, TypeId)
|
|
40
|
+
|
|
35
41
|
/**
|
|
36
42
|
* @since 1.0.0
|
|
37
43
|
* @category tags
|
|
@@ -171,10 +177,11 @@ export class SocketCloseError extends TypeIdError(SocketErrorTypeId, "SocketErro
|
|
|
171
177
|
* @since 1.0.0
|
|
172
178
|
* @category combinators
|
|
173
179
|
*/
|
|
174
|
-
export const
|
|
175
|
-
self: Socket
|
|
180
|
+
export const toChannelMap = <IE, A>(
|
|
181
|
+
self: Socket,
|
|
182
|
+
f: (data: Uint8Array | string) => A
|
|
176
183
|
): Channel.Channel<
|
|
177
|
-
Chunk.Chunk<
|
|
184
|
+
Chunk.Chunk<A>,
|
|
178
185
|
Chunk.Chunk<Uint8Array | string | CloseEvent>,
|
|
179
186
|
SocketError | IE,
|
|
180
187
|
IE,
|
|
@@ -183,25 +190,27 @@ export const toChannel = <IE>(
|
|
|
183
190
|
> =>
|
|
184
191
|
Effect.scope.pipe(
|
|
185
192
|
Effect.bindTo("scope"),
|
|
193
|
+
Effect.let("state", () => ({ finished: false, buffer: [] as Array<A> })),
|
|
194
|
+
Effect.bind("semaphore", () => Effect.makeSemaphore(0)),
|
|
186
195
|
Effect.bind("writeScope", ({ scope }) => Scope.fork(scope, ExecutionStrategy.sequential)),
|
|
187
196
|
Effect.bind("write", ({ writeScope }) => Scope.extend(self.writer, writeScope)),
|
|
188
|
-
Effect.bind("
|
|
197
|
+
Effect.bind("deferred", () => Deferred.make<void, SocketError | IE>()),
|
|
189
198
|
Effect.let(
|
|
190
199
|
"input",
|
|
191
200
|
(
|
|
192
|
-
{
|
|
201
|
+
{ deferred, write, writeScope }
|
|
193
202
|
): AsyncProducer.AsyncInputProducer<IE, Chunk.Chunk<Uint8Array | string | CloseEvent>, unknown> => ({
|
|
194
203
|
awaitRead: () => Effect.void,
|
|
195
204
|
emit(chunk) {
|
|
196
205
|
return Effect.catchAllCause(
|
|
197
206
|
Effect.forEach(chunk, write, { discard: true }),
|
|
198
|
-
(cause) =>
|
|
207
|
+
(cause) => Deferred.failCause(deferred, cause)
|
|
199
208
|
)
|
|
200
209
|
},
|
|
201
210
|
error(error) {
|
|
202
211
|
return Effect.zipRight(
|
|
203
212
|
Scope.close(writeScope, Exit.void),
|
|
204
|
-
|
|
213
|
+
Deferred.failCause(deferred, error)
|
|
205
214
|
)
|
|
206
215
|
},
|
|
207
216
|
done() {
|
|
@@ -209,30 +218,95 @@ export const toChannel = <IE>(
|
|
|
209
218
|
}
|
|
210
219
|
})
|
|
211
220
|
),
|
|
212
|
-
Effect.tap(({
|
|
213
|
-
self.
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
221
|
+
Effect.tap(({ deferred, scope, semaphore, state }) =>
|
|
222
|
+
self.runRaw((data) => {
|
|
223
|
+
state.buffer.push(f(data))
|
|
224
|
+
return semaphore.release(1)
|
|
225
|
+
}).pipe(
|
|
226
|
+
Effect.intoDeferred(deferred),
|
|
227
|
+
Effect.raceFirst(Deferred.await(deferred)),
|
|
228
|
+
Effect.ensuring(Effect.suspend(() => {
|
|
229
|
+
state.finished = true
|
|
230
|
+
return semaphore.release(1)
|
|
231
|
+
})),
|
|
217
232
|
Effect.forkIn(scope),
|
|
218
233
|
Effect.interruptible
|
|
219
234
|
)
|
|
220
235
|
),
|
|
221
|
-
Effect.map(({
|
|
222
|
-
const loop: Channel.Channel<Chunk.Chunk<
|
|
223
|
-
.
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
236
|
+
Effect.map(({ deferred, input, semaphore, state }) => {
|
|
237
|
+
const loop: Channel.Channel<Chunk.Chunk<A>, unknown, SocketError | IE, unknown, void, unknown> = Channel.flatMap(
|
|
238
|
+
semaphore.take(1),
|
|
239
|
+
(_) => {
|
|
240
|
+
if (state.buffer.length === 0) {
|
|
241
|
+
return state.finished ? Deferred.await(deferred) : loop
|
|
242
|
+
}
|
|
243
|
+
const chunk = Chunk.unsafeFromArray(state.buffer)
|
|
244
|
+
state.buffer = []
|
|
245
|
+
return Channel.zipRight(Channel.write(chunk), state.finished ? Deferred.await(deferred) : loop)
|
|
246
|
+
}
|
|
247
|
+
)
|
|
231
248
|
return Channel.embedInput(loop, input)
|
|
232
249
|
}),
|
|
233
250
|
Channel.unwrapScoped
|
|
234
251
|
)
|
|
235
252
|
|
|
253
|
+
/**
|
|
254
|
+
* @since 1.0.0
|
|
255
|
+
* @category combinators
|
|
256
|
+
*/
|
|
257
|
+
export const toChannel = <IE>(
|
|
258
|
+
self: Socket
|
|
259
|
+
): Channel.Channel<
|
|
260
|
+
Chunk.Chunk<Uint8Array>,
|
|
261
|
+
Chunk.Chunk<Uint8Array | string | CloseEvent>,
|
|
262
|
+
SocketError | IE,
|
|
263
|
+
IE,
|
|
264
|
+
void,
|
|
265
|
+
unknown
|
|
266
|
+
> => {
|
|
267
|
+
const encoder = new TextEncoder()
|
|
268
|
+
return toChannelMap(self, (data) => typeof data === "string" ? encoder.encode(data) : data)
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* @since 1.0.0
|
|
273
|
+
* @category combinators
|
|
274
|
+
*/
|
|
275
|
+
export const toChannelString: {
|
|
276
|
+
(encoding?: string | undefined): <IE>(self: Socket) => Channel.Channel<
|
|
277
|
+
Chunk.Chunk<string>,
|
|
278
|
+
Chunk.Chunk<Uint8Array | string | CloseEvent>,
|
|
279
|
+
SocketError | IE,
|
|
280
|
+
IE,
|
|
281
|
+
void,
|
|
282
|
+
unknown
|
|
283
|
+
>
|
|
284
|
+
<IE>(
|
|
285
|
+
self: Socket,
|
|
286
|
+
encoding?: string | undefined
|
|
287
|
+
): Channel.Channel<
|
|
288
|
+
Chunk.Chunk<string>,
|
|
289
|
+
Chunk.Chunk<Uint8Array | string | CloseEvent>,
|
|
290
|
+
SocketError | IE,
|
|
291
|
+
IE,
|
|
292
|
+
void,
|
|
293
|
+
unknown
|
|
294
|
+
>
|
|
295
|
+
} = dual((args) => isSocket(args[0]), <IE>(
|
|
296
|
+
self: Socket,
|
|
297
|
+
encoding?: string | undefined
|
|
298
|
+
): Channel.Channel<
|
|
299
|
+
Chunk.Chunk<string>,
|
|
300
|
+
Chunk.Chunk<Uint8Array | string | CloseEvent>,
|
|
301
|
+
SocketError | IE,
|
|
302
|
+
IE,
|
|
303
|
+
void,
|
|
304
|
+
unknown
|
|
305
|
+
> => {
|
|
306
|
+
const decoder = new TextDecoder(encoding)
|
|
307
|
+
return toChannelMap(self, (data) => typeof data === "string" ? data : decoder.decode(data))
|
|
308
|
+
})
|
|
309
|
+
|
|
236
310
|
/**
|
|
237
311
|
* @since 1.0.0
|
|
238
312
|
* @category combinators
|
package/src/internal/etag.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import * as Context from "effect/Context"
|
|
2
|
+
import * as Effect from "effect/Effect"
|
|
3
|
+
import * as Layer from "effect/Layer"
|
|
2
4
|
import type * as Etag from "../Etag.js"
|
|
5
|
+
import type * as FileSystem from "../FileSystem.js"
|
|
6
|
+
import type * as Body from "../HttpBody.js"
|
|
3
7
|
|
|
4
8
|
/** @internal */
|
|
5
9
|
export const GeneratorTypeId: Etag.GeneratorTypeId = Symbol.for(
|
|
@@ -18,3 +22,42 @@ export const toString = (self: Etag.Etag): string => {
|
|
|
18
22
|
return `"${self.value}"`
|
|
19
23
|
}
|
|
20
24
|
}
|
|
25
|
+
|
|
26
|
+
const fromFileInfo = (info: FileSystem.File.Info) => {
|
|
27
|
+
const mtime = info.mtime._tag === "Some"
|
|
28
|
+
? info.mtime.value.getTime().toString(16)
|
|
29
|
+
: "0"
|
|
30
|
+
return `${info.size.toString(16)}-${mtime}`
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const fromFileWeb = (file: Body.HttpBody.FileLike) => {
|
|
34
|
+
return `${file.size.toString(16)}-${file.lastModified.toString(16)}`
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** @internal */
|
|
38
|
+
export const layer = Layer.succeed(
|
|
39
|
+
tag,
|
|
40
|
+
tag.of({
|
|
41
|
+
[GeneratorTypeId]: GeneratorTypeId,
|
|
42
|
+
fromFileInfo(info) {
|
|
43
|
+
return Effect.sync(() => ({ _tag: "Strong", value: fromFileInfo(info) }))
|
|
44
|
+
},
|
|
45
|
+
fromFileWeb(file) {
|
|
46
|
+
return Effect.sync(() => ({ _tag: "Strong", value: fromFileWeb(file) }))
|
|
47
|
+
}
|
|
48
|
+
})
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
/** @internal */
|
|
52
|
+
export const layerWeak = Layer.succeed(
|
|
53
|
+
tag,
|
|
54
|
+
tag.of({
|
|
55
|
+
[GeneratorTypeId]: GeneratorTypeId,
|
|
56
|
+
fromFileInfo(info) {
|
|
57
|
+
return Effect.sync(() => ({ _tag: "Weak", value: fromFileInfo(info) }))
|
|
58
|
+
},
|
|
59
|
+
fromFileWeb(file) {
|
|
60
|
+
return Effect.sync(() => ({ _tag: "Weak", value: fromFileWeb(file) }))
|
|
61
|
+
}
|
|
62
|
+
})
|
|
63
|
+
)
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import * as Context from "effect/Context"
|
|
2
2
|
import * as Effect from "effect/Effect"
|
|
3
|
-
import { pipe } from "effect/Function"
|
|
3
|
+
import { identity, pipe } from "effect/Function"
|
|
4
|
+
import * as Layer from "effect/Layer"
|
|
5
|
+
import * as Stream from "effect/Stream"
|
|
4
6
|
import * as Etag from "../Etag.js"
|
|
5
7
|
import * as FileSystem from "../FileSystem.js"
|
|
6
8
|
import * as Headers from "../Headers.js"
|
|
7
9
|
import type * as Body from "../HttpBody.js"
|
|
8
10
|
import type * as Platform from "../HttpPlatform.js"
|
|
9
11
|
import type * as ServerResponse from "../HttpServerResponse.js"
|
|
12
|
+
import * as serverResponse from "./httpServerResponse.js"
|
|
10
13
|
|
|
11
14
|
/** @internal */
|
|
12
15
|
export const TypeId: Platform.TypeId = Symbol.for("@effect/platform/HttpPlatform") as Platform.TypeId
|
|
@@ -33,9 +36,9 @@ export const make = (impl: {
|
|
|
33
36
|
options?: FileSystem.StreamOptions
|
|
34
37
|
) => ServerResponse.HttpServerResponse
|
|
35
38
|
}): Effect.Effect<Platform.HttpPlatform, never, FileSystem.FileSystem | Etag.Generator> =>
|
|
36
|
-
Effect.gen(function*(
|
|
37
|
-
const fs = yield*
|
|
38
|
-
const etagGen = yield*
|
|
39
|
+
Effect.gen(function*() {
|
|
40
|
+
const fs = yield* FileSystem.FileSystem
|
|
41
|
+
const etagGen = yield* Etag.Generator
|
|
39
42
|
|
|
40
43
|
return tag.of({
|
|
41
44
|
[TypeId]: TypeId,
|
|
@@ -83,3 +86,28 @@ export const make = (impl: {
|
|
|
83
86
|
}
|
|
84
87
|
})
|
|
85
88
|
})
|
|
89
|
+
|
|
90
|
+
/** @internal */
|
|
91
|
+
export const layer = Layer.effect(
|
|
92
|
+
tag,
|
|
93
|
+
Effect.flatMap(FileSystem.FileSystem, (fs) =>
|
|
94
|
+
make({
|
|
95
|
+
fileResponse(path, status, statusText, headers, start, end, contentLength) {
|
|
96
|
+
return serverResponse.stream(
|
|
97
|
+
fs.stream(path, {
|
|
98
|
+
offset: start,
|
|
99
|
+
bytesToRead: end !== undefined ? end - start : undefined
|
|
100
|
+
}),
|
|
101
|
+
{ contentLength, headers, status, statusText }
|
|
102
|
+
)
|
|
103
|
+
},
|
|
104
|
+
fileWebResponse(file, status, statusText, headers, _options) {
|
|
105
|
+
return serverResponse.stream(
|
|
106
|
+
Stream.fromReadableStream(() => file.stream() as ReadableStream<Uint8Array>, identity),
|
|
107
|
+
{ headers, status, statusText }
|
|
108
|
+
)
|
|
109
|
+
}
|
|
110
|
+
}))
|
|
111
|
+
).pipe(
|
|
112
|
+
Layer.provide(Etag.layerWeak)
|
|
113
|
+
)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ParseOptions } from "@effect/schema/AST"
|
|
2
2
|
import type * as Schema from "@effect/schema/Schema"
|
|
3
|
+
import * as Context from "effect/Context"
|
|
3
4
|
import * as Effect from "effect/Effect"
|
|
4
5
|
import * as Effectable from "effect/Effectable"
|
|
5
6
|
import { dual } from "effect/Function"
|
|
@@ -11,7 +12,7 @@ import type * as PlatformError from "../Error.js"
|
|
|
11
12
|
import type * as FileSystem from "../FileSystem.js"
|
|
12
13
|
import * as Headers from "../Headers.js"
|
|
13
14
|
import type * as Body from "../HttpBody.js"
|
|
14
|
-
import * as Platform from "../HttpPlatform.js"
|
|
15
|
+
import type * as Platform from "../HttpPlatform.js"
|
|
15
16
|
import type * as Respondable from "../HttpServerRespondable.js"
|
|
16
17
|
import type * as ServerResponse from "../HttpServerResponse.js"
|
|
17
18
|
import * as Template from "../Template.js"
|
|
@@ -214,13 +215,15 @@ export const schemaJson = <A, I, R>(
|
|
|
214
215
|
))
|
|
215
216
|
}
|
|
216
217
|
|
|
218
|
+
const httpPlatform = Context.GenericTag<Platform.HttpPlatform>("@effect/platform/HttpPlatform")
|
|
219
|
+
|
|
217
220
|
/** @internal */
|
|
218
221
|
export const file = (
|
|
219
222
|
path: string,
|
|
220
223
|
options?: (ServerResponse.Options & FileSystem.StreamOptions) | undefined
|
|
221
224
|
): Effect.Effect<ServerResponse.HttpServerResponse, PlatformError.PlatformError, Platform.HttpPlatform> =>
|
|
222
225
|
Effect.flatMap(
|
|
223
|
-
|
|
226
|
+
httpPlatform,
|
|
224
227
|
(platform) => platform.fileResponse(path, options)
|
|
225
228
|
)
|
|
226
229
|
|
|
@@ -230,7 +233,7 @@ export const fileWeb = (
|
|
|
230
233
|
options?: (ServerResponse.Options.WithContent & FileSystem.StreamOptions) | undefined
|
|
231
234
|
): Effect.Effect<ServerResponse.HttpServerResponse, never, Platform.HttpPlatform> =>
|
|
232
235
|
Effect.flatMap(
|
|
233
|
-
|
|
236
|
+
httpPlatform,
|
|
234
237
|
(platform) => platform.fileWebResponse(file, options)
|
|
235
238
|
)
|
|
236
239
|
|