@effect/platform 0.14.0 → 0.14.1
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/Http/Platform.d.ts +43 -0
- package/Http/Platform.d.ts.map +1 -0
- package/Http/Platform.js +28 -0
- package/Http/Platform.js.map +1 -0
- package/Http/ServerResponse.d.ts +3 -3
- package/Http/ServerResponse.d.ts.map +1 -1
- package/Http/ServerResponse.js.map +1 -1
- package/internal/http/platform.d.ts +2 -0
- package/internal/http/platform.d.ts.map +1 -0
- package/internal/http/platform.js +58 -0
- package/internal/http/platform.js.map +1 -0
- package/internal/http/router.d.ts.map +1 -1
- package/internal/http/router.js +4 -1
- package/internal/http/router.js.map +1 -1
- package/internal/http/serverResponse.js +3 -33
- package/internal/http/serverResponse.js.map +1 -1
- package/mjs/Http/Platform.mjs +17 -0
- package/mjs/Http/Platform.mjs.map +1 -0
- package/mjs/Http/ServerResponse.mjs.map +1 -1
- package/mjs/internal/http/platform.mjs +47 -0
- package/mjs/internal/http/platform.mjs.map +1 -0
- package/mjs/internal/http/router.mjs +4 -1
- package/mjs/internal/http/router.mjs.map +1 -1
- package/mjs/internal/http/serverResponse.mjs +4 -34
- package/mjs/internal/http/serverResponse.mjs.map +1 -1
- package/package.json +1 -2
- package/src/Http/Platform.ts +70 -0
- package/src/Http/ServerResponse.ts +4 -4
- package/src/internal/http/platform.ts +85 -0
- package/src/internal/http/router.ts +5 -2
- package/src/internal/http/serverResponse.ts +13 -53
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Context from "@effect/data/Context";
|
|
5
|
+
import type * as Effect from "@effect/io/Effect";
|
|
6
|
+
import type * as Error from "@effect/platform/Error";
|
|
7
|
+
import type * as FileSystem from "@effect/platform/FileSystem";
|
|
8
|
+
import type * as Body from "@effect/platform/Http/Body";
|
|
9
|
+
import type * as Etag from "@effect/platform/Http/Etag";
|
|
10
|
+
import type * as ServerResponse from "@effect/platform/Http/ServerResponse";
|
|
11
|
+
/**
|
|
12
|
+
* @since 1.0.0
|
|
13
|
+
* @category type ids
|
|
14
|
+
*/
|
|
15
|
+
export declare const TypeId: unique symbol;
|
|
16
|
+
/**
|
|
17
|
+
* @since 1.0.0
|
|
18
|
+
* @category type ids
|
|
19
|
+
*/
|
|
20
|
+
export type TypeId = typeof TypeId;
|
|
21
|
+
/**
|
|
22
|
+
* @since 1.0.0
|
|
23
|
+
* @category tags
|
|
24
|
+
*/
|
|
25
|
+
export declare const Platform: Context.Tag<Platform, Platform>;
|
|
26
|
+
/**
|
|
27
|
+
* @since 1.0.0
|
|
28
|
+
* @category models
|
|
29
|
+
*/
|
|
30
|
+
export interface Platform {
|
|
31
|
+
readonly [TypeId]: TypeId;
|
|
32
|
+
readonly fileResponse: (path: string, options?: ServerResponse.Options.WithContent & FileSystem.StreamOptions) => Effect.Effect<never, Error.PlatformError, ServerResponse.ServerResponse>;
|
|
33
|
+
readonly fileWebResponse: (file: Body.Body.FileLike, options?: ServerResponse.Options.WithContent & FileSystem.StreamOptions) => Effect.Effect<never, never, ServerResponse.ServerResponse>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @since 1.0.0
|
|
37
|
+
* @category constructors
|
|
38
|
+
*/
|
|
39
|
+
export declare const make: (impl: {
|
|
40
|
+
readonly fileResponse: (path: string, status: number, statusText: string | undefined, headers: Record<string, string>, start: number, end: number | undefined, contentLength: number) => ServerResponse.ServerResponse;
|
|
41
|
+
readonly fileWebResponse: (file: Body.Body.FileLike, status: number, statusText: string | undefined, headers: Record<string, string>, options?: FileSystem.StreamOptions | undefined) => ServerResponse.ServerResponse;
|
|
42
|
+
}) => Effect.Effect<FileSystem.FileSystem | Etag.Generator, never, Platform>;
|
|
43
|
+
//# sourceMappingURL=Platform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Platform.d.ts","sourceRoot":"","sources":["../src/Http/Platform.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,OAAO,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,KAAK,KAAK,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,KAAK,UAAU,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,KAAK,IAAI,MAAM,4BAA4B,CAAA;AACvD,OAAO,KAAK,KAAK,IAAI,MAAM,4BAA4B,CAAA;AACvD,OAAO,KAAK,KAAK,cAAc,MAAM,sCAAsC,CAAA;AAG3E;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,MAAwB,CAAA;AAEpD;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAgB,CAAA;AAErE;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC,aAAa,KACpE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;IAC7E,QAAQ,CAAC,eAAe,EAAE,CACxB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EACxB,OAAO,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC,aAAa,KACpE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;CAChE;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,CACjB,IAAI,EAAE;IACJ,QAAQ,CAAC,YAAY,EAAE,CACrB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,aAAa,EAAE,MAAM,KAClB,cAAc,CAAC,cAAc,CAAA;IAClC,QAAQ,CAAC,eAAe,EAAE,CACxB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EACxB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,OAAO,CAAC,EAAE,UAAU,CAAC,aAAa,GAAG,SAAS,KAC3C,cAAc,CAAC,cAAc,CAAA;CACnC,KACE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAiB,CAAA"}
|
package/Http/Platform.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.make = exports.TypeId = exports.Platform = void 0;
|
|
7
|
+
var internal = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/internal/http/platform"));
|
|
8
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
9
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
10
|
+
/**
|
|
11
|
+
* @since 1.0.0
|
|
12
|
+
* @category type ids
|
|
13
|
+
*/
|
|
14
|
+
const TypeId = internal.TypeId;
|
|
15
|
+
/**
|
|
16
|
+
* @since 1.0.0
|
|
17
|
+
* @category tags
|
|
18
|
+
*/
|
|
19
|
+
exports.TypeId = TypeId;
|
|
20
|
+
const Platform = internal.tag;
|
|
21
|
+
/**
|
|
22
|
+
* @since 1.0.0
|
|
23
|
+
* @category constructors
|
|
24
|
+
*/
|
|
25
|
+
exports.Platform = Platform;
|
|
26
|
+
const make = internal.make;
|
|
27
|
+
exports.make = make;
|
|
28
|
+
//# sourceMappingURL=Platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Platform.js","names":["internal","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","TypeId","exports","Platform","tag","make"],"sources":["../src/Http/Platform.ts"],"sourcesContent":[null],"mappings":";;;;;;AAUA,IAAAA,QAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAAmE,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAH,wBAAAO,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAEnE;;;;AAIO,MAAMW,MAAM,GAAkBzB,QAAQ,CAACyB,MAAM;AAQpD;;;;AAAAC,OAAA,CAAAD,MAAA,GAAAA,MAAA;AAIO,MAAME,QAAQ,GAAoC3B,QAAQ,CAAC4B,GAAG;AAkBrE;;;;AAAAF,OAAA,CAAAC,QAAA,GAAAA,QAAA;AAIO,MAAME,IAAI,GAmB6D7B,QAAQ,CAAC6B,IAAI;AAAAH,OAAA,CAAAG,IAAA,GAAAA,IAAA"}
|
package/Http/ServerResponse.d.ts
CHANGED
|
@@ -6,8 +6,8 @@ import type * as Effect from "@effect/io/Effect";
|
|
|
6
6
|
import type * as PlatformError from "@effect/platform/Error";
|
|
7
7
|
import type * as FileSystem from "@effect/platform/FileSystem";
|
|
8
8
|
import type * as Body from "@effect/platform/Http/Body";
|
|
9
|
-
import type * as Etag from "@effect/platform/Http/Etag";
|
|
10
9
|
import type * as Headers from "@effect/platform/Http/Headers";
|
|
10
|
+
import type * as Platform from "@effect/platform/Http/Platform";
|
|
11
11
|
import type * as UrlParams from "@effect/platform/Http/UrlParams";
|
|
12
12
|
import type * as Schema from "@effect/schema/Schema";
|
|
13
13
|
import type * as Stream from "@effect/stream/Stream";
|
|
@@ -118,12 +118,12 @@ export declare const stream: (body: Stream.Stream<never, unknown, Uint8Array>, o
|
|
|
118
118
|
* @since 1.0.0
|
|
119
119
|
* @category constructors
|
|
120
120
|
*/
|
|
121
|
-
export declare const file: (path: string, options?: Options & FileSystem.StreamOptions) => Effect.Effect<
|
|
121
|
+
export declare const file: (path: string, options?: Options & FileSystem.StreamOptions) => Effect.Effect<Platform.Platform, PlatformError.PlatformError, ServerResponse>;
|
|
122
122
|
/**
|
|
123
123
|
* @since 1.0.0
|
|
124
124
|
* @category constructors
|
|
125
125
|
*/
|
|
126
|
-
export declare const fileWeb: (file: Body.Body.FileLike, options?: Options.WithContent) => Effect.Effect<
|
|
126
|
+
export declare const fileWeb: (file: Body.Body.FileLike, options?: Options.WithContent & FileSystem.StreamOptions) => Effect.Effect<Platform.Platform, never, ServerResponse>;
|
|
127
127
|
/**
|
|
128
128
|
* @since 1.0.0
|
|
129
129
|
* @category combinators
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerResponse.d.ts","sourceRoot":"","sources":["../src/Http/ServerResponse.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,KAAK,aAAa,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,KAAK,UAAU,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,KAAK,IAAI,MAAM,4BAA4B,CAAA;AACvD,OAAO,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"ServerResponse.d.ts","sourceRoot":"","sources":["../src/Http/ServerResponse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerResponse.js","names":["internal","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","TypeId","Symbol","for","exports","isServerResponse","empty","uint8Array","text","json","schemaJson","unsafeJson","urlParams","raw","formData","stream","file","fileWeb","setHeader","setHeaders","setBody"],"sources":["../src/Http/ServerResponse.ts"],"sourcesContent":[null],"mappings":";;;;;;AAWA,IAAAA,QAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAAyE,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAH,wBAAAO,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAIzE;;;;AAIO,MAAMW,MAAM,gBAAGC,MAAM,CAACC,GAAG,CAAC,sCAAsC,CAAC;AAiDxE;;;AAAAC,OAAA,CAAAH,MAAA,GAAAA,MAAA;AAGO,MAAMI,gBAAgB,GAAwC7B,QAAQ,CAAC6B,gBAAgB;AAE9F;;;;AAAAD,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAIO,MAAMC,KAAK,GAAsD9B,QAAQ,CAAC8B,KAAK;AAEtF;;;;AAAAF,OAAA,CAAAE,KAAA,GAAAA,KAAA;AAIO,MAAMC,UAAU,GAA4E/B,QAAQ,CAAC+B,UAAU;AAEtH;;;;AAAAH,OAAA,CAAAG,UAAA,GAAAA,UAAA;AAIO,MAAMC,IAAI,GAAwEhC,QAAQ,CAACgC,IAAI;AAEtG;;;;AAAAJ,OAAA,CAAAI,IAAA,GAAAA,IAAA;AAIO,MAAMC,IAAI,GAG2CjC,QAAQ,CAACiC,IAAI;AAEzE;;;;AAAAL,OAAA,CAAAK,IAAA,GAAAA,IAAA;AAIO,MAAMC,UAAU,GAGrBlC,QAAQ,CAACkC,UAAU;AAErB;;;;AAAAN,OAAA,CAAAM,UAAA,GAAAA,UAAA;AAIO,MAAMC,UAAU,GAAqEnC,QAAQ,CAACmC,UAAU;AAE/G;;;;AAAAP,OAAA,CAAAO,UAAA,GAAAA,UAAA;AAIO,MAAMC,SAAS,GAA6EpC,QAAQ,CAACoC,SAAS;AAErH;;;;AAAAR,OAAA,CAAAQ,SAAA,GAAAA,SAAA;AAIO,MAAMC,GAAG,GAAyDrC,QAAQ,CAACqC,GAAG;AAErF;;;;AAAAT,OAAA,CAAAS,GAAA,GAAAA,GAAA;AAIO,MAAMC,QAAQ,GAAsEtC,QAAQ,CAACsC,QAAQ;AAE5G;;;;AAAAV,OAAA,CAAAU,QAAA,GAAAA,QAAA;AAIO,MAAMC,MAAM,GACjBvC,QAAQ,CAACuC,MAAM;AAEjB;;;;AAAAX,OAAA,CAAAW,MAAA,GAAAA,MAAA;AAIO,MAAMC,IAAI,
|
|
1
|
+
{"version":3,"file":"ServerResponse.js","names":["internal","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","TypeId","Symbol","for","exports","isServerResponse","empty","uint8Array","text","json","schemaJson","unsafeJson","urlParams","raw","formData","stream","file","fileWeb","setHeader","setHeaders","setBody"],"sources":["../src/Http/ServerResponse.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/internal/http/platform.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.tag = exports.make = exports.TypeId = void 0;
|
|
7
|
+
var Context = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/Context"));
|
|
8
|
+
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Effect"));
|
|
9
|
+
var FileSystem = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/FileSystem"));
|
|
10
|
+
var Etag = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/Http/Etag"));
|
|
11
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
|
+
/** @internal */
|
|
14
|
+
const TypeId = /*#__PURE__*/Symbol.for("@effect/platform/Http/Platform");
|
|
15
|
+
/** @internal */
|
|
16
|
+
exports.TypeId = TypeId;
|
|
17
|
+
const tag = /*#__PURE__*/Context.Tag(TypeId);
|
|
18
|
+
/** @internal */
|
|
19
|
+
exports.tag = tag;
|
|
20
|
+
const make = impl => Effect.gen(function* (_) {
|
|
21
|
+
const fs = yield* _(FileSystem.FileSystem);
|
|
22
|
+
const etagGen = yield* _(Etag.Generator);
|
|
23
|
+
return tag.of({
|
|
24
|
+
[TypeId]: TypeId,
|
|
25
|
+
fileResponse(path, options) {
|
|
26
|
+
return Effect.map(({
|
|
27
|
+
etag,
|
|
28
|
+
info
|
|
29
|
+
}) => {
|
|
30
|
+
const start = Number(options?.offset ?? 0);
|
|
31
|
+
const end = options?.bytesToRead !== undefined ? start + Number(options.bytesToRead) : undefined;
|
|
32
|
+
const headers = {
|
|
33
|
+
...(options?.headers ?? {}),
|
|
34
|
+
etag: Etag.toString(etag)
|
|
35
|
+
};
|
|
36
|
+
if (info.mtime._tag === "Some") {
|
|
37
|
+
headers["last-modified"] = info.mtime.value.toUTCString();
|
|
38
|
+
}
|
|
39
|
+
const contentLength = end !== undefined ? end - start : Number(info.size) - start;
|
|
40
|
+
return impl.fileResponse(path, options?.status ?? 200, options?.statusText, headers, start, end, contentLength);
|
|
41
|
+
})(Effect.bind("etag", ({
|
|
42
|
+
info
|
|
43
|
+
}) => etagGen.fromFileInfo(info))(Effect.bindTo(fs.stat(path), "info")));
|
|
44
|
+
},
|
|
45
|
+
fileWebResponse(file, options) {
|
|
46
|
+
return Effect.map(etagGen.fromFileWeb(file), etag => {
|
|
47
|
+
const headers = {
|
|
48
|
+
...(options?.headers ?? {}),
|
|
49
|
+
etag: Etag.toString(etag),
|
|
50
|
+
"last-modified": new Date(file.lastModified).toUTCString()
|
|
51
|
+
};
|
|
52
|
+
return impl.fileWebResponse(file, options?.status ?? 200, options?.statusText, headers, options);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
exports.make = make;
|
|
58
|
+
//# sourceMappingURL=platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.js","names":["Context","_interopRequireWildcard","require","Effect","FileSystem","Etag","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","TypeId","Symbol","for","exports","tag","Tag","make","impl","gen","_","fs","etagGen","Generator","of","fileResponse","path","options","map","etag","info","start","Number","offset","end","bytesToRead","undefined","headers","toString","mtime","_tag","value","toUTCString","contentLength","size","status","statusText","bind","fromFileInfo","bindTo","stat","fileWebResponse","file","fromFileWeb","Date","lastModified"],"sources":["../../src/internal/http/platform.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/internal/http/router.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAU/C,OAAO,KAAK,KAAK,MAAM,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/internal/http/router.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAU/C,OAAO,KAAK,KAAK,MAAM,MAAM,8BAA8B,CAAA;AAoZ3D,eAAO,MAAM,cAAc,6YAesB,CAAA"}
|
package/internal/http/router.js
CHANGED
|
@@ -100,7 +100,10 @@ const toHttpApp = self => {
|
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
|
-
|
|
103
|
+
let result = router.find(request.method, request.url);
|
|
104
|
+
if (result === null && request.method === "HEAD") {
|
|
105
|
+
result = router.find("GET", request.url);
|
|
106
|
+
}
|
|
104
107
|
if (result === null) {
|
|
105
108
|
return Effect.fail(Error.RouteNotFound({
|
|
106
109
|
request
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","names":["Chunk","_interopRequireWildcard","require","Context","Equal","_Function","Hash","Option","_Pipeable","Effect","Error","ServerRequest","Schema","Channel","Sink","Stream","_findMyWay","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","TypeId","Symbol","for","exports","RouteTypeId","RouteContextTypeId","RouteContext","Tag","params","map","_","searchParams","schemaParams","schema","parse","flatMap","RouterImpl","constructor","routes","mounts","_tag","EffectTypeId","undefined","StreamTypeId","SinkTypeId","ChannelTypeId","pipe","pipeArguments","arguments","commit","httpApp","toHttpApp","symbol","that","random","self","router","FindMyWay","toReadonlyArray","mountsLen","length","forEach","route","fn","method","all","path","on","request","i","app","url","startsWith","provideService","sliceRequestUrl","result","find","fail","RouteNotFound","handler","prefix","value","mapInputContext","context","add","RouteContextImpl","prefexLen","setUrl","slice","RouteImpl","none","empty","fromIterable","makeRoute","concat","dual","appendAll","removeTrailingSlash","endsWith","prefixAll","orElse","some","mount","mountApp","append","post","put","patch","del","head","options","use","f","catchAll","catchAllCause","catchTag","k","catchTags","cases","tag","service","provideServiceEffect","effect"],"sources":["../../src/internal/http/router.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.js","names":["Chunk","_interopRequireWildcard","require","Context","Equal","_Function","Hash","Option","_Pipeable","Effect","Error","ServerRequest","Schema","Channel","Sink","Stream","_findMyWay","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","TypeId","Symbol","for","exports","RouteTypeId","RouteContextTypeId","RouteContext","Tag","params","map","_","searchParams","schemaParams","schema","parse","flatMap","RouterImpl","constructor","routes","mounts","_tag","EffectTypeId","undefined","StreamTypeId","SinkTypeId","ChannelTypeId","pipe","pipeArguments","arguments","commit","httpApp","toHttpApp","symbol","that","random","self","router","FindMyWay","toReadonlyArray","mountsLen","length","forEach","route","fn","method","all","path","on","request","i","app","url","startsWith","provideService","sliceRequestUrl","result","find","fail","RouteNotFound","handler","prefix","value","mapInputContext","context","add","RouteContextImpl","prefexLen","setUrl","slice","RouteImpl","none","empty","fromIterable","makeRoute","concat","dual","appendAll","removeTrailingSlash","endsWith","prefixAll","orElse","some","mount","mountApp","append","post","put","patch","del","head","options","use","f","catchAll","catchAllCause","catchTag","k","catchTags","cases","tag","service","provideServiceEffect","effect"],"sources":["../../src/internal/http/router.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -7,12 +7,10 @@ exports.urlParams = exports.unsafeJson = exports.uint8Array = exports.text = exp
|
|
|
7
7
|
var _Function = /*#__PURE__*/require("@effect/data/Function");
|
|
8
8
|
var _Pipeable = /*#__PURE__*/require("@effect/data/Pipeable");
|
|
9
9
|
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Effect"));
|
|
10
|
-
var FileSystem = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/FileSystem"));
|
|
11
|
-
var Etag = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/Http/Etag"));
|
|
12
10
|
var Headers = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/Http/Headers"));
|
|
11
|
+
var Platform = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/Http/Platform"));
|
|
13
12
|
var UrlParams = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/Http/UrlParams"));
|
|
14
13
|
var internalBody = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/internal/http/body"));
|
|
15
|
-
var Mime = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("mime"));
|
|
16
14
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
15
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
16
|
/** @internal */
|
|
@@ -68,38 +66,10 @@ const schemaJson = schema => {
|
|
|
68
66
|
};
|
|
69
67
|
/** @internal */
|
|
70
68
|
exports.schemaJson = schemaJson;
|
|
71
|
-
const file = (path, options) => Effect.
|
|
72
|
-
body,
|
|
73
|
-
etag,
|
|
74
|
-
info
|
|
75
|
-
}) => {
|
|
76
|
-
const headers = {
|
|
77
|
-
...(options?.headers ?? {}),
|
|
78
|
-
etag: Etag.toString(etag)
|
|
79
|
-
};
|
|
80
|
-
if (info.mtime._tag === "Some") {
|
|
81
|
-
headers["last-modified"] = info.mtime.value.toUTCString();
|
|
82
|
-
}
|
|
83
|
-
return new ServerResponseImpl(options?.status ?? 200, options?.statusText, headers, body);
|
|
84
|
-
})(Effect.bind("body", ({
|
|
85
|
-
info
|
|
86
|
-
}) => internalBody.fileInfo(path, info, {
|
|
87
|
-
contentType: Mime.getType(path) ?? undefined,
|
|
88
|
-
...options
|
|
89
|
-
}))(Effect.bind("etag", ({
|
|
90
|
-
info
|
|
91
|
-
}) => Effect.flatMap(Etag.Generator, generator => generator.fromFileInfo(info)))(Effect.bindTo(Effect.flatMap(FileSystem.FileSystem, fs => fs.stat(path)), "info"))));
|
|
69
|
+
const file = (path, options) => Effect.flatMap(Platform.Platform, platform => platform.fileResponse(path, options));
|
|
92
70
|
/** @internal */
|
|
93
71
|
exports.file = file;
|
|
94
|
-
const fileWeb = (file, options) => Effect.flatMap(
|
|
95
|
-
const body = internalBody.fileWeb(file);
|
|
96
|
-
const headers = {
|
|
97
|
-
...(options?.headers ?? {}),
|
|
98
|
-
etag: Etag.toString(etag),
|
|
99
|
-
"last-modified": new Date(file.lastModified).toUTCString()
|
|
100
|
-
};
|
|
101
|
-
return new ServerResponseImpl(options?.status ?? 200, options?.statusText, headers, body);
|
|
102
|
-
}));
|
|
72
|
+
const fileWeb = (file, options) => Effect.flatMap(Platform.Platform, platform => platform.fileWebResponse(file, options));
|
|
103
73
|
/** @internal */
|
|
104
74
|
exports.fileWeb = fileWeb;
|
|
105
75
|
const urlParams = (body, options) => new ServerResponseImpl(options?.status ?? 200, options?.statusText, options?.headers ?? Headers.empty, internalBody.text(UrlParams.toString(UrlParams.fromInput(body)), "application/x-www-form-urlencoded"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverResponse.js","names":["_Function","require","_Pipeable","Effect","_interopRequireWildcard","
|
|
1
|
+
{"version":3,"file":"serverResponse.js","names":["_Function","require","_Pipeable","Effect","_interopRequireWildcard","Headers","Platform","UrlParams","internalBody","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","TypeId","Symbol","for","exports","ServerResponseImpl","constructor","status","statusText","headers","body","contentType","contentLength","newHeaders","toString","pipe","pipeArguments","arguments","isServerResponse","u","empty","options","uint8Array","getContentType","text","json","map","unsafeJson","schemaJson","schema","encode","jsonSchema","file","path","flatMap","platform","fileResponse","fileWeb","fileWebResponse","urlParams","fromInput","raw","formData","stream","setHeader","dual","self","value","setHeaders","input","setAll","setStatus","args","setBody","_tag","remove"],"sources":["../../src/internal/http/serverResponse.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as internal from "@effect/platform/internal/http/platform";
|
|
2
|
+
/**
|
|
3
|
+
* @since 1.0.0
|
|
4
|
+
* @category type ids
|
|
5
|
+
*/
|
|
6
|
+
export const TypeId = internal.TypeId;
|
|
7
|
+
/**
|
|
8
|
+
* @since 1.0.0
|
|
9
|
+
* @category tags
|
|
10
|
+
*/
|
|
11
|
+
export const Platform = internal.tag;
|
|
12
|
+
/**
|
|
13
|
+
* @since 1.0.0
|
|
14
|
+
* @category constructors
|
|
15
|
+
*/
|
|
16
|
+
export const make = internal.make;
|
|
17
|
+
//# sourceMappingURL=Platform.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Platform.mjs","names":["internal","TypeId","Platform","tag","make"],"sources":["../../src/Http/Platform.ts"],"sourcesContent":[null],"mappings":"AAUA,OAAO,KAAKA,QAAQ,MAAM,yCAAyC;AAEnE;;;;AAIA,OAAO,MAAMC,MAAM,GAAkBD,QAAQ,CAACC,MAAM;AAQpD;;;;AAIA,OAAO,MAAMC,QAAQ,GAAoCF,QAAQ,CAACG,GAAG;AAkBrE;;;;AAIA,OAAO,MAAMC,IAAI,GAmB6DJ,QAAQ,CAACI,IAAI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerResponse.mjs","names":["internal","TypeId","Symbol","for","isServerResponse","empty","uint8Array","text","json","schemaJson","unsafeJson","urlParams","raw","formData","stream","file","fileWeb","setHeader","setHeaders","setBody"],"sources":["../../src/Http/ServerResponse.ts"],"sourcesContent":[null],"mappings":"AAWA,OAAO,KAAKA,QAAQ,MAAM,+CAA+C;AAIzE;;;;AAIA,OAAO,MAAMC,MAAM,gBAAGC,MAAM,CAACC,GAAG,CAAC,sCAAsC,CAAC;AAiDxE;;;AAGA,OAAO,MAAMC,gBAAgB,GAAwCJ,QAAQ,CAACI,gBAAgB;AAE9F;;;;AAIA,OAAO,MAAMC,KAAK,GAAsDL,QAAQ,CAACK,KAAK;AAEtF;;;;AAIA,OAAO,MAAMC,UAAU,GAA4EN,QAAQ,CAACM,UAAU;AAEtH;;;;AAIA,OAAO,MAAMC,IAAI,GAAwEP,QAAQ,CAACO,IAAI;AAEtG;;;;AAIA,OAAO,MAAMC,IAAI,GAG2CR,QAAQ,CAACQ,IAAI;AAEzE;;;;AAIA,OAAO,MAAMC,UAAU,GAGrBT,QAAQ,CAACS,UAAU;AAErB;;;;AAIA,OAAO,MAAMC,UAAU,GAAqEV,QAAQ,CAACU,UAAU;AAE/G;;;;AAIA,OAAO,MAAMC,SAAS,GAA6EX,QAAQ,CAACW,SAAS;AAErH;;;;AAIA,OAAO,MAAMC,GAAG,GAAyDZ,QAAQ,CAACY,GAAG;AAErF;;;;AAIA,OAAO,MAAMC,QAAQ,GAAsEb,QAAQ,CAACa,QAAQ;AAE5G;;;;AAIA,OAAO,MAAMC,MAAM,GACjBd,QAAQ,CAACc,MAAM;AAEjB;;;;AAIA,OAAO,MAAMC,IAAI,
|
|
1
|
+
{"version":3,"file":"ServerResponse.mjs","names":["internal","TypeId","Symbol","for","isServerResponse","empty","uint8Array","text","json","schemaJson","unsafeJson","urlParams","raw","formData","stream","file","fileWeb","setHeader","setHeaders","setBody"],"sources":["../../src/Http/ServerResponse.ts"],"sourcesContent":[null],"mappings":"AAWA,OAAO,KAAKA,QAAQ,MAAM,+CAA+C;AAIzE;;;;AAIA,OAAO,MAAMC,MAAM,gBAAGC,MAAM,CAACC,GAAG,CAAC,sCAAsC,CAAC;AAiDxE;;;AAGA,OAAO,MAAMC,gBAAgB,GAAwCJ,QAAQ,CAACI,gBAAgB;AAE9F;;;;AAIA,OAAO,MAAMC,KAAK,GAAsDL,QAAQ,CAACK,KAAK;AAEtF;;;;AAIA,OAAO,MAAMC,UAAU,GAA4EN,QAAQ,CAACM,UAAU;AAEtH;;;;AAIA,OAAO,MAAMC,IAAI,GAAwEP,QAAQ,CAACO,IAAI;AAEtG;;;;AAIA,OAAO,MAAMC,IAAI,GAG2CR,QAAQ,CAACQ,IAAI;AAEzE;;;;AAIA,OAAO,MAAMC,UAAU,GAGrBT,QAAQ,CAACS,UAAU;AAErB;;;;AAIA,OAAO,MAAMC,UAAU,GAAqEV,QAAQ,CAACU,UAAU;AAE/G;;;;AAIA,OAAO,MAAMC,SAAS,GAA6EX,QAAQ,CAACW,SAAS;AAErH;;;;AAIA,OAAO,MAAMC,GAAG,GAAyDZ,QAAQ,CAACY,GAAG;AAErF;;;;AAIA,OAAO,MAAMC,QAAQ,GAAsEb,QAAQ,CAACa,QAAQ;AAE5G;;;;AAIA,OAAO,MAAMC,MAAM,GACjBd,QAAQ,CAACc,MAAM;AAEjB;;;;AAIA,OAAO,MAAMC,IAAI,GAGoEf,QAAQ,CAACe,IAAI;AAElG;;;;AAIA,OAAO,MAAMC,OAAO,GAG2ChB,QAAQ,CAACgB,OAAO;AAE/E;;;;AAIA,OAAO,MAAMC,SAAS,GAGlBjB,QAAQ,CAACiB,SAAS;AAEtB;;;;AAIA,OAAO,MAAMC,UAAU,GAGnBlB,QAAQ,CAACkB,UAAU;AAEvB;;;;AAIA,OAAO,MAAMC,OAAO,GAGhBnB,QAAQ,CAACmB,OAAO"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as Context from "@effect/data/Context";
|
|
2
|
+
import * as Effect from "@effect/io/Effect";
|
|
3
|
+
import * as FileSystem from "@effect/platform/FileSystem";
|
|
4
|
+
import * as Etag from "@effect/platform/Http/Etag";
|
|
5
|
+
/** @internal */
|
|
6
|
+
export const TypeId = /*#__PURE__*/Symbol.for("@effect/platform/Http/Platform");
|
|
7
|
+
/** @internal */
|
|
8
|
+
export const tag = /*#__PURE__*/Context.Tag(TypeId);
|
|
9
|
+
/** @internal */
|
|
10
|
+
export const make = impl => Effect.gen(function* (_) {
|
|
11
|
+
const fs = yield* _(FileSystem.FileSystem);
|
|
12
|
+
const etagGen = yield* _(Etag.Generator);
|
|
13
|
+
return tag.of({
|
|
14
|
+
[TypeId]: TypeId,
|
|
15
|
+
fileResponse(path, options) {
|
|
16
|
+
return Effect.map(({
|
|
17
|
+
etag,
|
|
18
|
+
info
|
|
19
|
+
}) => {
|
|
20
|
+
const start = Number(options?.offset ?? 0);
|
|
21
|
+
const end = options?.bytesToRead !== undefined ? start + Number(options.bytesToRead) : undefined;
|
|
22
|
+
const headers = {
|
|
23
|
+
...(options?.headers ?? {}),
|
|
24
|
+
etag: Etag.toString(etag)
|
|
25
|
+
};
|
|
26
|
+
if (info.mtime._tag === "Some") {
|
|
27
|
+
headers["last-modified"] = info.mtime.value.toUTCString();
|
|
28
|
+
}
|
|
29
|
+
const contentLength = end !== undefined ? end - start : Number(info.size) - start;
|
|
30
|
+
return impl.fileResponse(path, options?.status ?? 200, options?.statusText, headers, start, end, contentLength);
|
|
31
|
+
})(Effect.bind("etag", ({
|
|
32
|
+
info
|
|
33
|
+
}) => etagGen.fromFileInfo(info))(Effect.bindTo(fs.stat(path), "info")));
|
|
34
|
+
},
|
|
35
|
+
fileWebResponse(file, options) {
|
|
36
|
+
return Effect.map(etagGen.fromFileWeb(file), etag => {
|
|
37
|
+
const headers = {
|
|
38
|
+
...(options?.headers ?? {}),
|
|
39
|
+
etag: Etag.toString(etag),
|
|
40
|
+
"last-modified": new Date(file.lastModified).toUTCString()
|
|
41
|
+
};
|
|
42
|
+
return impl.fileWebResponse(file, options?.status ?? 200, options?.statusText, headers, options);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=platform.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.mjs","names":["Context","Effect","FileSystem","Etag","TypeId","Symbol","for","tag","Tag","make","impl","gen","_","fs","etagGen","Generator","of","fileResponse","path","options","map","etag","info","start","Number","offset","end","bytesToRead","undefined","headers","toString","mtime","_tag","value","toUTCString","contentLength","size","status","statusText","bind","fromFileInfo","bindTo","stat","fileWebResponse","file","fromFileWeb","Date","lastModified"],"sources":["../../../src/internal/http/platform.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -84,7 +84,10 @@ const toHttpApp = self => {
|
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
|
|
87
|
+
let result = router.find(request.method, request.url);
|
|
88
|
+
if (result === null && request.method === "HEAD") {
|
|
89
|
+
result = router.find("GET", request.url);
|
|
90
|
+
}
|
|
88
91
|
if (result === null) {
|
|
89
92
|
return Effect.fail(Error.RouteNotFound({
|
|
90
93
|
request
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.mjs","names":["Chunk","Context","Equal","dual","Hash","Option","pipeArguments","Effect","Error","ServerRequest","Schema","Channel","Sink","Stream","FindMyWay","TypeId","Symbol","for","RouteTypeId","RouteContextTypeId","RouteContext","Tag","params","map","_","searchParams","schemaParams","schema","parse","flatMap","RouterImpl","constructor","routes","mounts","_tag","EffectTypeId","undefined","StreamTypeId","SinkTypeId","ChannelTypeId","pipe","arguments","commit","httpApp","toHttpApp","symbol","that","random","self","router","toReadonlyArray","mountsLen","length","forEach","route","fn","method","all","path","on","request","i","app","url","startsWith","provideService","sliceRequestUrl","result","find","fail","RouteNotFound","handler","prefix","value","mapInputContext","context","add","RouteContextImpl","prefexLen","setUrl","slice","RouteImpl","none","empty","fromIterable","makeRoute","concat","appendAll","removeTrailingSlash","endsWith","prefixAll","orElse","some","mount","mountApp","append","get","post","put","patch","del","head","options","use","f","catchAll","catchAllCause","catchTag","k","catchTags","cases","tag","service","provideServiceEffect","effect"],"sources":["../../../src/internal/http/router.ts"],"sourcesContent":[null],"mappings":"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
|
|
1
|
+
{"version":3,"file":"router.mjs","names":["Chunk","Context","Equal","dual","Hash","Option","pipeArguments","Effect","Error","ServerRequest","Schema","Channel","Sink","Stream","FindMyWay","TypeId","Symbol","for","RouteTypeId","RouteContextTypeId","RouteContext","Tag","params","map","_","searchParams","schemaParams","schema","parse","flatMap","RouterImpl","constructor","routes","mounts","_tag","EffectTypeId","undefined","StreamTypeId","SinkTypeId","ChannelTypeId","pipe","arguments","commit","httpApp","toHttpApp","symbol","that","random","self","router","toReadonlyArray","mountsLen","length","forEach","route","fn","method","all","path","on","request","i","app","url","startsWith","provideService","sliceRequestUrl","result","find","fail","RouteNotFound","handler","prefix","value","mapInputContext","context","add","RouteContextImpl","prefexLen","setUrl","slice","RouteImpl","none","empty","fromIterable","makeRoute","concat","appendAll","removeTrailingSlash","endsWith","prefixAll","orElse","some","mount","mountApp","append","get","post","put","patch","del","head","options","use","f","catchAll","catchAllCause","catchTag","k","catchTags","cases","tag","service","provideServiceEffect","effect"],"sources":["../../../src/internal/http/router.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,oBAAoB;AAC3C,OAAO,KAAKC,OAAO,MAAM,sBAAsB;AAC/C,OAAO,KAAKC,KAAK,MAAM,oBAAoB;AAC3C,SAASC,IAAI,QAAQ,uBAAuB;AAC5C,OAAO,KAAKC,IAAI,MAAM,mBAAmB;AACzC,OAAO,KAAKC,MAAM,MAAM,qBAAqB;AAC7C,SAASC,aAAa,QAAQ,uBAAuB;AAErD,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAI3C,OAAO,KAAKC,KAAK,MAAM,mCAAmC;AAC1D,OAAO,KAAKC,aAAa,MAAM,qCAAqC;AAEpE,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAC/C,OAAO,KAAKC,OAAO,MAAM,wBAAwB;AACjD,OAAO,KAAKC,IAAI,MAAM,qBAAqB;AAC3C,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAE/C,OAAOC,SAAS,MAAM,aAAa;AAEnC;AACA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAAC,8BAA8B,CAAkB;AAEhG;AACA,OAAO,MAAMC,WAAW,gBAAuBF,MAAM,CAACC,GAAG,CAAC,oCAAoC,CAAuB;AAErH;AACA,OAAO,MAAME,kBAAkB,gBAA8BH,MAAM,CAACC,GAAG,CACrE,2CAA2C,CACf;AAE9B;AACA,OAAO,MAAMG,YAAY,gBAAGnB,OAAO,CAACoB,GAAG,CAAsB,2CAA2C,CAAC;AAEzG;AACA,OAAO,MAAMC,MAAM,gBAAGf,MAAM,CAACgB,GAAG,CAACH,YAAY,EAAGI,CAAC,IAAKA,CAAC,CAACF,MAAM,CAAC;AAE/D;AACA,OAAO,MAAMG,YAAY,gBAAGlB,MAAM,CAACgB,GAAG,CAACH,YAAY,EAAGI,CAAC,IAAKA,CAAC,CAACC,YAAY,CAAC;AAE3E;AACA,OAAO,MAAMC,YAAY,GAAmDC,MAA2B,IAAI;EACzG,MAAMC,KAAK,GAAGlB,MAAM,CAACkB,KAAK,CAACD,MAAM,CAAC;EAClC,OAAOpB,MAAM,CAACsB,OAAO,CACnBT,YAAY,EACXI,CAAC,IACAI,KAAK,CAAC;IACJ,GAAGJ,CAAC,CAACC,YAAY;IACjB,GAAGD,CAAC,CAACF;GACN,CAAC,CACL;AACH,CAAC;AAED,MAAMQ,UAAU;EAEdC,YACWC,MAAuC,EACvCC,MAAyD;IADzD,KAAAD,MAAM,GAANA,MAAM;IACN,KAAAC,MAAM,GAANA,MAAM;IAmBjB;IACO,KAAAC,IAAI,GAAG,QAAQ,EAAC;IAlBrB,IAAI,CAACnB,MAAM,CAAC,GAAGA,MAAM;IACrB,IAAI,CAACR,MAAM,CAAC4B,YAAY,CAAC,GAAGC,SAAS;IACrC,IAAI,CAACvB,MAAM,CAACwB,YAAY,CAAC,GAAGD,SAAS;IACrC,IAAI,CAACxB,IAAI,CAAC0B,UAAU,CAAC,GAAGF,SAAS;IACjC,IAAI,CAACzB,OAAO,CAAC4B,aAAa,CAAC,GAAGH,SAAS;EACzC;EACAI,IAAIA,CAAA;IACF,OAAOlC,aAAa,CAAC,IAAI,EAAEmC,SAAS,CAAC;EACvC;EAEAC,MAAMA,CAAA;IACJ,IAAI,IAAI,CAACC,OAAO,KAAKP,SAAS,EAAE;MAC9B,IAAI,CAACO,OAAO,GAAGC,SAAS,CAAC,IAAI,CAAC;;IAEhC,OAAO,IAAI,CAACD,OAAO;EACrB;EAQA,EAJUpC,MAAM,CAAC4B,YAAY,EACnBtB,MAAM,CAACwB,YAAY,EACnBzB,IAAI,CAAC0B,UAAU,EACf3B,OAAO,CAAC4B,aAAa,EAC9BrC,KAAK,CAAC2C,MAAM,GAEXC,IAAsB;IAEtB,OAAO,IAAI,KAAKA,IAAI;EACtB;EACA,CAAC1C,IAAI,CAACyC,MAAM,IAAC;IACX,OAAOzC,IAAI,CAAC2C,MAAM,CAAC,IAAI,CAAC;EAC1B;;AAGF,MAAMH,SAAS,GACbI,IAAyB,IACiD;EAC1E,MAAMC,MAAM,GAAGnC,SAAS,EAAE;EAC1B,MAAMmB,MAAM,GAAGjC,KAAK,CAACkD,eAAe,CAACF,IAAI,CAACf,MAAM,CAAC;EACjD,MAAMkB,SAAS,GAAGlB,MAAM,CAACmB,MAAM;EAC/BpD,KAAK,CAACqD,OAAO,CAACL,IAAI,CAAChB,MAAM,EAAGsB,KAAK,IAAI;IACnC,SAASC,EAAEA,CAAA;MACT,OAAOD,KAAK;IACd;IACA,IAAIA,KAAK,CAACE,MAAM,KAAK,GAAG,EAAE;MACxBP,MAAM,CAACQ,GAAG,CAACH,KAAK,CAACI,IAAI,EAAEH,EAAE,CAAC;KAC3B,MAAM;MACLN,MAAM,CAACU,EAAE,CAACL,KAAK,CAACE,MAAM,EAAEF,KAAK,CAACI,IAAI,EAAEH,EAAE,CAAC;;EAE3C,CAAC,CAAC;EACF,OAAOhD,MAAM,CAACsB,OAAO,CACnBpB,aAAa,CAACA,aAAa,EAC1BmD,OAAO,IAA4E;IAClF,IAAIT,SAAS,GAAG,CAAC,EAAE;MACjB,KAAK,IAAIU,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGV,SAAS,EAAEU,CAAC,EAAE,EAAE;QAClC,MAAM,CAACH,IAAI,EAAEI,GAAG,CAAC,GAAG7B,MAAM,CAAC4B,CAAC,CAAC;QAC7B,IAAID,OAAO,CAACG,GAAG,CAACC,UAAU,CAACN,IAAI,CAAC,EAAE;UAChC,OAAOnD,MAAM,CAAC0D,cAAc,CAC1BH,GAAG,EACHrD,aAAa,CAACA,aAAa,EAC3ByD,eAAe,CAACN,OAAO,EAAEF,IAAI,CAAC,CACqB;;;;IAK3D,IAAIS,MAAM,GAAGlB,MAAM,CAACmB,IAAI,CAACR,OAAO,CAACJ,MAAoB,EAAEI,OAAO,CAACG,GAAG,CAAC;IACnE,IAAII,MAAM,KAAK,IAAI,IAAIP,OAAO,CAACJ,MAAM,KAAK,MAAM,EAAE;MAChDW,MAAM,GAAGlB,MAAM,CAACmB,IAAI,CAAC,KAAK,EAAER,OAAO,CAACG,GAAG,CAAC;;IAE1C,IAAII,MAAM,KAAK,IAAI,EAAE;MACnB,OAAO5D,MAAM,CAAC8D,IAAI,CAAC7D,KAAK,CAAC8D,aAAa,CAAC;QAAEV;MAAO,CAAE,CAAC,CAAC;;IAEtD,MAAMN,KAAK,GAAIa,MAAM,CAACI,OAAe,EAAwB;IAC7D,IAAIjB,KAAK,CAACkB,MAAM,CAACtC,IAAI,KAAK,MAAM,EAAE;MAChC0B,OAAO,GAAGM,eAAe,CAACN,OAAO,EAAEN,KAAK,CAACkB,MAAM,CAACC,KAAK,CAAC;;IAExD,OAAOlE,MAAM,CAACmE,eAAe,CAC3BpB,KAAK,CAACiB,OAA4F,EACjGI,OAAO,IACN1E,OAAO,CAAC2E,GAAG,CACT3E,OAAO,CAAC2E,GAAG,CAACD,OAAO,EAAElE,aAAa,CAACA,aAAa,EAAEmD,OAAO,CAAC,EAC1DxC,YAAY,EACZ,IAAIyD,gBAAgB,CAACV,MAAO,CAAC7C,MAAM,EAAE6C,MAAO,CAAC1C,YAAY,CAAC,CACrC,CAC1B;EACH,CAAC,CACF;AACH,CAAC;AAED,SAASyC,eAAeA,CAACN,OAAoC,EAAEY,MAAc;EAC3E,MAAMM,SAAS,GAAGN,MAAM,CAACpB,MAAM;EAC/B,OAAOQ,OAAO,CAACmB,MAAM,CAACnB,OAAO,CAACG,GAAG,CAACX,MAAM,IAAI0B,SAAS,GAAG,GAAG,GAAGlB,OAAO,CAACG,GAAG,CAACiB,KAAK,CAACF,SAAS,CAAC,CAAC;AAC7F;AAEA,MAAMG,SAAS;EAEblD,YACWyB,MAA2B,EAC3BE,IAAY,EACZa,OAAmC,EACnCC,MAAA,GAASnE,MAAM,CAAC6E,IAAI,EAAU;IAH9B,KAAA1B,MAAM,GAANA,MAAM;IACN,KAAAE,IAAI,GAAJA,IAAI;IACJ,KAAAa,OAAO,GAAPA,OAAO;IACP,KAAAC,MAAM,GAANA,MAAM;IAEf,IAAI,CAACtD,WAAW,CAAC,GAAGA,WAAW;EACjC;;AAGF,MAAM2D,gBAAgB;EAEpB9C,YACWT,MAAoD,EACpDG,YAA8C;IAD9C,KAAAH,MAAM,GAANA,MAAM;IACN,KAAAG,YAAY,GAAZA,YAAY;IAErB,IAAI,CAACN,kBAAkB,CAAC,GAAGA,kBAAkB;EAC/C;;AAGF;AACA,OAAO,MAAMgE,KAAK,gBAAgC,IAAIrD,UAAU,eAAC9B,KAAK,CAACmF,KAAK,EAAE,eAAEnF,KAAK,CAACmF,KAAK,EAAE,CAAC;AAE9F;AACA,OAAO,MAAMC,YAAY,GACvBpD,MAAoC,IACZ,IAAIF,UAAU,CAAC9B,KAAK,CAACoF,YAAY,CAACpD,MAAM,CAAC,EAAEhC,KAAK,CAACmF,KAAK,EAAE,CAAC;AAEnF;AACA,OAAO,MAAME,SAAS,GAAGA,CACvB7B,MAAqB,EACrBE,IAAY,EACZa,OAAmC,EACnCC,MAAA,GAAgCnE,MAAM,CAAC6E,IAAI,EAAE,KACtB,IAAID,SAAS,CAACzB,MAAM,EAAEE,IAAI,EAAEa,OAAO,EAAEC,MAAM,CAAC;AAErE;AACA,OAAO,MAAMc,MAAM,gBAAGnF,IAAI,CAGxB,CAAC,EAAE,CAAC6C,IAAI,EAAEF,IAAI,KAAK,IAAIhB,UAAU,CAAC9B,KAAK,CAACuF,SAAS,CAACvC,IAAI,CAAChB,MAAM,EAAEc,IAAI,CAACd,MAAM,CAAQ,EAAEgB,IAAI,CAACf,MAAM,CAAC,CAAC;AAEnG,MAAMuD,mBAAmB,GAAI9B,IAAY,IAAMA,IAAI,CAAC+B,QAAQ,CAAC,GAAG,CAAC,GAAG/B,IAAI,CAACsB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAGtB,IAAK;AAE7F;AACA,OAAO,MAAMgC,SAAS,gBAAGvF,IAAI,CAI3B,CAAC,EACD,CAAC6C,IAAI,EAAEwB,MAAM,KAAI;EACfA,MAAM,GAAGgB,mBAAmB,CAAChB,MAAM,CAAC;EACpC,OAAO,IAAI1C,UAAU,CACnB9B,KAAK,CAACuB,GAAG,CAACyB,IAAI,CAAChB,MAAM,EAAGsB,KAAK,IAC3B,IAAI2B,SAAS,CACX3B,KAAK,CAACE,MAAM,EACZF,KAAK,CAACI,IAAI,KAAK,GAAG,GAAGc,MAAM,GAAGA,MAAM,GAAGlB,KAAK,CAACI,IAAI,EACjDJ,KAAK,CAACiB,OAAO,EACblE,MAAM,CAACsF,MAAM,CACXtF,MAAM,CAACkB,GAAG,CAAC+B,KAAK,CAACkB,MAAM,EAAGhD,CAAC,IAAKgD,MAAM,GAAGhD,CAAC,CAAC,EAC3C,MAAMnB,MAAM,CAACuF,IAAI,CAACpB,MAAM,CAAC,CAC1B,CACF,CAAC,EACJxE,KAAK,CAACuB,GAAG,CAACyB,IAAI,CAACf,MAAM,EAAE,CAAC,CAACyB,IAAI,EAAEI,GAAG,CAAC,KAAK,CAACJ,IAAI,KAAK,GAAG,GAAGc,MAAM,GAAGA,MAAM,GAAGd,IAAI,EAAEI,GAAG,CAAC,CAAC,CACtF;AACH,CAAC,CACF;AAED;AACA,OAAO,MAAM+B,KAAK,gBAAG1F,IAAI,CAWvB,CAAC,EACD,CAAC6C,IAAI,EAAEU,IAAI,EAAEZ,IAAI,KAAKwC,MAAM,CAACtC,IAAI,EAAE0C,SAAS,CAAC5C,IAAI,EAAEY,IAAI,CAAC,CAAC,CAC1D;AAED;AACA,OAAO,MAAMoC,QAAQ,gBAAG3F,IAAI,CAa1B,CAAC,EACD,CAAC6C,IAAI,EAAEU,IAAI,EAAEZ,IAAI,KACf,IAAIhB,UAAU,CAAWkB,IAAI,CAAChB,MAAM,EAAEhC,KAAK,CAAC+F,MAAM,CAAC/C,IAAI,CAACf,MAAM,EAAE,CAACuD,mBAAmB,CAAC9B,IAAI,CAAC,EAAEZ,IAAI,CAAC,CAAC,CAAC,CACtG;AAED;AACA,OAAO,MAAMQ,KAAK,GAAIE,MAA2B,IAa/CrD,IAAI,CAYF,CAAC,EAAE,CAAC6C,IAAI,EAAEU,IAAI,EAAEa,OAAO,KACvB,IAAIzC,UAAU,CACZ9B,KAAK,CAAC+F,MAAM,CAAC/C,IAAI,CAAChB,MAAM,EAAE,IAAIiD,SAAS,CAACzB,MAAM,EAAEE,IAAI,EAAEa,OAAO,CAAC,CAAC,EAC/DvB,IAAI,CAACf,MAAM,CACZ,CAAC;AAEN;AACA,OAAO,MAAMwB,GAAG,gBAAGH,KAAK,CAAC,GAAG,CAAC;AAE7B;AACA,OAAO,MAAM0C,GAAG,gBAAG1C,KAAK,CAAC,KAAK,CAAC;AAE/B;AACA,OAAO,MAAM2C,IAAI,gBAAG3C,KAAK,CAAC,MAAM,CAAC;AAEjC;AACA,OAAO,MAAM4C,GAAG,gBAAG5C,KAAK,CAAC,KAAK,CAAC;AAE/B;AACA,OAAO,MAAM6C,KAAK,gBAAG7C,KAAK,CAAC,OAAO,CAAC;AAEnC;AACA,OAAO,MAAM8C,GAAG,gBAAG9C,KAAK,CAAC,QAAQ,CAAC;AAElC;AACA,OAAO,MAAM+C,IAAI,gBAAG/C,KAAK,CAAC,MAAM,CAAC;AAEjC;AACA,OAAO,MAAMgD,OAAO,gBAAGhD,KAAK,CAAC,SAAS,CAAC;AAEvC;AACA,OAAO,MAAMiD,GAAG,gBAAGpG,IAAI,CAQrB,CAAC,EAAE,CAAC6C,IAAI,EAAEwD,CAAC,KACX,IAAI1E,UAAU,CACZ9B,KAAK,CAACuB,GAAG,CACPyB,IAAI,CAAChB,MAAM,EACVsB,KAAK,IAAK,IAAI2B,SAAS,CAAC3B,KAAK,CAACE,MAAM,EAAEF,KAAK,CAACI,IAAI,EAAE8C,CAAC,CAAClD,KAAK,CAACiB,OAAO,CAAQ,EAAEjB,KAAK,CAACkB,MAAM,CAAC,CAC1F,EACDxE,KAAK,CAACuB,GAAG,CACPyB,IAAI,CAACf,MAAM,EACX,CAAC,CAACyB,IAAI,EAAEI,GAAG,CAAC,KAAK,CAACJ,IAAI,EAAE8C,CAAC,CAAC1C,GAAU,CAAC,CAAC,CACvC,CACF,CAAC;AAEJ;AACA,OAAO,MAAM2C,QAAQ,gBAAGtG,IAAI,CAQ1B,CAAC,EAAE,CAAC6C,IAAI,EAAEwD,CAAC,KAAKD,GAAG,CAACvD,IAAI,EAAEzC,MAAM,CAACkG,QAAQ,CAACD,CAAC,CAAC,CAAC,CAAC;AAEhD;AACA,OAAO,MAAME,aAAa,gBAAGvG,IAAI,CAQ/B,CAAC,EAAE,CAAC6C,IAAI,EAAEwD,CAAC,KAAKD,GAAG,CAACvD,IAAI,EAAEzC,MAAM,CAACmG,aAAa,CAACF,CAAC,CAAC,CAAC,CAAC;AAErD;AACA,OAAO,MAAMG,QAAQ,gBAAGxG,IAAI,CAU1B,CAAC,EAAE,CAAC6C,IAAI,EAAE4D,CAAC,EAAEJ,CAAC,KAAKD,GAAG,CAACvD,IAAI,EAAEzC,MAAM,CAACoG,QAAQ,CAACC,CAAC,EAAEJ,CAAC,CAAC,CAAC,CAAC;AAEtD;AACA,OAAO,MAAMK,SAAS,gBAuClB1G,IAAI,CAAC,CAAC,EAAE,CAAC6C,IAA6B,EAAE8D,KAAS,KAAKP,GAAG,CAACvD,IAAI,EAAEzC,MAAM,CAACsG,SAAS,CAACC,KAAK,CAAC,CAAC,CAAC;AAE7F,OAAO,MAAM7C,cAAc,gBAAG9D,IAAI,CAUhC,CAAC,EAAE,CACH6C,IAAyB,EACzB+D,GAAM,EACNC,OAA+B,KAE/BT,GAAG,CAACvD,IAAI,EAAEzC,MAAM,CAAC0D,cAAc,CAAC8C,GAAG,EAAEC,OAAO,CAAC,CAAC,CAAC;AAEjD;AACA,OAAO,MAAMC,oBAAoB,gBAAG9G,IAAI,CAkBtC,CAAC,EAAE,CACH6C,IAAyB,EACzB+D,GAAM,EACNG,MAAqD,KAClDX,GAAG,CAACvD,IAAI,EAAEzC,MAAM,CAAC0G,oBAAoB,CAACF,GAAG,EAAEG,MAAM,CAAC,CAAC,CAAC"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { dual } from "@effect/data/Function";
|
|
2
2
|
import { pipeArguments } from "@effect/data/Pipeable";
|
|
3
3
|
import * as Effect from "@effect/io/Effect";
|
|
4
|
-
import * as FileSystem from "@effect/platform/FileSystem";
|
|
5
|
-
import * as Etag from "@effect/platform/Http/Etag";
|
|
6
4
|
import * as Headers from "@effect/platform/Http/Headers";
|
|
5
|
+
import * as Platform from "@effect/platform/Http/Platform";
|
|
7
6
|
import * as UrlParams from "@effect/platform/Http/UrlParams";
|
|
8
7
|
import * as internalBody from "@effect/platform/internal/http/body";
|
|
9
|
-
import * as Mime from "mime";
|
|
10
8
|
/** @internal */
|
|
11
9
|
export const TypeId = /*#__PURE__*/Symbol.for("@effect/platform/Http/ServerResponse");
|
|
12
10
|
class ServerResponseImpl {
|
|
@@ -52,37 +50,9 @@ export const schemaJson = schema => {
|
|
|
52
50
|
return (body, options) => Effect.map(encode(body), body => new ServerResponseImpl(options?.status ?? 200, options?.statusText, options?.headers ?? Headers.empty, body));
|
|
53
51
|
};
|
|
54
52
|
/** @internal */
|
|
55
|
-
export const file = (path, options) => Effect.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
info
|
|
59
|
-
}) => {
|
|
60
|
-
const headers = {
|
|
61
|
-
...(options?.headers ?? {}),
|
|
62
|
-
etag: Etag.toString(etag)
|
|
63
|
-
};
|
|
64
|
-
if (info.mtime._tag === "Some") {
|
|
65
|
-
headers["last-modified"] = info.mtime.value.toUTCString();
|
|
66
|
-
}
|
|
67
|
-
return new ServerResponseImpl(options?.status ?? 200, options?.statusText, headers, body);
|
|
68
|
-
})(Effect.bind("body", ({
|
|
69
|
-
info
|
|
70
|
-
}) => internalBody.fileInfo(path, info, {
|
|
71
|
-
contentType: Mime.getType(path) ?? undefined,
|
|
72
|
-
...options
|
|
73
|
-
}))(Effect.bind("etag", ({
|
|
74
|
-
info
|
|
75
|
-
}) => Effect.flatMap(Etag.Generator, generator => generator.fromFileInfo(info)))(Effect.bindTo(Effect.flatMap(FileSystem.FileSystem, fs => fs.stat(path)), "info"))));
|
|
76
|
-
/** @internal */
|
|
77
|
-
export const fileWeb = (file, options) => Effect.flatMap(Etag.Generator, generator => Effect.map(generator.fromFileWeb(file), etag => {
|
|
78
|
-
const body = internalBody.fileWeb(file);
|
|
79
|
-
const headers = {
|
|
80
|
-
...(options?.headers ?? {}),
|
|
81
|
-
etag: Etag.toString(etag),
|
|
82
|
-
"last-modified": new Date(file.lastModified).toUTCString()
|
|
83
|
-
};
|
|
84
|
-
return new ServerResponseImpl(options?.status ?? 200, options?.statusText, headers, body);
|
|
85
|
-
}));
|
|
53
|
+
export const file = (path, options) => Effect.flatMap(Platform.Platform, platform => platform.fileResponse(path, options));
|
|
54
|
+
/** @internal */
|
|
55
|
+
export const fileWeb = (file, options) => Effect.flatMap(Platform.Platform, platform => platform.fileWebResponse(file, options));
|
|
86
56
|
/** @internal */
|
|
87
57
|
export const urlParams = (body, options) => new ServerResponseImpl(options?.status ?? 200, options?.statusText, options?.headers ?? Headers.empty, internalBody.text(UrlParams.toString(UrlParams.fromInput(body)), "application/x-www-form-urlencoded"));
|
|
88
58
|
/** @internal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverResponse.mjs","names":["dual","pipeArguments","Effect","
|
|
1
|
+
{"version":3,"file":"serverResponse.mjs","names":["dual","pipeArguments","Effect","Headers","Platform","UrlParams","internalBody","TypeId","Symbol","for","ServerResponseImpl","constructor","status","statusText","headers","body","contentType","contentLength","newHeaders","toString","pipe","arguments","isServerResponse","u","empty","options","uint8Array","getContentType","text","json","map","unsafeJson","schemaJson","schema","encode","jsonSchema","file","path","flatMap","platform","fileResponse","fileWeb","fileWebResponse","urlParams","fromInput","raw","formData","stream","setHeader","self","key","value","set","setHeaders","input","setAll","setStatus","args","setBody","_tag","remove"],"sources":["../../../src/internal/http/serverResponse.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,IAAI,QAAQ,uBAAuB;AAC5C,SAASC,aAAa,QAAQ,uBAAuB;AACrD,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAI3C,OAAO,KAAKC,OAAO,MAAM,+BAA+B;AACxD,OAAO,KAAKC,QAAQ,MAAM,gCAAgC;AAE1D,OAAO,KAAKC,SAAS,MAAM,iCAAiC;AAC5D,OAAO,KAAKC,YAAY,MAAM,qCAAqC;AAInE;AACA,OAAO,MAAMC,MAAM,gBAA0BC,MAAM,CAACC,GAAG,CAAC,sCAAsC,CAA0B;AAExH,MAAMC,kBAAkB;EAGtBC,YACWC,MAAc,EACdC,UAA8B,EACvCC,OAAwB,EACfC,IAAe;IAHf,KAAAH,MAAM,GAANA,MAAM;IACN,KAAAC,UAAU,GAAVA,UAAU;IAEV,KAAAE,IAAI,GAAJA,IAAI;IAEb,IAAI,CAACR,MAAM,CAAC,GAAGA,MAAM;IACrB,IAAIQ,IAAI,CAACC,WAAW,IAAID,IAAI,CAACE,aAAa,EAAE;MAC1C,MAAMC,UAAU,GAAG;QAAE,GAAGJ;MAAO,CAAE;MACjC,IAAIC,IAAI,CAACC,WAAW,EAAE;QACpBE,UAAU,CAAC,cAAc,CAAC,GAAGH,IAAI,CAACC,WAAW;;MAE/C,IAAID,IAAI,CAACE,aAAa,EAAE;QACtBC,UAAU,CAAC,gBAAgB,CAAC,GAAGH,IAAI,CAACE,aAAa,CAACE,QAAQ,EAAE;;MAE9D,IAAI,CAACL,OAAO,GAAGI,UAAU;KAC1B,MAAM;MACL,IAAI,CAACJ,OAAO,GAAGA,OAAO;;EAE1B;EACAM,IAAIA,CAAA;IACF,OAAOnB,aAAa,CAAC,IAAI,EAAEoB,SAAS,CAAC;EACvC;;AAGF;AACA,OAAO,MAAMC,gBAAgB,GAAIC,CAAU,IACzC,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,IAAIhB,MAAM,IAAIgB,CAAC;AAEpD;AACA,OAAO,MAAMC,KAAK,GAAIC,OAA4C,IAChE,IAAIf,kBAAkB,CACpBe,OAAO,EAAEb,MAAM,IAAI,GAAG,EACtBa,OAAO,EAAEZ,UAAU,EACnBY,OAAO,EAAEX,OAAO,IAAIX,OAAO,CAACqB,KAAK,EACjClB,YAAY,CAACkB,KAAK,CACnB;AAEH;AACA,OAAO,MAAME,UAAU,GAAGA,CACxBX,IAAgB,EAChBU,OAAgD,KAEhD,IAAIf,kBAAkB,CACpBe,OAAO,EAAEb,MAAM,IAAI,GAAG,EACtBa,OAAO,EAAEZ,UAAU,EACnBY,OAAO,EAAEX,OAAO,IAAIX,OAAO,CAACqB,KAAK,EACjClB,YAAY,CAACoB,UAAU,CAACX,IAAI,EAAEY,cAAc,CAACF,OAAO,CAAC,CAAC,CACvD;AAEH;AACA,OAAO,MAAMG,IAAI,GAAGA,CAACb,IAAY,EAAEU,OAAgD,KACjF,IAAIf,kBAAkB,CACpBe,OAAO,EAAEb,MAAM,IAAI,GAAG,EACtBa,OAAO,EAAEZ,UAAU,EACnBY,OAAO,EAAEX,OAAO,IAAIX,OAAO,CAACqB,KAAK,EACjClB,YAAY,CAACsB,IAAI,CAACb,IAAI,EAAEY,cAAc,CAACF,OAAO,CAAC,CAAC,CACjD;AAEH;AACA,OAAO,MAAMI,IAAI,GAAGA,CAClBd,IAAa,EACbU,OAA4C,KAE5CvB,MAAM,CAAC4B,GAAG,CAACxB,YAAY,CAACuB,IAAI,CAACd,IAAI,CAAC,EAAGA,IAAI,IACvC,IAAIL,kBAAkB,CACpBe,OAAO,EAAEb,MAAM,IAAI,GAAG,EACtBa,OAAO,EAAEZ,UAAU,EACnBY,OAAO,EAAEX,OAAO,IAAIX,OAAO,CAACqB,KAAK,EACjCT,IAAI,CACL,CAAC;AAEN;AACA,OAAO,MAAMgB,UAAU,GAAGA,CACxBhB,IAAa,EACbU,OAA4C,KAE5C,IAAIf,kBAAkB,CACpBe,OAAO,EAAEb,MAAM,IAAI,GAAG,EACtBa,OAAO,EAAEZ,UAAU,EACnBY,OAAO,EAAEX,OAAO,IAAIX,OAAO,CAACqB,KAAK,EACjClB,YAAY,CAACyB,UAAU,CAAChB,IAAI,CAAC,CAC9B;AAEH;AACA,OAAO,MAAMiB,UAAU,GACrBC,MAA2B,IACzB;EACF,MAAMC,MAAM,GAAG5B,YAAY,CAAC6B,UAAU,CAACF,MAAM,CAAC;EAC9C,OAAO,CACLlB,IAAO,EACPU,OAA4C,KAE5CvB,MAAM,CAAC4B,GAAG,CAACI,MAAM,CAACnB,IAAI,CAAC,EAAGA,IAAI,IAC5B,IAAIL,kBAAkB,CACpBe,OAAO,EAAEb,MAAM,IAAI,GAAG,EACtBa,OAAO,EAAEZ,UAAU,EACnBY,OAAO,EAAEX,OAAO,IAAIX,OAAO,CAACqB,KAAK,EACjCT,IAAI,CACL,CAAC;AACR,CAAC;AAED;AACA,OAAO,MAAMqB,IAAI,GAAGA,CAClBC,IAAY,EACZZ,OAA2D,KAE3DvB,MAAM,CAACoC,OAAO,CACZlC,QAAQ,CAACA,QAAQ,EAChBmC,QAAQ,IAAKA,QAAQ,CAACC,YAAY,CAACH,IAAI,EAAEZ,OAAO,CAAC,CACnD;AAEH;AACA,OAAO,MAAMgB,OAAO,GAAGA,CACrBL,IAAwB,EACxBX,OAAuE,KAEvEvB,MAAM,CAACoC,OAAO,CACZlC,QAAQ,CAACA,QAAQ,EAChBmC,QAAQ,IAAKA,QAAQ,CAACG,eAAe,CAACN,IAAI,EAAEX,OAAO,CAAC,CACtD;AAEH;AACA,OAAO,MAAMkB,SAAS,GAAGA,CACvB5B,IAAqB,EACrBU,OAA4C,KAE5C,IAAIf,kBAAkB,CACpBe,OAAO,EAAEb,MAAM,IAAI,GAAG,EACtBa,OAAO,EAAEZ,UAAU,EACnBY,OAAO,EAAEX,OAAO,IAAIX,OAAO,CAACqB,KAAK,EACjClB,YAAY,CAACsB,IAAI,CAACvB,SAAS,CAACc,QAAQ,CAACd,SAAS,CAACuC,SAAS,CAAC7B,IAAI,CAAC,CAAC,EAAE,mCAAmC,CAAC,CACtG;AAEH;AACA,OAAO,MAAM8B,GAAG,GAAGA,CAAC9B,IAAa,EAAEU,OAAgC,KACjE,IAAIf,kBAAkB,CACpBe,OAAO,EAAEb,MAAM,IAAI,GAAG,EACtBa,OAAO,EAAEZ,UAAU,EACnBY,OAAO,EAAEX,OAAO,IAAIX,OAAO,CAACqB,KAAK,EACjClB,YAAY,CAACuC,GAAG,CAAC9B,IAAI,CAAC,CACvB;AAEH;AACA,OAAO,MAAM+B,QAAQ,GAAGA,CAAC/B,IAAc,EAAEU,OAA4C,KACnF,IAAIf,kBAAkB,CACpBe,OAAO,EAAEb,MAAM,IAAI,GAAG,EACtBa,OAAO,EAAEZ,UAAU,EACnBY,OAAO,EAAEX,OAAO,IAAIX,OAAO,CAACqB,KAAK,EACjClB,YAAY,CAACwC,QAAQ,CAAC/B,IAAI,CAAC,CAC5B;AAEH;AACA,OAAO,MAAMgC,MAAM,GAAGA,CACpBhC,IAA+C,EAC/CU,OAAgC,KAEhC,IAAIf,kBAAkB,CACpBe,OAAO,EAAEb,MAAM,IAAI,GAAG,EACtBa,OAAO,EAAEZ,UAAU,EACnBY,OAAO,EAAEX,OAAO,IAAIX,OAAO,CAACqB,KAAK,EACjClB,YAAY,CAACyC,MAAM,CAAChC,IAAI,EAAEY,cAAc,CAACF,OAAO,CAAC,EAAEA,OAAO,EAAER,aAAa,CAAC,CAC3E;AAEH;AACA,OAAO,MAAMU,cAAc,GAAIF,OAAgC,IAAwB;EACrF,IAAIA,OAAO,EAAET,WAAW,EAAE;IACxB,OAAOS,OAAO,CAACT,WAAW;GAC3B,MAAM,IAAIS,OAAO,EAAEX,OAAO,EAAE;IAC3B,OAAOW,OAAO,CAACX,OAAO,CAAC,cAAc,CAAC;GACvC,MAAM;IACL;;AAEJ,CAAC;AAED;AACA,OAAO,MAAMkC,SAAS,gBAAGhD,IAAI,CAG3B,CAAC,EAAE,CAACiD,IAAI,EAAEC,GAAG,EAAEC,KAAK,KACpB,IAAIzC,kBAAkB,CACpBuC,IAAI,CAACrC,MAAM,EACXqC,IAAI,CAACpC,UAAU,EACfV,OAAO,CAACiD,GAAG,CAACH,IAAI,CAACnC,OAAO,EAAEoC,GAAG,EAAEC,KAAK,CAAC,EACrCF,IAAI,CAAClC,IAAI,CACV,CAAC;AAEJ;AACA,OAAO,MAAMsC,UAAU,gBAAGrD,IAAI,CAG5B,CAAC,EAAE,CAACiD,IAAI,EAAEK,KAAK,KACf,IAAI5C,kBAAkB,CACpBuC,IAAI,CAACrC,MAAM,EACXqC,IAAI,CAACpC,UAAU,EACfV,OAAO,CAACoD,MAAM,CAACN,IAAI,CAACnC,OAAO,EAAEwC,KAAK,CAAC,EACnCL,IAAI,CAAClC,IAAI,CACV,CAAC;AAEJ;AACA,OAAO,MAAMyC,SAAS,gBAAGxD,IAAI,CAG1ByD,IAAI,IAAKnC,gBAAgB,CAACmC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAACR,IAAI,EAAErC,MAAM,EAAEC,UAAU,KAC9D,IAAIH,kBAAkB,CACpBE,MAAM,EACNC,UAAU,EACVoC,IAAI,CAACnC,OAAO,EACZmC,IAAI,CAAClC,IAAI,CACV,CAAC;AAEJ;AACA,OAAO,MAAM2C,OAAO,gBAAG1D,IAAI,CAGzB,CAAC,EAAE,CAACiD,IAAI,EAAElC,IAAI,KAAI;EAClB,IAAID,OAAO,GAAGmC,IAAI,CAACnC,OAAO;EAC1B,IAAIC,IAAI,CAAC4C,IAAI,KAAK,OAAO,EAAE;IACzB7C,OAAO,GAAGX,OAAO,CAACyD,MAAM,CAACzD,OAAO,CAACyD,MAAM,CAAC9C,OAAO,EAAE,cAAc,CAAC,EAAE,gBAAgB,CAAC;;EAErF,OAAO,IAAIJ,kBAAkB,CAC3BuC,IAAI,CAACrC,MAAM,EACXqC,IAAI,CAACpC,UAAU,EACfC,OAAO,EACPC,IAAI,CACL;AACH,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/platform",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.1",
|
|
4
4
|
"description": "Unified interfaces for common platform-specific services",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
"author": "Effect contributors",
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"find-my-way": "^7.6.2",
|
|
29
|
-
"mime": "^3.0.0",
|
|
30
29
|
"path-browserify": "^1.0.1"
|
|
31
30
|
},
|
|
32
31
|
"peerDependencies": {
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Context from "@effect/data/Context"
|
|
5
|
+
import type * as Effect from "@effect/io/Effect"
|
|
6
|
+
import type * as Error from "@effect/platform/Error"
|
|
7
|
+
import type * as FileSystem from "@effect/platform/FileSystem"
|
|
8
|
+
import type * as Body from "@effect/platform/Http/Body"
|
|
9
|
+
import type * as Etag from "@effect/platform/Http/Etag"
|
|
10
|
+
import type * as ServerResponse from "@effect/platform/Http/ServerResponse"
|
|
11
|
+
import * as internal from "@effect/platform/internal/http/platform"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @since 1.0.0
|
|
15
|
+
* @category type ids
|
|
16
|
+
*/
|
|
17
|
+
export const TypeId: unique symbol = internal.TypeId
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @since 1.0.0
|
|
21
|
+
* @category type ids
|
|
22
|
+
*/
|
|
23
|
+
export type TypeId = typeof TypeId
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @since 1.0.0
|
|
27
|
+
* @category tags
|
|
28
|
+
*/
|
|
29
|
+
export const Platform: Context.Tag<Platform, Platform> = internal.tag
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @since 1.0.0
|
|
33
|
+
* @category models
|
|
34
|
+
*/
|
|
35
|
+
export interface Platform {
|
|
36
|
+
readonly [TypeId]: TypeId
|
|
37
|
+
readonly fileResponse: (
|
|
38
|
+
path: string,
|
|
39
|
+
options?: ServerResponse.Options.WithContent & FileSystem.StreamOptions
|
|
40
|
+
) => Effect.Effect<never, Error.PlatformError, ServerResponse.ServerResponse>
|
|
41
|
+
readonly fileWebResponse: (
|
|
42
|
+
file: Body.Body.FileLike,
|
|
43
|
+
options?: ServerResponse.Options.WithContent & FileSystem.StreamOptions
|
|
44
|
+
) => Effect.Effect<never, never, ServerResponse.ServerResponse>
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @since 1.0.0
|
|
49
|
+
* @category constructors
|
|
50
|
+
*/
|
|
51
|
+
export const make: (
|
|
52
|
+
impl: {
|
|
53
|
+
readonly fileResponse: (
|
|
54
|
+
path: string,
|
|
55
|
+
status: number,
|
|
56
|
+
statusText: string | undefined,
|
|
57
|
+
headers: Record<string, string>,
|
|
58
|
+
start: number,
|
|
59
|
+
end: number | undefined,
|
|
60
|
+
contentLength: number
|
|
61
|
+
) => ServerResponse.ServerResponse
|
|
62
|
+
readonly fileWebResponse: (
|
|
63
|
+
file: Body.Body.FileLike,
|
|
64
|
+
status: number,
|
|
65
|
+
statusText: string | undefined,
|
|
66
|
+
headers: Record<string, string>,
|
|
67
|
+
options?: FileSystem.StreamOptions | undefined
|
|
68
|
+
) => ServerResponse.ServerResponse
|
|
69
|
+
}
|
|
70
|
+
) => Effect.Effect<FileSystem.FileSystem | Etag.Generator, never, Platform> = internal.make
|
|
@@ -6,8 +6,8 @@ import type * as Effect from "@effect/io/Effect"
|
|
|
6
6
|
import type * as PlatformError from "@effect/platform/Error"
|
|
7
7
|
import type * as FileSystem from "@effect/platform/FileSystem"
|
|
8
8
|
import type * as Body from "@effect/platform/Http/Body"
|
|
9
|
-
import type * as Etag from "@effect/platform/Http/Etag"
|
|
10
9
|
import type * as Headers from "@effect/platform/Http/Headers"
|
|
10
|
+
import type * as Platform from "@effect/platform/Http/Platform"
|
|
11
11
|
import type * as UrlParams from "@effect/platform/Http/UrlParams"
|
|
12
12
|
import * as internal from "@effect/platform/internal/http/serverResponse"
|
|
13
13
|
import type * as Schema from "@effect/schema/Schema"
|
|
@@ -145,7 +145,7 @@ export const stream: (body: Stream.Stream<never, unknown, Uint8Array>, options?:
|
|
|
145
145
|
export const file: (
|
|
146
146
|
path: string,
|
|
147
147
|
options?: Options & FileSystem.StreamOptions
|
|
148
|
-
) => Effect.Effect<
|
|
148
|
+
) => Effect.Effect<Platform.Platform, PlatformError.PlatformError, ServerResponse> = internal.file
|
|
149
149
|
|
|
150
150
|
/**
|
|
151
151
|
* @since 1.0.0
|
|
@@ -153,8 +153,8 @@ export const file: (
|
|
|
153
153
|
*/
|
|
154
154
|
export const fileWeb: (
|
|
155
155
|
file: Body.Body.FileLike,
|
|
156
|
-
options?: Options.WithContent
|
|
157
|
-
) => Effect.Effect<
|
|
156
|
+
options?: Options.WithContent & FileSystem.StreamOptions
|
|
157
|
+
) => Effect.Effect<Platform.Platform, never, ServerResponse> = internal.fileWeb
|
|
158
158
|
|
|
159
159
|
/**
|
|
160
160
|
* @since 1.0.0
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import * as Context from "@effect/data/Context"
|
|
2
|
+
import { pipe } from "@effect/data/Function"
|
|
3
|
+
import * as Effect from "@effect/io/Effect"
|
|
4
|
+
import * as FileSystem from "@effect/platform/FileSystem"
|
|
5
|
+
import type * as Body from "@effect/platform/Http/Body"
|
|
6
|
+
import * as Etag from "@effect/platform/Http/Etag"
|
|
7
|
+
import type * as Platform from "@effect/platform/Http/Platform"
|
|
8
|
+
import type * as ServerResponse from "@effect/platform/Http/ServerResponse"
|
|
9
|
+
|
|
10
|
+
/** @internal */
|
|
11
|
+
export const TypeId: Platform.TypeId = Symbol.for("@effect/platform/Http/Platform") as Platform.TypeId
|
|
12
|
+
|
|
13
|
+
/** @internal */
|
|
14
|
+
export const tag = Context.Tag<Platform.Platform>(TypeId)
|
|
15
|
+
|
|
16
|
+
/** @internal */
|
|
17
|
+
export const make = (impl: {
|
|
18
|
+
readonly fileResponse: (
|
|
19
|
+
path: string,
|
|
20
|
+
status: number,
|
|
21
|
+
statusText: string | undefined,
|
|
22
|
+
headers: Record<string, string>,
|
|
23
|
+
start: number,
|
|
24
|
+
end: number | undefined,
|
|
25
|
+
contentLength: number
|
|
26
|
+
) => ServerResponse.ServerResponse
|
|
27
|
+
readonly fileWebResponse: (
|
|
28
|
+
file: Body.Body.FileLike,
|
|
29
|
+
status: number,
|
|
30
|
+
statusText: string | undefined,
|
|
31
|
+
headers: Record<string, string>,
|
|
32
|
+
options?: FileSystem.StreamOptions
|
|
33
|
+
) => ServerResponse.ServerResponse
|
|
34
|
+
}): Effect.Effect<FileSystem.FileSystem | Etag.Generator, never, Platform.Platform> =>
|
|
35
|
+
Effect.gen(function*(_) {
|
|
36
|
+
const fs = yield* _(FileSystem.FileSystem)
|
|
37
|
+
const etagGen = yield* _(Etag.Generator)
|
|
38
|
+
|
|
39
|
+
return tag.of({
|
|
40
|
+
[TypeId]: TypeId,
|
|
41
|
+
fileResponse(path, options) {
|
|
42
|
+
return pipe(
|
|
43
|
+
Effect.bindTo(fs.stat(path), "info"),
|
|
44
|
+
Effect.bind("etag", ({ info }) => etagGen.fromFileInfo(info)),
|
|
45
|
+
Effect.map(({ etag, info }) => {
|
|
46
|
+
const start = Number(options?.offset ?? 0)
|
|
47
|
+
const end = options?.bytesToRead !== undefined ? start + Number(options.bytesToRead) : undefined
|
|
48
|
+
const headers: Record<string, string> = {
|
|
49
|
+
...(options?.headers ?? {}),
|
|
50
|
+
etag: Etag.toString(etag)
|
|
51
|
+
}
|
|
52
|
+
if (info.mtime._tag === "Some") {
|
|
53
|
+
headers["last-modified"] = info.mtime.value.toUTCString()
|
|
54
|
+
}
|
|
55
|
+
const contentLength = end !== undefined ? end - start : Number(info.size) - start
|
|
56
|
+
return impl.fileResponse(
|
|
57
|
+
path,
|
|
58
|
+
options?.status ?? 200,
|
|
59
|
+
options?.statusText,
|
|
60
|
+
headers,
|
|
61
|
+
start,
|
|
62
|
+
end,
|
|
63
|
+
contentLength
|
|
64
|
+
)
|
|
65
|
+
})
|
|
66
|
+
)
|
|
67
|
+
},
|
|
68
|
+
fileWebResponse(file, options) {
|
|
69
|
+
return Effect.map(etagGen.fromFileWeb(file), (etag) => {
|
|
70
|
+
const headers: Record<string, string> = {
|
|
71
|
+
...(options?.headers ?? {}),
|
|
72
|
+
etag: Etag.toString(etag),
|
|
73
|
+
"last-modified": new Date(file.lastModified).toUTCString()
|
|
74
|
+
}
|
|
75
|
+
return impl.fileWebResponse(
|
|
76
|
+
file,
|
|
77
|
+
options?.status ?? 200,
|
|
78
|
+
options?.statusText,
|
|
79
|
+
headers,
|
|
80
|
+
options
|
|
81
|
+
)
|
|
82
|
+
})
|
|
83
|
+
}
|
|
84
|
+
})
|
|
85
|
+
})
|
|
@@ -125,7 +125,10 @@ const toHttpApp = <R, E>(
|
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
|
|
128
|
+
let result = router.find(request.method as HTTPMethod, request.url)
|
|
129
|
+
if (result === null && request.method === "HEAD") {
|
|
130
|
+
result = router.find("GET", request.url)
|
|
131
|
+
}
|
|
129
132
|
if (result === null) {
|
|
130
133
|
return Effect.fail(Error.RouteNotFound({ request }))
|
|
131
134
|
}
|
|
@@ -139,7 +142,7 @@ const toHttpApp = <R, E>(
|
|
|
139
142
|
Context.add(
|
|
140
143
|
Context.add(context, ServerRequest.ServerRequest, request),
|
|
141
144
|
RouteContext,
|
|
142
|
-
new RouteContextImpl(result
|
|
145
|
+
new RouteContextImpl(result!.params, result!.searchParams)
|
|
143
146
|
) as Context.Context<R>
|
|
144
147
|
)
|
|
145
148
|
}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import { dual
|
|
1
|
+
import { dual } from "@effect/data/Function"
|
|
2
2
|
import { pipeArguments } from "@effect/data/Pipeable"
|
|
3
3
|
import * as Effect from "@effect/io/Effect"
|
|
4
4
|
import type * as PlatformError from "@effect/platform/Error"
|
|
5
|
-
import * as FileSystem from "@effect/platform/FileSystem"
|
|
5
|
+
import type * as FileSystem from "@effect/platform/FileSystem"
|
|
6
6
|
import type * as Body from "@effect/platform/Http/Body"
|
|
7
|
-
import * as Etag from "@effect/platform/Http/Etag"
|
|
8
7
|
import * as Headers from "@effect/platform/Http/Headers"
|
|
8
|
+
import * as Platform from "@effect/platform/Http/Platform"
|
|
9
9
|
import type * as ServerResponse from "@effect/platform/Http/ServerResponse"
|
|
10
10
|
import * as UrlParams from "@effect/platform/Http/UrlParams"
|
|
11
11
|
import * as internalBody from "@effect/platform/internal/http/body"
|
|
12
12
|
import type * as Schema from "@effect/schema/Schema"
|
|
13
13
|
import type * as Stream from "@effect/stream/Stream"
|
|
14
|
-
import * as Mime from "mime"
|
|
15
14
|
|
|
16
15
|
/** @internal */
|
|
17
16
|
export const TypeId: ServerResponse.TypeId = Symbol.for("@effect/platform/Http/ServerResponse") as ServerResponse.TypeId
|
|
@@ -125,60 +124,21 @@ export const schemaJson = <I, A>(
|
|
|
125
124
|
export const file = (
|
|
126
125
|
path: string,
|
|
127
126
|
options?: ServerResponse.Options & FileSystem.StreamOptions
|
|
128
|
-
): Effect.Effect<
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
> =>
|
|
133
|
-
pipe(
|
|
134
|
-
Effect.bindTo(Effect.flatMap(FileSystem.FileSystem, (fs) => fs.stat(path)), "info"),
|
|
135
|
-
Effect.bind("etag", ({ info }) =>
|
|
136
|
-
Effect.flatMap(
|
|
137
|
-
Etag.Generator,
|
|
138
|
-
(generator) => generator.fromFileInfo(info)
|
|
139
|
-
)),
|
|
140
|
-
Effect.bind("body", ({ info }) =>
|
|
141
|
-
internalBody.fileInfo(path, info, {
|
|
142
|
-
contentType: Mime.getType(path) ?? undefined,
|
|
143
|
-
...options
|
|
144
|
-
})),
|
|
145
|
-
Effect.map(({ body, etag, info }) => {
|
|
146
|
-
const headers: Record<string, string> = {
|
|
147
|
-
...(options?.headers ?? {}),
|
|
148
|
-
etag: Etag.toString(etag)
|
|
149
|
-
}
|
|
150
|
-
if (info.mtime._tag === "Some") {
|
|
151
|
-
headers["last-modified"] = info.mtime.value.toUTCString()
|
|
152
|
-
}
|
|
153
|
-
return new ServerResponseImpl(
|
|
154
|
-
options?.status ?? 200,
|
|
155
|
-
options?.statusText,
|
|
156
|
-
headers,
|
|
157
|
-
body
|
|
158
|
-
)
|
|
159
|
-
})
|
|
127
|
+
): Effect.Effect<Platform.Platform, PlatformError.PlatformError, ServerResponse.ServerResponse> =>
|
|
128
|
+
Effect.flatMap(
|
|
129
|
+
Platform.Platform,
|
|
130
|
+
(platform) => platform.fileResponse(path, options)
|
|
160
131
|
)
|
|
161
132
|
|
|
162
133
|
/** @internal */
|
|
163
134
|
export const fileWeb = (
|
|
164
135
|
file: Body.Body.FileLike,
|
|
165
|
-
options?: ServerResponse.Options.WithContent
|
|
166
|
-
): Effect.Effect<
|
|
167
|
-
Effect.flatMap(
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
...(options?.headers ?? {}),
|
|
172
|
-
etag: Etag.toString(etag),
|
|
173
|
-
"last-modified": new Date(file.lastModified).toUTCString()
|
|
174
|
-
}
|
|
175
|
-
return new ServerResponseImpl(
|
|
176
|
-
options?.status ?? 200,
|
|
177
|
-
options?.statusText,
|
|
178
|
-
headers,
|
|
179
|
-
body
|
|
180
|
-
)
|
|
181
|
-
}))
|
|
136
|
+
options?: ServerResponse.Options.WithContent & FileSystem.StreamOptions
|
|
137
|
+
): Effect.Effect<Platform.Platform, never, ServerResponse.ServerResponse> =>
|
|
138
|
+
Effect.flatMap(
|
|
139
|
+
Platform.Platform,
|
|
140
|
+
(platform) => platform.fileWebResponse(file, options)
|
|
141
|
+
)
|
|
182
142
|
|
|
183
143
|
/** @internal */
|
|
184
144
|
export const urlParams = (
|