imposters 0.1.0 → 0.2.2
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/bin/imposters +1 -45
- package/dist/cjs/cli/Commands.js +14 -6
- package/dist/cjs/cli/Commands.js.map +1 -1
- package/dist/cjs/index.js +3 -3
- package/dist/cjs/layers/MainLayer.js +2 -2
- package/dist/cjs/layers/MainLayer.js.map +1 -1
- package/dist/cjs/server/ImposterServer.js +2 -2
- package/dist/cjs/server/ImposterServer.js.map +1 -1
- package/dist/cjs/server/ServerFactory.js +69 -0
- package/dist/cjs/server/ServerFactory.js.map +1 -0
- package/dist/dts/cli/Commands.d.ts.map +1 -1
- package/dist/dts/index.d.ts +1 -1
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/server/ImposterServer.d.ts +2 -2
- package/dist/dts/server/ImposterServer.d.ts.map +1 -1
- package/dist/dts/server/{BunServer.d.ts → ServerFactory.d.ts} +2 -1
- package/dist/dts/server/ServerFactory.d.ts.map +1 -0
- package/dist/esm/cli/Commands.js +14 -6
- package/dist/esm/cli/Commands.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/layers/MainLayer.js +2 -2
- package/dist/esm/layers/MainLayer.js.map +1 -1
- package/dist/esm/schemas/common.js +8 -4
- package/dist/esm/schemas/common.js.map +1 -1
- package/dist/esm/server/ImposterServer.js +1 -1
- package/dist/esm/server/ImposterServer.js.map +1 -1
- package/dist/esm/server/ServerFactory.js +61 -0
- package/dist/esm/server/ServerFactory.js.map +1 -0
- package/package.json +9 -15
- package/server/ServerFactory/package.json +6 -0
- package/src/cli/Commands.ts +20 -6
- package/src/index.ts +3 -3
- package/src/layers/MainLayer.ts +2 -2
- package/src/server/ImposterServer.ts +1 -1
- package/src/server/ServerFactory.ts +76 -0
- package/dist/cjs/server/BunServer.js +0 -13
- package/dist/cjs/server/BunServer.js.map +0 -1
- package/dist/dts/server/BunServer.d.ts.map +0 -1
- package/dist/esm/server/BunServer.js +0 -6
- package/dist/esm/server/BunServer.js.map +0 -1
- package/server/BunServer/package.json +0 -6
- package/src/server/BunServer.ts +0 -19
- package/src/types/bun.d.ts +0 -6
package/bin/imposters
CHANGED
|
@@ -1,47 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
const path = require("path");
|
|
5
|
-
const { execFileSync } = require("child_process");
|
|
6
|
-
|
|
7
|
-
const platform = os.platform();
|
|
8
|
-
const arch = os.arch();
|
|
9
|
-
|
|
10
|
-
const PLATFORMS = {
|
|
11
|
-
"linux-x64": "@imposters/linux-x64",
|
|
12
|
-
"linux-arm64": "@imposters/linux-arm64",
|
|
13
|
-
"darwin-x64": "@imposters/darwin-x64",
|
|
14
|
-
"darwin-arm64": "@imposters/darwin-arm64",
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
const key = `${platform}-${arch}`;
|
|
18
|
-
const pkg = PLATFORMS[key];
|
|
19
|
-
|
|
20
|
-
if (!pkg) {
|
|
21
|
-
console.error(
|
|
22
|
-
`Unsupported platform: ${platform}-${arch}\n` +
|
|
23
|
-
`Imposters supports: ${Object.keys(PLATFORMS).join(", ")}`
|
|
24
|
-
);
|
|
25
|
-
process.exit(1);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
let binPath;
|
|
29
|
-
try {
|
|
30
|
-
binPath = require.resolve(`${pkg}/bin/imposters`);
|
|
31
|
-
} catch {
|
|
32
|
-
console.error(
|
|
33
|
-
`Could not find the Imposters binary for ${platform}-${arch}.\n` +
|
|
34
|
-
`The platform package "${pkg}" does not appear to be installed.\n\n` +
|
|
35
|
-
`Try reinstalling: npm install -g imposters`
|
|
36
|
-
);
|
|
37
|
-
process.exit(1);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
try {
|
|
41
|
-
execFileSync(binPath, process.argv.slice(2), { stdio: "inherit" });
|
|
42
|
-
} catch (e) {
|
|
43
|
-
if (e.status !== null) {
|
|
44
|
-
process.exit(e.status);
|
|
45
|
-
}
|
|
46
|
-
throw e;
|
|
47
|
-
}
|
|
3
|
+
require("../dist/cjs/Program.js");
|
package/dist/cjs/cli/Commands.js
CHANGED
|
@@ -7,29 +7,37 @@ exports.run = exports.main = void 0;
|
|
|
7
7
|
var _cli = require("@effect/cli");
|
|
8
8
|
var _platformNode = require("@effect/platform-node");
|
|
9
9
|
var _effect = require("effect");
|
|
10
|
+
var _nodeModule = require("node:module");
|
|
10
11
|
var _HandlerHttpClient = require("../client/HandlerHttpClient");
|
|
11
12
|
var _ImpostersClient = require("../client/ImpostersClient");
|
|
12
13
|
var _AdminServer = require("../server/AdminServer");
|
|
14
|
+
var _ServerFactory = require("../server/ServerFactory");
|
|
13
15
|
var _ConfigLoader = require("./ConfigLoader");
|
|
16
|
+
const _require = /*#__PURE__*/(0, _nodeModule.createRequire)(import.meta.url);
|
|
17
|
+
const packageJson = /*#__PURE__*/_require("imposters/package.json");
|
|
14
18
|
const configOption = /*#__PURE__*/_cli.Options.file("config").pipe(/*#__PURE__*/_cli.Options.withAlias("c"), /*#__PURE__*/_cli.Options.withDescription("Path to JSON config file"), _cli.Options.optional);
|
|
15
19
|
const portOption = /*#__PURE__*/_cli.Options.integer("port").pipe(/*#__PURE__*/_cli.Options.withAlias("p"), /*#__PURE__*/_cli.Options.withDescription("Admin server port (default: 2525)"), _cli.Options.optional);
|
|
20
|
+
const runtimeOption = /*#__PURE__*/_cli.Options.choice("runtime", ["node", "bun"]).pipe(/*#__PURE__*/_cli.Options.withDescription("Server runtime: node (default) or bun"), /*#__PURE__*/_cli.Options.withDefault("node"));
|
|
16
21
|
const startCommand = /*#__PURE__*/_cli.Command.make("start", {
|
|
17
22
|
config: configOption,
|
|
18
|
-
port: portOption
|
|
23
|
+
port: portOption,
|
|
24
|
+
runtime: runtimeOption
|
|
19
25
|
}, ({
|
|
20
26
|
config,
|
|
21
|
-
port
|
|
27
|
+
port,
|
|
28
|
+
runtime
|
|
22
29
|
}) => _effect.Effect.gen(function* () {
|
|
23
30
|
const adminPort = _effect.Option.isSome(port) ? port.value : Number(process.env.ADMIN_PORT ?? 2525);
|
|
24
31
|
const {
|
|
25
32
|
dispose,
|
|
26
33
|
handler
|
|
27
34
|
} = (0, _AdminServer.makeCompositeHandler)(adminPort);
|
|
28
|
-
const
|
|
35
|
+
const serverFactory = yield* _ServerFactory.ServerFactory;
|
|
36
|
+
const server = serverFactory.create({
|
|
29
37
|
port: adminPort,
|
|
30
38
|
fetch: handler
|
|
31
39
|
});
|
|
32
|
-
console.log(`Imposters admin server running on http://localhost:${server.port}`);
|
|
40
|
+
console.log(`Imposters admin server running on http://localhost:${server.port} (runtime: ${runtime})`);
|
|
33
41
|
console.log(`Admin UI: http://localhost:${server.port}/_ui`);
|
|
34
42
|
// Load config and create imposters if config file provided
|
|
35
43
|
if (_effect.Option.isSome(config)) {
|
|
@@ -94,11 +102,11 @@ const startCommand = /*#__PURE__*/_cli.Command.make("start", {
|
|
|
94
102
|
process.on("SIGINT", shutdown);
|
|
95
103
|
process.on("SIGTERM", shutdown);
|
|
96
104
|
});
|
|
97
|
-
}));
|
|
105
|
+
}).pipe(_effect.Effect.provide(runtime === "bun" ? _ServerFactory.BunServerFactoryLive : _ServerFactory.NodeServerFactoryLive)));
|
|
98
106
|
const command = /*#__PURE__*/_cli.Command.make("imposters").pipe(/*#__PURE__*/_cli.Command.withSubcommands([startCommand]));
|
|
99
107
|
const run = exports.run = /*#__PURE__*/_cli.Command.run(command, {
|
|
100
108
|
name: "imposters",
|
|
101
|
-
version:
|
|
109
|
+
version: packageJson.version
|
|
102
110
|
});
|
|
103
111
|
const main = exports.main = /*#__PURE__*/run(process.argv).pipe(/*#__PURE__*/_effect.Effect.provide(_platformNode.NodeContext.layer), _platformNode.NodeRuntime.runMain);
|
|
104
112
|
//# sourceMappingURL=Commands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Commands.js","names":["_cli","require","_platformNode","_effect","_HandlerHttpClient","_ImpostersClient","_AdminServer","_ConfigLoader","configOption","Options","file","pipe","withAlias","withDescription","optional","portOption","integer","startCommand","Command","make","config","port","Effect","gen","adminPort","Option","isSome","value","Number","process","env","ADMIN_PORT","dispose","handler","makeCompositeHandler","
|
|
1
|
+
{"version":3,"file":"Commands.js","names":["_cli","require","_platformNode","_effect","_nodeModule","_HandlerHttpClient","_ImpostersClient","_AdminServer","_ServerFactory","_ConfigLoader","createRequire","import","meta","url","packageJson","configOption","Options","file","pipe","withAlias","withDescription","optional","portOption","integer","runtimeOption","choice","withDefault","startCommand","Command","make","config","port","runtime","Effect","gen","adminPort","Option","isSome","value","Number","process","env","ADMIN_PORT","dispose","handler","makeCompositeHandler","serverFactory","ServerFactory","server","create","fetch","console","log","configData","loadConfigFile","catchTag","e","sync","error","message","imposters","length","clientLayer","ImpostersClientLive","Layer","provide","HandlerHttpClientLive","client","ImpostersClient","imp","created","createImposter","payload","name","undefined","protocol","adminPath","catchAll","succeed","stub","stubs","addStub","path","imposterId","id","void","updateImposter","status","async","shutdown","stop","exit","on","BunServerFactoryLive","NodeServerFactoryLive","command","withSubcommands","run","exports","version","main","argv","NodeContext","layer","NodeRuntime","runMain"],"sources":["../../../src/cli/Commands.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/cjs/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.testing = exports.stubs = exports.route = exports.requests = exports.partials = exports.layout = exports.imposter = exports.html = exports.dashboard = exports.common = exports.UuidLive = exports.Uuid = exports.UiRouter = exports.TemplateEngine = exports.SystemHandlers = exports.SystemGroup = exports.StubSchema = exports.ResponseGenerator = exports.RequestMatcher = exports.RequestLogger = exports.RequestLogSchema = exports.ProxyService = exports.Program = exports.PortAllocator = exports.MetricsService = exports.MainLayer = exports.ImpostersHandlers = exports.ImpostersGroup = exports.ImpostersClient = exports.ImposterServer = exports.ImposterSchema = exports.ImposterRepository = exports.HandlerHttpClient = exports.FiberManager = exports.ExpressionEvaluator = exports.Conversions = exports.ConfigLoader = exports.ConfigFileSchema = exports.Commands = exports.
|
|
6
|
+
exports.testing = exports.stubs = exports.route = exports.requests = exports.partials = exports.layout = exports.imposter = exports.html = exports.dashboard = exports.common = exports.UuidLive = exports.Uuid = exports.UiRouter = exports.TemplateEngine = exports.SystemHandlers = exports.SystemGroup = exports.StubSchema = exports.ServerFactory = exports.ResponseGenerator = exports.RequestMatcher = exports.RequestLogger = exports.RequestLogSchema = exports.ProxyService = exports.Program = exports.PortAllocator = exports.MetricsService = exports.MainLayer = exports.ImpostersHandlers = exports.ImpostersGroup = exports.ImpostersClient = exports.ImposterServer = exports.ImposterSchema = exports.ImposterRepository = exports.HandlerHttpClient = exports.FiberManager = exports.ExpressionEvaluator = exports.Conversions = exports.ConfigLoader = exports.ConfigFileSchema = exports.Commands = exports.AppConfig = exports.ApiSchemas = exports.ApiLayer = exports.ApiErrors = exports.AdminUiRouter = exports.AdminServer = exports.AdminLayout = exports.AdminDashboard = exports.AdminApi = void 0;
|
|
7
7
|
var _Program = _interopRequireWildcard(require("./Program.js"));
|
|
8
8
|
exports.Program = _Program;
|
|
9
9
|
var _AdminApi = _interopRequireWildcard(require("./api/AdminApi.js"));
|
|
@@ -62,12 +62,12 @@ var _common = _interopRequireWildcard(require("./schemas/common.js"));
|
|
|
62
62
|
exports.common = _common;
|
|
63
63
|
var _AdminServer = _interopRequireWildcard(require("./server/AdminServer.js"));
|
|
64
64
|
exports.AdminServer = _AdminServer;
|
|
65
|
-
var _BunServer = _interopRequireWildcard(require("./server/BunServer.js"));
|
|
66
|
-
exports.BunServer = _BunServer;
|
|
67
65
|
var _FiberManager = _interopRequireWildcard(require("./server/FiberManager.js"));
|
|
68
66
|
exports.FiberManager = _FiberManager;
|
|
69
67
|
var _ImposterServer = _interopRequireWildcard(require("./server/ImposterServer.js"));
|
|
70
68
|
exports.ImposterServer = _ImposterServer;
|
|
69
|
+
var _ServerFactory = _interopRequireWildcard(require("./server/ServerFactory.js"));
|
|
70
|
+
exports.ServerFactory = _ServerFactory;
|
|
71
71
|
var _AppConfig = _interopRequireWildcard(require("./services/AppConfig.js"));
|
|
72
72
|
exports.AppConfig = _AppConfig;
|
|
73
73
|
var _MetricsService = _interopRequireWildcard(require("./services/MetricsService.js"));
|
|
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.MainLayer = void 0;
|
|
7
7
|
var Layer = _interopRequireWildcard(require("effect/Layer"));
|
|
8
8
|
var _ImposterRepository = require("../repositories/ImposterRepository");
|
|
9
|
-
var _BunServer = require("../server/BunServer");
|
|
10
9
|
var _FiberManager = require("../server/FiberManager");
|
|
11
10
|
var _ImposterServer = require("../server/ImposterServer");
|
|
11
|
+
var _ServerFactory = require("../server/ServerFactory");
|
|
12
12
|
var _AppConfig = require("../services/AppConfig");
|
|
13
13
|
var _MetricsService = require("../services/MetricsService");
|
|
14
14
|
var _PortAllocator = require("../services/PortAllocator");
|
|
@@ -21,7 +21,7 @@ const PortAllocatorWithDeps = /*#__PURE__*/_PortAllocator.PortAllocatorLive.pipe
|
|
|
21
21
|
// ProxyServiceLive depends on Uuid
|
|
22
22
|
const ProxyServiceWithDeps = /*#__PURE__*/_ProxyService.ProxyServiceLive.pipe(/*#__PURE__*/Layer.provide(_UuidLive.UuidLive));
|
|
23
23
|
// ImposterServerLive depends on FiberManager + ImposterRepository + ServerFactory + RequestLogger + Metrics + Proxy
|
|
24
|
-
const ImposterServerWithDeps = /*#__PURE__*/_ImposterServer.ImposterServerLive.pipe(/*#__PURE__*/Layer.provide(/*#__PURE__*/Layer.mergeAll(_FiberManager.FiberManagerLive, _ImposterRepository.ImposterRepositoryLive,
|
|
24
|
+
const ImposterServerWithDeps = /*#__PURE__*/_ImposterServer.ImposterServerLive.pipe(/*#__PURE__*/Layer.provide(/*#__PURE__*/Layer.mergeAll(_FiberManager.FiberManagerLive, _ImposterRepository.ImposterRepositoryLive, _ServerFactory.NodeServerFactoryLive, _RequestLogger.RequestLoggerLive, _MetricsService.MetricsServiceLive, ProxyServiceWithDeps)));
|
|
25
25
|
// Compose all services
|
|
26
26
|
const MainLayer = exports.MainLayer = /*#__PURE__*/Layer.mergeAll(_UuidLive.UuidLive, _AppConfig.AppConfigLive, PortAllocatorWithDeps, _ImposterRepository.ImposterRepositoryLive, _FiberManager.FiberManagerLive, _RequestLogger.RequestLoggerLive, _MetricsService.MetricsServiceLive, ImposterServerWithDeps);
|
|
27
27
|
//# sourceMappingURL=MainLayer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainLayer.js","names":["Layer","_interopRequireWildcard","require","_ImposterRepository","
|
|
1
|
+
{"version":3,"file":"MainLayer.js","names":["Layer","_interopRequireWildcard","require","_ImposterRepository","_FiberManager","_ImposterServer","_ServerFactory","_AppConfig","_MetricsService","_PortAllocator","_ProxyService","_RequestLogger","_UuidLive","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","PortAllocatorWithDeps","PortAllocatorLive","pipe","provide","AppConfigLive","ProxyServiceWithDeps","ProxyServiceLive","UuidLive","ImposterServerWithDeps","ImposterServerLive","mergeAll","FiberManagerLive","ImposterRepositoryLive","NodeServerFactoryLive","RequestLoggerLive","MetricsServiceLive","MainLayer","exports"],"sources":["../../../src/layers/MainLayer.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,cAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AAA+C,SAAAD,wBAAAY,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAd,uBAAA,YAAAA,CAAAY,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAE/C;AACA,MAAMkB,qBAAqB,gBAAGC,gCAAiB,CAACC,IAAI,cAAClC,KAAK,CAACmC,OAAO,CAACC,wBAAa,CAAC,CAAC;AAElF;AACA,MAAMC,oBAAoB,gBAAGC,8BAAgB,CAACJ,IAAI,cAAClC,KAAK,CAACmC,OAAO,CAACI,kBAAQ,CAAC,CAAC;AAE3E;AACA,MAAMC,sBAAsB,gBAAGC,kCAAkB,CAACP,IAAI,cACpDlC,KAAK,CAACmC,OAAO,cACXnC,KAAK,CAAC0C,QAAQ,CACZC,8BAAgB,EAChBC,0CAAsB,EACtBC,oCAAqB,EACrBC,gCAAiB,EACjBC,kCAAkB,EAClBV,oBAAoB,CACrB,CACF,CACF;AAED;AACO,MAAMW,SAAS,GAAAC,OAAA,CAAAD,SAAA,gBAAGhD,KAAK,CAAC0C,QAAQ,CACrCH,kBAAQ,EACRH,wBAAa,EACbJ,qBAAqB,EACrBY,0CAAsB,EACtBD,8BAAgB,EAChBG,gCAAiB,EACjBC,kCAAkB,EAClBP,sBAAsB,CACvB","ignoreList":[]}
|
|
@@ -15,8 +15,8 @@ var _MetricsService = require("../services/MetricsService");
|
|
|
15
15
|
var _ProxyService = require("../services/ProxyService");
|
|
16
16
|
var _RequestLogger = require("../services/RequestLogger");
|
|
17
17
|
var _UiRouter = require("../ui/UiRouter");
|
|
18
|
-
var _BunServer = require("./BunServer");
|
|
19
18
|
var _FiberManager = require("./FiberManager");
|
|
19
|
+
var _ServerFactory = require("./ServerFactory");
|
|
20
20
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
21
21
|
class ImposterServerError extends _effect.Data.TaggedError("ImposterServerError") {}
|
|
22
22
|
exports.ImposterServerError = ImposterServerError;
|
|
@@ -25,7 +25,7 @@ exports.ImposterServer = ImposterServer;
|
|
|
25
25
|
const ImposterServerLive = exports.ImposterServerLive = /*#__PURE__*/_effect.Layer.effect(ImposterServer, /*#__PURE__*/_effect.Effect.gen(function* () {
|
|
26
26
|
const repo = yield* _ImposterRepository.ImposterRepository;
|
|
27
27
|
const fiberManager = yield* _FiberManager.FiberManager;
|
|
28
|
-
const serverFactory = yield*
|
|
28
|
+
const serverFactory = yield* _ServerFactory.ServerFactory;
|
|
29
29
|
const requestLogger = yield* _RequestLogger.RequestLogger;
|
|
30
30
|
const metricsService = yield* _MetricsService.MetricsService;
|
|
31
31
|
const proxyService = yield* _ProxyService.ProxyService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImposterServer.js","names":["_effect","require","DateTime","_interopRequireWildcard","_imposter","_RequestMatcher","_ResponseGenerator","_ImposterRepository","_common","_MetricsService","_ProxyService","_RequestLogger","_UiRouter","_BunServer","_FiberManager","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ImposterServerError","Data","TaggedError","exports","ImposterServer","Context","Tag","ImposterServerLive","Layer","effect","Effect","gen","repo","ImposterRepository","fiberManager","FiberManager","serverFactory","ServerFactory","requestLogger","RequestLogger","metricsService","MetricsService","proxyService","ProxyService","stateMapRef","Ref","make","HashMap","empty","start","id","record","config","stubsRef","stubs","proxyConfigRef","proxy","responseState","makeResponseState","update","rt","runtime","runPromise","Runtime","uiRouter","makeUiRouter","handler","request","uiResponse","startTime","Date","now","ctx","promise","extractRequestContext","stub","findMatchingStub","response","proxied","proxyConfig","url","URL","forward","pipe","catchTag","err","succeed","Response","JSON","stringify","error","target","targetUrl","reason","status","headers","mode","responseClone","clone","newStub","recordAsStub","addStub","catchAll","void","freshStubs","getStubs","method","path","responses","index","getNextIndex","length","responseMode","responseConfig","delay","undefined","sleep","buildResponse","respText","text","respHeaders","forEach","val","key","logBody","slice","duration","logEntry","NonEmptyString","crypto","randomUUID","imposterId","timestamp","unsafeMake","query","body","matchedStubId","log","recordRequest","catchAllCause","cause","details","String","fiberEffect","acquireRelease","try","create","port","fetch","catch","server","sync","stop","andThen","never","scoped","supervisedEffect","onError","remove","ImposterConfig","reset","removeImposter","updateStubs","stateMap","state","_tag","value","updateProxyConfig","isRunning"],"sources":["../../../src/server/ImposterServer.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;AACA,IAAAM,mBAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AAGA,IAAAQ,eAAA,GAAAR,OAAA;AACA,IAAAS,aAAA,GAAAT,OAAA;AACA,IAAAU,cAAA,GAAAV,OAAA;AACA,IAAAW,SAAA,GAAAX,OAAA;AACA,IAAAY,UAAA,GAAAZ,OAAA;AACA,IAAAa,aAAA,GAAAb,OAAA;AAA6C,SAAAE,wBAAAY,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAd,uBAAA,YAAAA,CAAAY,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAEvC,MAAOkB,mBAAoB,SAAQC,YAAI,CAACC,WAAW,CAAC,qBAAqB,CAG7E;AAAAC,OAAA,CAAAH,mBAAA,GAAAA,mBAAA;AAUI,MAAOI,cAAe,SAAQC,eAAO,CAACC,GAAG,CAAC,gBAAgB,CAAC,EAAuC;AAAAH,OAAA,CAAAC,cAAA,GAAAA,cAAA;AAOjG,MAAMG,kBAAkB,GAAAJ,OAAA,CAAAI,kBAAA,gBAAGC,aAAK,CAACC,MAAM,CAC5CL,cAAc,eACdM,cAAM,CAACC,GAAG,CAAC,aAAS;EAClB,MAAMC,IAAI,GAAG,OAAOC,sCAAkB;EACtC,MAAMC,YAAY,GAAG,OAAOC,0BAAY;EACxC,MAAMC,aAAa,GAAG,OAAOC,wBAAa;EAC1C,MAAMC,aAAa,GAAG,OAAOC,4BAAa;EAC1C,MAAMC,cAAc,GAAG,OAAOC,8BAAc;EAC5C,MAAMC,YAAY,GAAG,OAAOC,0BAAY;EACxC,MAAMC,WAAW,GAAG,OAAOC,WAAG,CAACC,IAAI,CAAyCC,eAAO,CAACC,KAAK,EAAE,CAAC;EAE5F,MAAMC,KAAK,GAAIC,EAAU,IACvBpB,cAAM,CAACC,GAAG,CAAC,aAAS;IAClB,MAAMoB,MAAM,GAAG,OAAOnB,IAAI,CAACnB,GAAG,CAACqC,EAAE,CAAC;IAClC,MAAME,MAAM,GAAGD,MAAM,CAACC,MAAM;IAE5B;IACA,MAAMC,QAAQ,GAAG,OAAOR,WAAG,CAACC,IAAI,CAAsBK,MAAM,CAACG,KAAK,CAAC;IACnE,MAAMC,cAAc,GAAG,OAAOV,WAAG,CAACC,IAAI,CAAgCM,MAAM,CAACI,KAAK,CAAC;IACnF,MAAMC,aAAa,GAAG,OAAO,IAAAC,oCAAiB,GAAE;IAEhD;IACA,OAAOb,WAAG,CAACc,MAAM,CAACf,WAAW,EAAEG,eAAO,CAACjC,GAAG,CAACoC,EAAE,EAAE;MAAEG,QAAQ;MAAEE;IAAc,CAAmB,CAAC,CAAC;IAE9F;IACA,MAAMK,EAAE,GAAG,OAAO9B,cAAM,CAAC+B,OAAO,EAAS;IACzC,MAAMC,UAAU,GAAGC,eAAO,CAACD,UAAU,CAACF,EAAE,CAAC;IAEzC;IACA,MAAMI,QAAQ,GAAG,IAAAC,sBAAY,EAAC;MAAEf,EAAE;MAAEE,MAAM;MAAEC,QAAQ;MAAErB,IAAI;MAAEM,aAAa;MAAEwB;IAAU,CAAE,CAAC;IAExF,MAAMI,OAAO,GAAG,MAAOC,OAAgB,IAAuB;MAC5D;MACA,MAAMC,UAAU,GAAG,MAAMJ,QAAQ,CAACG,OAAO,CAAC;MAC1C,IAAIC,UAAU,KAAK,IAAI,EAAE,OAAOA,UAAU;MAE1C,OAAON,UAAU,CACfhC,cAAM,CAACC,GAAG,CAAC,aAAS;QAClB,MAAMsC,SAAS,GAAGC,IAAI,CAACC,GAAG,EAAE;QAC5B,MAAMjB,KAAK,GAAG,OAAOT,WAAG,CAAChC,GAAG,CAACwC,QAAQ,CAAC;QACtC,MAAMmB,GAAG,GAAG,OAAO1C,cAAM,CAAC2C,OAAO,CAAC,MAAM,IAAAC,qCAAqB,EAACP,OAAO,CAAC,CAAC;QACvE,MAAMQ,IAAI,GAAG,IAAAC,gCAAgB,EAACJ,GAAG,EAAElB,KAAK,CAAC;QAEzC,IAAIuB,QAAkB;QACtB,IAAIC,OAAO,GAAG,KAAK;QACnB,IAAI,CAACH,IAAI,EAAE;UACT,MAAMI,WAAW,GAAG,OAAOlC,WAAG,CAAChC,GAAG,CAAC0C,cAAc,CAAC;UAClD,IAAIwB,WAAW,EAAE;YACf,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAACd,OAAO,CAACa,GAAG,CAAC;YAChCH,QAAQ,GAAG,OAAOnC,YAAY,CAACwC,OAAO,CAACV,GAAG,EAAEO,WAAW,EAAEC,GAAG,CAAC,CAACG,IAAI,CAChErD,cAAM,CAACsD,QAAQ,CAAC,YAAY,EAAGC,GAAG,IAChCvD,cAAM,CAACwD,OAAO,CACZ,IAAIC,QAAQ,CACVC,IAAI,CAACC,SAAS,CAAC;cAAEC,KAAK,EAAE,cAAc;cAAEC,MAAM,EAAEN,GAAG,CAACO,SAAS;cAAEC,MAAM,EAAER,GAAG,CAACQ;YAAM,CAAE,CAAC,EACpF;cAAEC,MAAM,EAAE,GAAG;cAAEC,OAAO,EAAE;gBAAE,cAAc,EAAE;cAAkB;YAAE,CAAE,CACjE,CACF,CAAC,CACL;YACDjB,OAAO,GAAG,IAAI;YACd;YACA,IAAIC,WAAW,CAACiB,IAAI,KAAK,QAAQ,IAAInB,QAAQ,CAACiB,MAAM,GAAG,GAAG,EAAE;cAC1D,MAAMG,aAAa,GAAGpB,QAAQ,CAACqB,KAAK,EAAE;cACtC,MAAMC,OAAO,GAAG,OAAOzD,YAAY,CAAC0D,YAAY,CAAC5B,GAAG,EAAEyB,aAAa,CAAC;cACpE,OAAOjE,IAAI,CAACqE,OAAO,CAACnD,EAAE,EAAEiD,OAAO,CAAC,CAAChB,IAAI,CAACrD,cAAM,CAACwE,QAAQ,CAAC,MAAMxE,cAAM,CAACyE,IAAI,CAAC,CAAC;cACzE,MAAMC,UAAU,GAAG,OAAOxE,IAAI,CAACyE,QAAQ,CAACvD,EAAE,CAAC,CAACiC,IAAI,CAC9CrD,cAAM,CAACwE,QAAQ,CAAC,MAAMxE,cAAM,CAACwD,OAAO,CAAC,EAAyB,CAAC,CAAC,CACjE;cACD,OAAOzC,WAAG,CAAC/B,GAAG,CAACuC,QAAQ,EAAEmD,UAAU,CAAC;YACtC;UACF,CAAC,MAAM;YACL3B,QAAQ,GAAG,IAAIU,QAAQ,CACrBC,IAAI,CAACC,SAAS,CAAC;cAAEC,KAAK,EAAE,wBAAwB;cAAEgB,MAAM,EAAElC,GAAG,CAACkC,MAAM;cAAEC,IAAI,EAAEnC,GAAG,CAACmC;YAAI,CAAE,CAAC,EACvF;cAAEb,MAAM,EAAE,GAAG;cAAEC,OAAO,EAAE;gBAAE,cAAc,EAAE;cAAkB;YAAE,CAAE,CACjE;UACH;QACF,CAAC,MAAM;UACL,MAAMa,SAAS,GAAGjC,IAAI,CAACiC,SAAS;UAChC,MAAMC,KAAK,GAAG,OAAOpD,aAAa,CAACqD,YAAY,CAAC5D,EAAE,EAAEyB,IAAI,CAACzB,EAAE,EAAE0D,SAAS,CAACG,MAAM,EAAEpC,IAAI,CAACqC,YAAY,CAAC;UACjG,MAAMC,cAAc,GAAGL,SAAS,CAACC,KAAK,CAAE;UACxC,MAAMK,KAAK,GAAGD,cAAc,CAACC,KAAK;UAClC,IAAIA,KAAK,KAAKC,SAAS,IAAID,KAAK,GAAG,CAAC,EAAE;YACpC,OAAOpF,cAAM,CAACsF,KAAK,CAAC,GAAGF,KAAK,SAAS,CAAC;UACxC;UACArC,QAAQ,GAAG,OAAO/C,cAAM,CAAC2C,OAAO,CAAC,MAAM,IAAA4C,gCAAa,EAACJ,cAAc,EAAEzC,GAAG,CAAC,CAAC;QAC5E;QAEA;QACA,MAAM8C,QAAQ,GAAG,OAAOxF,cAAM,CAAC2C,OAAO,CAAC,MAAMI,QAAQ,CAAC0C,IAAI,EAAE,CAAC;QAC7D,MAAMC,WAAW,GAA2B,EAAE;QAC9C3C,QAAQ,CAACkB,OAAO,CAAC0B,OAAO,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAI;UACpCH,WAAW,CAACG,GAAG,CAAC,GAAGD,GAAG;QACxB,CAAC,CAAC;QACF;QACA7C,QAAQ,GAAG,IAAIU,QAAQ,CAAC+B,QAAQ,EAAE;UAAExB,MAAM,EAAEjB,QAAQ,CAACiB,MAAM;UAAEC,OAAO,EAAElB,QAAQ,CAACkB;QAAO,CAAE,CAAC;QAEzF,MAAM6B,OAAO,GAAGN,QAAQ,CAACP,MAAM,GAAG,KAAK,GAAGO,QAAQ,CAACO,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAIP,QAAQ,IAAIH,SAAU;QAE5F,MAAMW,QAAQ,GAAGxD,IAAI,CAACC,GAAG,EAAE,GAAGF,SAAS;QACvC,MAAM0D,QAAQ,GAAoB;UAChC7E,EAAE,EAAE8E,sBAAc,CAAClF,IAAI,CAACmF,MAAM,CAACC,UAAU,EAAE,CAAC;UAC5CC,UAAU,EAAEH,sBAAc,CAAClF,IAAI,CAACI,EAAE,CAAC;UACnCkF,SAAS,EAAEhJ,QAAQ,CAACiJ,UAAU,CAAChE,SAAS,CAAC;UACzCF,OAAO,EAAE;YACPuC,MAAM,EAAElC,GAAG,CAACkC,MAAM;YAClBC,IAAI,EAAEnC,GAAG,CAACmC,IAAI;YACdZ,OAAO,EAAEvB,GAAG,CAACuB,OAAO;YACpBuC,KAAK,EAAE9D,GAAG,CAAC8D,KAAK;YAChBC,IAAI,EAAE/D,GAAG,CAAC+D;WACX;UACD1D,QAAQ,EAAE;YACRiB,MAAM,EAAEjB,QAAQ,CAACiB,MAAM;YACvBC,OAAO,EAAEyB,WAAW;YACpB,IAAII,OAAO,KAAKT,SAAS,GAAG;cAAEoB,IAAI,EAAEX;YAAO,CAAE,GAAG,EAAE,CAAC;YACnD,IAAIjD,IAAI,GAAG;cAAE6D,aAAa,EAAER,sBAAc,CAAClF,IAAI,CAAC6B,IAAI,CAACzB,EAAE;YAAC,CAAE,GAAG,EAAE,CAAC;YAChE4B;WACD;UACDgD;SACD;QACD,OAAOxF,aAAa,CAACmG,GAAG,CAACV,QAAQ,CAAC,CAAC5C,IAAI,CAACrD,cAAM,CAACwE,QAAQ,CAAC,MAAMxE,cAAM,CAACyE,IAAI,CAAC,CAAC;QAC3E,OAAO/D,cAAc,CAACkG,aAAa,CAACX,QAAQ,CAAC,CAAC5C,IAAI,CAACrD,cAAM,CAACwE,QAAQ,CAAC,MAAMxE,cAAM,CAACyE,IAAI,CAAC,CAAC;QAEtF,OAAO1B,QAAQ;MACjB,CAAC,CAAC,CAACM,IAAI,CACLrD,cAAM,CAAC6G,aAAa,CAAEC,KAAK,IACzB9G,cAAM,CAACwD,OAAO,CACZ,IAAIC,QAAQ,CACVC,IAAI,CAACC,SAAS,CAAC;QAAEC,KAAK,EAAE,uBAAuB;QAAEmD,OAAO,EAAEC,MAAM,CAACF,KAAK;MAAC,CAAE,CAAC,EAC1E;QAAE9C,MAAM,EAAE,GAAG;QAAEC,OAAO,EAAE;UAAE,cAAc,EAAE;QAAkB;MAAE,CAAE,CACjE,CACF,CACF,CACF,CACF;IACH,CAAC;IAED;IACA,MAAMgD,WAAW,GAAGjH,cAAM,CAACkH,cAAc,CACvClH,cAAM,CAACmH,GAAG,CAAC;MACTA,GAAG,EAAEA,CAAA,KAAM7G,aAAa,CAAC8G,MAAM,CAAC;QAAEC,IAAI,EAAE/F,MAAM,CAAC+F,IAAI;QAAEC,KAAK,EAAElF;MAAO,CAAE,CAAC;MACtEmF,KAAK,EAAGhE,GAAG,IACT,IAAIjE,mBAAmB,CAAC;QAAE+G,UAAU,EAAEjF,EAAE;QAAE2C,MAAM,EAAE,uBAAuBzC,MAAM,CAAC+F,IAAI,KAAK9D,GAAG;MAAE,CAAE;KACnG,CAAC,EACDiE,MAAM,IAAKxH,cAAM,CAACyH,IAAI,CAAC,MAAMD,MAAM,CAACE,IAAI,CAAC,IAAI,CAAC,CAAC,CACjD,CAACrE,IAAI,CACJrD,cAAM,CAAC2H,OAAO,CAAC3H,cAAM,CAAC4H,KAAK,CAAC,EAC5B5H,cAAM,CAAC6H,MAAM,CACd;IAED;IACA,MAAMC,gBAAgB,GAAGb,WAAW,CAAC5D,IAAI,CACvCrD,cAAM,CAAC+H,OAAO,CAAC,MACb/H,cAAM,CAACC,GAAG,CAAC,aAAS;MAClB,OAAOc,WAAG,CAACc,MAAM,CAACf,WAAW,EAAEG,eAAO,CAAC+G,MAAM,CAAC5G,EAAE,CAAC,CAAC;MAClD,OAAOlB,IAAI,CAAC2B,MAAM,CAACT,EAAE,EAAG9C,CAAC,KAAM;QAC7B,GAAGA,CAAC;QACJgD,MAAM,EAAE,IAAA2G,wBAAc,EAAC;UAAE,GAAG3J,CAAC,CAACgD,MAAM;UAAE0C,MAAM,EAAE;QAAS,CAAE;OAC1D,CAAC,CAAC,CAACX,IAAI,CAACrD,cAAM,CAACwE,QAAQ,CAAC,MAAMxE,cAAM,CAACyE,IAAI,CAAC,CAAC;MAC5C,OAAO9C,aAAa,CAACuG,KAAK,CAAC9G,EAAE,CAAC;IAChC,CAAC,CAAC,CACH,CAC+B;IAElC,OAAOhB,YAAY,CAACe,KAAK,CAACC,EAAE,EAAE0G,gBAAgB,CAAC;IAE/C;IACA,OAAO5H,IAAI,CAAC2B,MAAM,CAACT,EAAE,EAAG9C,CAAC,KAAM;MAC7B,GAAGA,CAAC;MACJgD,MAAM,EAAE,IAAA2G,wBAAc,EAAC;QAAE,GAAG3J,CAAC,CAACgD,MAAM;QAAE0C,MAAM,EAAE;MAAS,CAAE;KAC1D,CAAC,CAAC,CAACX,IAAI,CAACrD,cAAM,CAACsD,QAAQ,CAAC,uBAAuB,EAAE,MAAMtD,cAAM,CAACyE,IAAI,CAAC,CAAC;EACvE,CAAC,CAAC;EAEJ,MAAMiD,IAAI,GAAItG,EAAU,IACtBpB,cAAM,CAACC,GAAG,CAAC,aAAS;IAClB,OAAOG,YAAY,CAACsH,IAAI,CAACtG,EAAE,CAAC;IAC5B,OAAOL,WAAG,CAACc,MAAM,CAACf,WAAW,EAAEG,eAAO,CAAC+G,MAAM,CAAC5G,EAAE,CAAC,CAAC;IAClD,OAAOlB,IAAI,CAAC2B,MAAM,CAACT,EAAE,EAAG9C,CAAC,KAAM;MAC7B,GAAGA,CAAC;MACJgD,MAAM,EAAE,IAAA2G,wBAAc,EAAC;QAAE,GAAG3J,CAAC,CAACgD,MAAM;QAAE0C,MAAM,EAAE;MAAS,CAAE;KAC1D,CAAC,CAAC,CAACX,IAAI,CAACrD,cAAM,CAACwE,QAAQ,CAAC,MAAMxE,cAAM,CAACyE,IAAI,CAAC,CAAC;IAC5C,OAAOjE,aAAa,CAAC2H,cAAc,CAAC/G,EAAE,CAAC;EACzC,CAAC,CAAC;EAEJ,MAAMgH,WAAW,GAAIhH,EAAU,IAC7BpB,cAAM,CAACC,GAAG,CAAC,aAAS;IAClB,MAAMuB,KAAK,GAAG,OAAOtB,IAAI,CAACyE,QAAQ,CAACvD,EAAE,CAAC,CAACiC,IAAI,CAACrD,cAAM,CAACwE,QAAQ,CAAC,MAAMxE,cAAM,CAACwD,OAAO,CAAC,EAAyB,CAAC,CAAC,CAAC;IAC7G,MAAM6E,QAAQ,GAAG,OAAOtH,WAAG,CAAChC,GAAG,CAAC+B,WAAW,CAAC;IAC5C,MAAMwH,KAAK,GAAGrH,eAAO,CAAClC,GAAG,CAACsJ,QAAQ,EAAEjH,EAAE,CAAC;IACvC,IAAIkH,KAAK,CAACC,IAAI,KAAK,MAAM,EAAE;MACzB,OAAOxH,WAAG,CAAC/B,GAAG,CAACsJ,KAAK,CAACE,KAAK,CAACjH,QAAQ,EAAEC,KAAK,CAAC;IAC7C;EACF,CAAC,CAAC;EAEJ,MAAMiH,iBAAiB,GAAIrH,EAAU,IACnCpB,cAAM,CAACC,GAAG,CAAC,aAAS;IAClB,MAAMoB,MAAM,GAAG,OAAOnB,IAAI,CAACnB,GAAG,CAACqC,EAAE,CAAC,CAACiC,IAAI,CAACrD,cAAM,CAACwE,QAAQ,CAAC,MAAMxE,cAAM,CAACwD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACpF,IAAInC,MAAM,KAAK,IAAI,EAAE;IACrB,MAAMgH,QAAQ,GAAG,OAAOtH,WAAG,CAAChC,GAAG,CAAC+B,WAAW,CAAC;IAC5C,MAAMwH,KAAK,GAAGrH,eAAO,CAAClC,GAAG,CAACsJ,QAAQ,EAAEjH,EAAE,CAAC;IACvC,IAAIkH,KAAK,CAACC,IAAI,KAAK,MAAM,EAAE;MACzB,OAAOxH,WAAG,CAAC/B,GAAG,CAACsJ,KAAK,CAACE,KAAK,CAAC/G,cAAc,EAAEJ,MAAM,CAACC,MAAM,CAACI,KAAK,CAAC;IACjE;EACF,CAAC,CAAC;EAEJ,MAAMgH,SAAS,GAAItH,EAAU,IAA6BhB,YAAY,CAACsI,SAAS,CAACtH,EAAE,CAAC;EAEpF,OAAO;IAAED,KAAK;IAAEuG,IAAI;IAAEU,WAAW;IAAEK,iBAAiB;IAAEC;EAAS,CAAgC;AACjG,CAAC,CAAC,CACH","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ImposterServer.js","names":["_effect","require","DateTime","_interopRequireWildcard","_imposter","_RequestMatcher","_ResponseGenerator","_ImposterRepository","_common","_MetricsService","_ProxyService","_RequestLogger","_UiRouter","_FiberManager","_ServerFactory","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ImposterServerError","Data","TaggedError","exports","ImposterServer","Context","Tag","ImposterServerLive","Layer","effect","Effect","gen","repo","ImposterRepository","fiberManager","FiberManager","serverFactory","ServerFactory","requestLogger","RequestLogger","metricsService","MetricsService","proxyService","ProxyService","stateMapRef","Ref","make","HashMap","empty","start","id","record","config","stubsRef","stubs","proxyConfigRef","proxy","responseState","makeResponseState","update","rt","runtime","runPromise","Runtime","uiRouter","makeUiRouter","handler","request","uiResponse","startTime","Date","now","ctx","promise","extractRequestContext","stub","findMatchingStub","response","proxied","proxyConfig","url","URL","forward","pipe","catchTag","err","succeed","Response","JSON","stringify","error","target","targetUrl","reason","status","headers","mode","responseClone","clone","newStub","recordAsStub","addStub","catchAll","void","freshStubs","getStubs","method","path","responses","index","getNextIndex","length","responseMode","responseConfig","delay","undefined","sleep","buildResponse","respText","text","respHeaders","forEach","val","key","logBody","slice","duration","logEntry","NonEmptyString","crypto","randomUUID","imposterId","timestamp","unsafeMake","query","body","matchedStubId","log","recordRequest","catchAllCause","cause","details","String","fiberEffect","acquireRelease","try","create","port","fetch","catch","server","sync","stop","andThen","never","scoped","supervisedEffect","onError","remove","ImposterConfig","reset","removeImposter","updateStubs","stateMap","state","_tag","value","updateProxyConfig","isRunning"],"sources":["../../../src/server/ImposterServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ServerFactory = exports.NodeServerFactoryLive = exports.BunServerFactoryLive = void 0;
|
|
7
|
+
var _effect = require("effect");
|
|
8
|
+
var http = _interopRequireWildcard(require("node:http"));
|
|
9
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
10
|
+
class ServerFactory extends _effect.Context.Tag("ServerFactory")() {}
|
|
11
|
+
exports.ServerFactory = ServerFactory;
|
|
12
|
+
const NodeServerFactoryLive = exports.NodeServerFactoryLive = /*#__PURE__*/_effect.Layer.succeed(ServerFactory, {
|
|
13
|
+
create: options => {
|
|
14
|
+
const server = http.createServer(async (req, res) => {
|
|
15
|
+
try {
|
|
16
|
+
const url = `http://localhost:${options.port}${req.url}`;
|
|
17
|
+
const headers = new Headers();
|
|
18
|
+
for (const [key, val] of Object.entries(req.headers)) {
|
|
19
|
+
if (val) headers.set(key, Array.isArray(val) ? val.join(", ") : val);
|
|
20
|
+
}
|
|
21
|
+
let body;
|
|
22
|
+
if (req.method !== "GET" && req.method !== "HEAD") {
|
|
23
|
+
body = await new Promise(resolve => {
|
|
24
|
+
let data = "";
|
|
25
|
+
req.on("data", chunk => {
|
|
26
|
+
data += chunk.toString();
|
|
27
|
+
});
|
|
28
|
+
req.on("end", () => resolve(data));
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
const request = new Request(url, {
|
|
32
|
+
method: req.method ?? "GET",
|
|
33
|
+
headers,
|
|
34
|
+
...(body !== undefined && body !== "" ? {
|
|
35
|
+
body
|
|
36
|
+
} : {})
|
|
37
|
+
});
|
|
38
|
+
const response = await options.fetch(request);
|
|
39
|
+
const respHeaders = {};
|
|
40
|
+
response.headers.forEach((val, key) => {
|
|
41
|
+
respHeaders[key] = val;
|
|
42
|
+
});
|
|
43
|
+
res.writeHead(response.status, respHeaders);
|
|
44
|
+
const respBody = await response.text();
|
|
45
|
+
res.end(respBody);
|
|
46
|
+
} catch (err) {
|
|
47
|
+
res.writeHead(500);
|
|
48
|
+
res.end(JSON.stringify({
|
|
49
|
+
error: "Internal server error",
|
|
50
|
+
details: String(err)
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
server.listen(options.port);
|
|
55
|
+
return {
|
|
56
|
+
port: options.port,
|
|
57
|
+
stop: closeActive => {
|
|
58
|
+
if (closeActive && typeof server.closeAllConnections === "function") {
|
|
59
|
+
server.closeAllConnections();
|
|
60
|
+
}
|
|
61
|
+
server.close();
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
const BunServerFactoryLive = exports.BunServerFactoryLive = /*#__PURE__*/_effect.Layer.succeed(ServerFactory, {
|
|
67
|
+
create: options => globalThis.Bun.serve(options)
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=ServerFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServerFactory.js","names":["_effect","require","http","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ServerFactory","Context","Tag","exports","NodeServerFactoryLive","Layer","succeed","create","options","server","createServer","req","res","url","port","headers","Headers","key","val","entries","Array","isArray","join","body","method","Promise","resolve","data","on","chunk","toString","request","Request","undefined","response","fetch","respHeaders","forEach","writeHead","status","respBody","text","end","err","JSON","stringify","error","details","String","listen","stop","closeActive","closeAllConnections","close","BunServerFactoryLive","globalThis","Bun","serve"],"sources":["../../../src/server/ServerFactory.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Commands.d.ts","sourceRoot":"","sources":["../../../src/cli/Commands.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAiB,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"Commands.d.ts","sourceRoot":"","sources":["../../../src/cli/Commands.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAiB,MAAM,QAAQ,CAAA;AA0H9C,eAAO,MAAM,GAAG,8JAGd,CAAA;AAEF,eAAO,MAAM,IAAI,MAGhB,CAAA"}
|
package/dist/dts/index.d.ts
CHANGED
|
@@ -37,9 +37,9 @@ export * as RequestLogSchema from "./schemas/RequestLogSchema.js";
|
|
|
37
37
|
export * as StubSchema from "./schemas/StubSchema.js";
|
|
38
38
|
export * as common from "./schemas/common.js";
|
|
39
39
|
export * as AdminServer from "./server/AdminServer.js";
|
|
40
|
-
export * as BunServer from "./server/BunServer.js";
|
|
41
40
|
export * as FiberManager from "./server/FiberManager.js";
|
|
42
41
|
export * as ImposterServer from "./server/ImposterServer.js";
|
|
42
|
+
export * as ServerFactory from "./server/ServerFactory.js";
|
|
43
43
|
export * as AppConfig from "./services/AppConfig.js";
|
|
44
44
|
export * as MetricsService from "./services/MetricsService.js";
|
|
45
45
|
export * as PortAllocator from "./services/PortAllocator.js";
|
package/dist/dts/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAGvC,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAG7C,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAA;AAG/C,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAA;AAGjD,OAAO,KAAK,WAAW,MAAM,sBAAsB,CAAA;AAGnD,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAA;AAGzD,OAAO,KAAK,iBAAiB,MAAM,4BAA4B,CAAA;AAG/D,OAAO,KAAK,WAAW,MAAM,sBAAsB,CAAA;AAGnD,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAA;AAGzD,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAG7C,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AAGrD,OAAO,KAAK,iBAAiB,MAAM,+BAA+B,CAAA;AAGlE,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAA;AAG9D,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAE9C;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAEhD;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAG1C,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAGhD,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAElD;;;GAGG;AACH,OAAO,KAAK,mBAAmB,MAAM,mCAAmC,CAAA;AAGxE,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D,OAAO,KAAK,iBAAiB,MAAM,iCAAiC,CAAA;AAGpE,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D,OAAO,KAAK,kBAAkB,MAAM,sCAAsC,CAAA;AAG1E,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAA;AAGjE,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAG7D,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAA;AAGjE,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAA;AAGrD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAG7C,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AAGtD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAGvC,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAG7C,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAA;AAG/C,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAA;AAGjD,OAAO,KAAK,WAAW,MAAM,sBAAsB,CAAA;AAGnD,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAA;AAGzD,OAAO,KAAK,iBAAiB,MAAM,4BAA4B,CAAA;AAG/D,OAAO,KAAK,WAAW,MAAM,sBAAsB,CAAA;AAGnD,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAA;AAGzD,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAG7C,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AAGrD,OAAO,KAAK,iBAAiB,MAAM,+BAA+B,CAAA;AAGlE,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAA;AAG9D,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAE9C;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAEhD;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAG1C,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAGhD,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAElD;;;GAGG;AACH,OAAO,KAAK,mBAAmB,MAAM,mCAAmC,CAAA;AAGxE,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D,OAAO,KAAK,iBAAiB,MAAM,iCAAiC,CAAA;AAGpE,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D,OAAO,KAAK,kBAAkB,MAAM,sCAAsC,CAAA;AAG1E,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAA;AAGjE,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAG7D,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAA;AAGjE,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAA;AAGrD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAG7C,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AAGtD,OAAO,KAAK,YAAY,MAAM,0BAA0B,CAAA;AAGxD,OAAO,KAAK,cAAc,MAAM,4BAA4B,CAAA;AAG5D,OAAO,KAAK,aAAa,MAAM,2BAA2B,CAAA;AAG1D,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAA;AAGpD,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAA;AAG5D,OAAO,KAAK,YAAY,MAAM,4BAA4B,CAAA;AAG1D,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAA;AAG5D,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAG1C,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAGlD,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAA;AAG5C,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAA;AAGxD,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAA;AAG5D,OAAO,KAAK,cAAc,MAAM,oCAAoC,CAAA;AAGpE,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAGlD,OAAO,KAAK,IAAI,MAAM,cAAc,CAAA;AAGpC,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA;AAGxC,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAA;AAGpD,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAGlD,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAA"}
|
|
@@ -4,8 +4,8 @@ import { ImposterRepository } from "../repositories/ImposterRepository";
|
|
|
4
4
|
import { MetricsService } from "../services/MetricsService";
|
|
5
5
|
import { ProxyService } from "../services/ProxyService";
|
|
6
6
|
import { RequestLogger } from "../services/RequestLogger";
|
|
7
|
-
import { ServerFactory } from "./BunServer";
|
|
8
7
|
import { FiberManager } from "./FiberManager";
|
|
8
|
+
import { ServerFactory } from "./ServerFactory";
|
|
9
9
|
declare const ImposterServerError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
|
|
10
10
|
readonly _tag: "ImposterServerError";
|
|
11
11
|
} & Readonly<A>;
|
|
@@ -24,6 +24,6 @@ export interface ImposterServerShape {
|
|
|
24
24
|
declare const ImposterServer_base: Context.TagClass<ImposterServer, "ImposterServer", ImposterServerShape>;
|
|
25
25
|
export declare class ImposterServer extends ImposterServer_base {
|
|
26
26
|
}
|
|
27
|
-
export declare const ImposterServerLive: Layer.Layer<ImposterServer, never, ImposterRepository | MetricsService | ProxyService | RequestLogger |
|
|
27
|
+
export declare const ImposterServerLive: Layer.Layer<ImposterServer, never, ImposterRepository | MetricsService | ProxyService | RequestLogger | FiberManager | ServerFactory>;
|
|
28
28
|
export {};
|
|
29
29
|
//# sourceMappingURL=ImposterServer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImposterServer.d.ts","sourceRoot":"","sources":["../../../src/server/ImposterServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,EAAW,KAAK,EAAgB,MAAM,QAAQ,CAAA;AAE5E,OAAO,EAAkB,KAAK,qBAAqB,EAA0B,MAAM,oBAAoB,CAAA;AAGvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AAIvE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ImposterServer.d.ts","sourceRoot":"","sources":["../../../src/server/ImposterServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,EAAW,KAAK,EAAgB,MAAM,QAAQ,CAAA;AAE5E,OAAO,EAAkB,KAAK,qBAAqB,EAA0B,MAAM,oBAAoB,CAAA;AAGvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AAIvE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;;;;AAE/C,qBAAa,mBAAoB,SAAQ,yBAAwC;IAC/E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAC;CAAG;AAEL,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,qBAAqB,CAAC,CAAA;IAChG,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAClD,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzD,QAAQ,CAAC,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC/D,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;CAC3D;;AAED,qBAAa,cAAe,SAAQ,mBAAoE;CAAG;AAO3G,eAAO,MAAM,kBAAkB,uIA+M9B,CAAA"}
|
|
@@ -12,6 +12,7 @@ export interface ServerFactoryShape {
|
|
|
12
12
|
declare const ServerFactory_base: Context.TagClass<ServerFactory, "ServerFactory", ServerFactoryShape>;
|
|
13
13
|
export declare class ServerFactory extends ServerFactory_base {
|
|
14
14
|
}
|
|
15
|
+
export declare const NodeServerFactoryLive: Layer.Layer<ServerFactory, never, never>;
|
|
15
16
|
export declare const BunServerFactoryLive: Layer.Layer<ServerFactory, never, never>;
|
|
16
17
|
export {};
|
|
17
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=ServerFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServerFactory.d.ts","sourceRoot":"","sources":["../../../src/server/ServerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAGvC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAA;CAC9C;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;QACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;KACxD,KAAK,cAAc,CAAA;CACrB;;AAED,qBAAa,aAAc,SAAQ,kBAAiE;CAAG;AAEvG,eAAO,MAAM,qBAAqB,0CAsDhC,CAAA;AAEF,eAAO,MAAM,oBAAoB,0CAE/B,CAAA"}
|
package/dist/esm/cli/Commands.js
CHANGED
|
@@ -1,29 +1,37 @@
|
|
|
1
1
|
import { Command, Options } from "@effect/cli";
|
|
2
2
|
import { NodeContext, NodeRuntime } from "@effect/platform-node";
|
|
3
3
|
import { Effect, Layer, Option } from "effect";
|
|
4
|
+
import { createRequire } from "node:module";
|
|
4
5
|
import { HandlerHttpClientLive } from "../client/HandlerHttpClient";
|
|
5
6
|
import { ImpostersClient, ImpostersClientLive } from "../client/ImpostersClient";
|
|
6
7
|
import { makeCompositeHandler } from "../server/AdminServer";
|
|
8
|
+
import { BunServerFactoryLive, NodeServerFactoryLive, ServerFactory } from "../server/ServerFactory";
|
|
7
9
|
import { loadConfigFile } from "./ConfigLoader";
|
|
10
|
+
const require = /*#__PURE__*/createRequire(import.meta.url);
|
|
11
|
+
const packageJson = /*#__PURE__*/require("imposters/package.json");
|
|
8
12
|
const configOption = /*#__PURE__*/Options.file("config").pipe(/*#__PURE__*/Options.withAlias("c"), /*#__PURE__*/Options.withDescription("Path to JSON config file"), Options.optional);
|
|
9
13
|
const portOption = /*#__PURE__*/Options.integer("port").pipe(/*#__PURE__*/Options.withAlias("p"), /*#__PURE__*/Options.withDescription("Admin server port (default: 2525)"), Options.optional);
|
|
14
|
+
const runtimeOption = /*#__PURE__*/Options.choice("runtime", ["node", "bun"]).pipe(/*#__PURE__*/Options.withDescription("Server runtime: node (default) or bun"), /*#__PURE__*/Options.withDefault("node"));
|
|
10
15
|
const startCommand = /*#__PURE__*/Command.make("start", {
|
|
11
16
|
config: configOption,
|
|
12
|
-
port: portOption
|
|
17
|
+
port: portOption,
|
|
18
|
+
runtime: runtimeOption
|
|
13
19
|
}, ({
|
|
14
20
|
config,
|
|
15
|
-
port
|
|
21
|
+
port,
|
|
22
|
+
runtime
|
|
16
23
|
}) => Effect.gen(function* () {
|
|
17
24
|
const adminPort = Option.isSome(port) ? port.value : Number(process.env.ADMIN_PORT ?? 2525);
|
|
18
25
|
const {
|
|
19
26
|
dispose,
|
|
20
27
|
handler
|
|
21
28
|
} = makeCompositeHandler(adminPort);
|
|
22
|
-
const
|
|
29
|
+
const serverFactory = yield* ServerFactory;
|
|
30
|
+
const server = serverFactory.create({
|
|
23
31
|
port: adminPort,
|
|
24
32
|
fetch: handler
|
|
25
33
|
});
|
|
26
|
-
console.log(`Imposters admin server running on http://localhost:${server.port}`);
|
|
34
|
+
console.log(`Imposters admin server running on http://localhost:${server.port} (runtime: ${runtime})`);
|
|
27
35
|
console.log(`Admin UI: http://localhost:${server.port}/_ui`);
|
|
28
36
|
// Load config and create imposters if config file provided
|
|
29
37
|
if (Option.isSome(config)) {
|
|
@@ -88,11 +96,11 @@ const startCommand = /*#__PURE__*/Command.make("start", {
|
|
|
88
96
|
process.on("SIGINT", shutdown);
|
|
89
97
|
process.on("SIGTERM", shutdown);
|
|
90
98
|
});
|
|
91
|
-
}));
|
|
99
|
+
}).pipe(Effect.provide(runtime === "bun" ? BunServerFactoryLive : NodeServerFactoryLive)));
|
|
92
100
|
const command = /*#__PURE__*/Command.make("imposters").pipe(/*#__PURE__*/Command.withSubcommands([startCommand]));
|
|
93
101
|
export const run = /*#__PURE__*/Command.run(command, {
|
|
94
102
|
name: "imposters",
|
|
95
|
-
version:
|
|
103
|
+
version: packageJson.version
|
|
96
104
|
});
|
|
97
105
|
export const main = /*#__PURE__*/run(process.argv).pipe(/*#__PURE__*/Effect.provide(NodeContext.layer), NodeRuntime.runMain);
|
|
98
106
|
//# sourceMappingURL=Commands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Commands.js","names":["Command","Options","NodeContext","NodeRuntime","Effect","Layer","Option","HandlerHttpClientLive","ImpostersClient","ImpostersClientLive","makeCompositeHandler","loadConfigFile","configOption","file","pipe","withAlias","withDescription","optional","portOption","integer","startCommand","make","config","port","gen","adminPort","isSome","value","Number","process","env","ADMIN_PORT","dispose","handler","
|
|
1
|
+
{"version":3,"file":"Commands.js","names":["Command","Options","NodeContext","NodeRuntime","Effect","Layer","Option","createRequire","HandlerHttpClientLive","ImpostersClient","ImpostersClientLive","makeCompositeHandler","BunServerFactoryLive","NodeServerFactoryLive","ServerFactory","loadConfigFile","require","import","meta","url","packageJson","configOption","file","pipe","withAlias","withDescription","optional","portOption","integer","runtimeOption","choice","withDefault","startCommand","make","config","port","runtime","gen","adminPort","isSome","value","Number","process","env","ADMIN_PORT","dispose","handler","serverFactory","server","create","fetch","console","log","configData","catchTag","e","sync","error","message","imposters","length","clientLayer","provide","client","imp","created","createImposter","payload","name","undefined","protocol","adminPath","catchAll","succeed","stub","stubs","addStub","path","imposterId","id","void","updateImposter","status","async","shutdown","stop","exit","on","command","withSubcommands","run","version","main","argv","layer","runMain"],"sources":["../../../src/cli/Commands.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/index.js
CHANGED
|
@@ -37,9 +37,9 @@ export * as RequestLogSchema from "./schemas/RequestLogSchema.js";
|
|
|
37
37
|
export * as StubSchema from "./schemas/StubSchema.js";
|
|
38
38
|
export * as common from "./schemas/common.js";
|
|
39
39
|
export * as AdminServer from "./server/AdminServer.js";
|
|
40
|
-
export * as BunServer from "./server/BunServer.js";
|
|
41
40
|
export * as FiberManager from "./server/FiberManager.js";
|
|
42
41
|
export * as ImposterServer from "./server/ImposterServer.js";
|
|
42
|
+
export * as ServerFactory from "./server/ServerFactory.js";
|
|
43
43
|
export * as AppConfig from "./services/AppConfig.js";
|
|
44
44
|
export * as MetricsService from "./services/MetricsService.js";
|
|
45
45
|
export * as PortAllocator from "./services/PortAllocator.js";
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Program","AdminApi","ApiErrors","ApiSchemas","Conversions","ImpostersGroup","ImpostersHandlers","SystemGroup","SystemHandlers","Commands","ConfigLoader","HandlerHttpClient","ImpostersClient","testing","imposter","route","ApiLayer","MainLayer","ExpressionEvaluator","RequestMatcher","ResponseGenerator","TemplateEngine","ImposterRepository","ConfigFileSchema","ImposterSchema","RequestLogSchema","StubSchema","common","AdminServer","
|
|
1
|
+
{"version":3,"file":"index.js","names":["Program","AdminApi","ApiErrors","ApiSchemas","Conversions","ImpostersGroup","ImpostersHandlers","SystemGroup","SystemHandlers","Commands","ConfigLoader","HandlerHttpClient","ImpostersClient","testing","imposter","route","ApiLayer","MainLayer","ExpressionEvaluator","RequestMatcher","ResponseGenerator","TemplateEngine","ImposterRepository","ConfigFileSchema","ImposterSchema","RequestLogSchema","StubSchema","common","AdminServer","FiberManager","ImposterServer","ServerFactory","AppConfig","MetricsService","PortAllocator","ProxyService","RequestLogger","Uuid","UuidLive","UiRouter","AdminLayout","AdminUiRouter","AdminDashboard","partials","html","layout","dashboard","requests","stubs"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,OAAO,MAAM,cAAc;AAGvC,OAAO,KAAKC,QAAQ,MAAM,mBAAmB;AAG7C,OAAO,KAAKC,SAAS,MAAM,oBAAoB;AAG/C,OAAO,KAAKC,UAAU,MAAM,qBAAqB;AAGjD,OAAO,KAAKC,WAAW,MAAM,sBAAsB;AAGnD,OAAO,KAAKC,cAAc,MAAM,yBAAyB;AAGzD,OAAO,KAAKC,iBAAiB,MAAM,4BAA4B;AAG/D,OAAO,KAAKC,WAAW,MAAM,sBAAsB;AAGnD,OAAO,KAAKC,cAAc,MAAM,yBAAyB;AAGzD,OAAO,KAAKC,QAAQ,MAAM,mBAAmB;AAG7C,OAAO,KAAKC,YAAY,MAAM,uBAAuB;AAGrD,OAAO,KAAKC,iBAAiB,MAAM,+BAA+B;AAGlE,OAAO,KAAKC,eAAe,MAAM,6BAA6B;AAG9D,OAAO,KAAKC,OAAO,MAAM,qBAAqB;AAE9C;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,sBAAsB;AAEhD;;;AAGA,OAAO,KAAKC,KAAK,MAAM,mBAAmB;AAG1C,OAAO,KAAKC,QAAQ,MAAM,sBAAsB;AAGhD,OAAO,KAAKC,SAAS,MAAM,uBAAuB;AAElD;;;;AAIA,OAAO,KAAKC,mBAAmB,MAAM,mCAAmC;AAGxE,OAAO,KAAKC,cAAc,MAAM,8BAA8B;AAG9D,OAAO,KAAKC,iBAAiB,MAAM,iCAAiC;AAGpE,OAAO,KAAKC,cAAc,MAAM,8BAA8B;AAG9D,OAAO,KAAKC,kBAAkB,MAAM,sCAAsC;AAG1E,OAAO,KAAKC,gBAAgB,MAAM,+BAA+B;AAGjE,OAAO,KAAKC,cAAc,MAAM,6BAA6B;AAG7D,OAAO,KAAKC,gBAAgB,MAAM,+BAA+B;AAGjE,OAAO,KAAKC,UAAU,MAAM,yBAAyB;AAGrD,OAAO,KAAKC,MAAM,MAAM,qBAAqB;AAG7C,OAAO,KAAKC,WAAW,MAAM,yBAAyB;AAGtD,OAAO,KAAKC,YAAY,MAAM,0BAA0B;AAGxD,OAAO,KAAKC,cAAc,MAAM,4BAA4B;AAG5D,OAAO,KAAKC,aAAa,MAAM,2BAA2B;AAG1D,OAAO,KAAKC,SAAS,MAAM,yBAAyB;AAGpD,OAAO,KAAKC,cAAc,MAAM,8BAA8B;AAG9D,OAAO,KAAKC,aAAa,MAAM,6BAA6B;AAG5D,OAAO,KAAKC,YAAY,MAAM,4BAA4B;AAG1D,OAAO,KAAKC,aAAa,MAAM,6BAA6B;AAG5D,OAAO,KAAKC,IAAI,MAAM,oBAAoB;AAG1C,OAAO,KAAKC,QAAQ,MAAM,wBAAwB;AAGlD,OAAO,KAAKC,QAAQ,MAAM,kBAAkB;AAG5C,OAAO,KAAKC,WAAW,MAAM,2BAA2B;AAGxD,OAAO,KAAKC,aAAa,MAAM,6BAA6B;AAG5D,OAAO,KAAKC,cAAc,MAAM,oCAAoC;AAGpE,OAAO,KAAKC,QAAQ,MAAM,wBAAwB;AAGlD,OAAO,KAAKC,IAAI,MAAM,cAAc;AAGpC,OAAO,KAAKC,MAAM,MAAM,gBAAgB;AAGxC,OAAO,KAAKC,SAAS,MAAM,yBAAyB;AAGpD,OAAO,KAAKC,QAAQ,MAAM,wBAAwB;AAGlD,OAAO,KAAKC,KAAK,MAAM,qBAAqB","ignoreList":[]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as Layer from "effect/Layer";
|
|
2
2
|
import { ImposterRepositoryLive } from "../repositories/ImposterRepository";
|
|
3
|
-
import { BunServerFactoryLive } from "../server/BunServer";
|
|
4
3
|
import { FiberManagerLive } from "../server/FiberManager";
|
|
5
4
|
import { ImposterServerLive } from "../server/ImposterServer";
|
|
5
|
+
import { NodeServerFactoryLive } from "../server/ServerFactory";
|
|
6
6
|
import { AppConfigLive } from "../services/AppConfig";
|
|
7
7
|
import { MetricsServiceLive } from "../services/MetricsService";
|
|
8
8
|
import { PortAllocatorLive } from "../services/PortAllocator";
|
|
@@ -14,7 +14,7 @@ const PortAllocatorWithDeps = /*#__PURE__*/PortAllocatorLive.pipe(/*#__PURE__*/L
|
|
|
14
14
|
// ProxyServiceLive depends on Uuid
|
|
15
15
|
const ProxyServiceWithDeps = /*#__PURE__*/ProxyServiceLive.pipe(/*#__PURE__*/Layer.provide(UuidLive));
|
|
16
16
|
// ImposterServerLive depends on FiberManager + ImposterRepository + ServerFactory + RequestLogger + Metrics + Proxy
|
|
17
|
-
const ImposterServerWithDeps = /*#__PURE__*/ImposterServerLive.pipe(/*#__PURE__*/Layer.provide(/*#__PURE__*/Layer.mergeAll(FiberManagerLive, ImposterRepositoryLive,
|
|
17
|
+
const ImposterServerWithDeps = /*#__PURE__*/ImposterServerLive.pipe(/*#__PURE__*/Layer.provide(/*#__PURE__*/Layer.mergeAll(FiberManagerLive, ImposterRepositoryLive, NodeServerFactoryLive, RequestLoggerLive, MetricsServiceLive, ProxyServiceWithDeps)));
|
|
18
18
|
// Compose all services
|
|
19
19
|
export const MainLayer = /*#__PURE__*/Layer.mergeAll(UuidLive, AppConfigLive, PortAllocatorWithDeps, ImposterRepositoryLive, FiberManagerLive, RequestLoggerLive, MetricsServiceLive, ImposterServerWithDeps);
|
|
20
20
|
//# sourceMappingURL=MainLayer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainLayer.js","names":["Layer","ImposterRepositoryLive","
|
|
1
|
+
{"version":3,"file":"MainLayer.js","names":["Layer","ImposterRepositoryLive","FiberManagerLive","ImposterServerLive","NodeServerFactoryLive","AppConfigLive","MetricsServiceLive","PortAllocatorLive","ProxyServiceLive","RequestLoggerLive","UuidLive","PortAllocatorWithDeps","pipe","provide","ProxyServiceWithDeps","ImposterServerWithDeps","mergeAll","MainLayer"],"sources":["../../../src/layers/MainLayer.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,SAASC,sBAAsB,QAAQ,oCAAoC;AAC3E,SAASC,gBAAgB,QAAQ,wBAAwB;AACzD,SAASC,kBAAkB,QAAQ,0BAA0B;AAC7D,SAASC,qBAAqB,QAAQ,yBAAyB;AAC/D,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,kBAAkB,QAAQ,4BAA4B;AAC/D,SAASC,iBAAiB,QAAQ,2BAA2B;AAC7D,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,iBAAiB,QAAQ,2BAA2B;AAC7D,SAASC,QAAQ,QAAQ,sBAAsB;AAE/C;AACA,MAAMC,qBAAqB,gBAAGJ,iBAAiB,CAACK,IAAI,cAACZ,KAAK,CAACa,OAAO,CAACR,aAAa,CAAC,CAAC;AAElF;AACA,MAAMS,oBAAoB,gBAAGN,gBAAgB,CAACI,IAAI,cAACZ,KAAK,CAACa,OAAO,CAACH,QAAQ,CAAC,CAAC;AAE3E;AACA,MAAMK,sBAAsB,gBAAGZ,kBAAkB,CAACS,IAAI,cACpDZ,KAAK,CAACa,OAAO,cACXb,KAAK,CAACgB,QAAQ,CACZd,gBAAgB,EAChBD,sBAAsB,EACtBG,qBAAqB,EACrBK,iBAAiB,EACjBH,kBAAkB,EAClBQ,oBAAoB,CACrB,CACF,CACF;AAED;AACA,OAAO,MAAMG,SAAS,gBAAGjB,KAAK,CAACgB,QAAQ,CACrCN,QAAQ,EACRL,aAAa,EACbM,qBAAqB,EACrBV,sBAAsB,EACtBC,gBAAgB,EAChBO,iBAAiB,EACjBH,kBAAkB,EAClBS,sBAAsB,CACvB","ignoreList":[]}
|
|
@@ -23,13 +23,17 @@ export const PaginationMeta = /*#__PURE__*/Schema.Struct({
|
|
|
23
23
|
offset: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative()),
|
|
24
24
|
hasMore: Schema.Boolean
|
|
25
25
|
});
|
|
26
|
-
export const ErrorCode = /*#__PURE__*/Schema.Union(
|
|
26
|
+
export const ErrorCode = /*#__PURE__*/Schema.Union(
|
|
27
|
+
/*#__PURE__*/
|
|
27
28
|
// Validation errors
|
|
28
|
-
Schema.Literal("VALIDATION_ERROR"), /*#__PURE__*/Schema.Literal("INVALID_ENDPOINT"),
|
|
29
|
+
Schema.Literal("VALIDATION_ERROR"), /*#__PURE__*/Schema.Literal("INVALID_ENDPOINT"),
|
|
30
|
+
/*#__PURE__*/
|
|
29
31
|
// Resource errors
|
|
30
|
-
Schema.Literal("IMPOSTER_NOT_FOUND"), /*#__PURE__*/Schema.Literal("PORT_IN_USE"), /*#__PURE__*/Schema.Literal("IMPOSTER_BUSY"),
|
|
32
|
+
Schema.Literal("IMPOSTER_NOT_FOUND"), /*#__PURE__*/Schema.Literal("PORT_IN_USE"), /*#__PURE__*/Schema.Literal("IMPOSTER_BUSY"),
|
|
33
|
+
/*#__PURE__*/
|
|
31
34
|
// System errors
|
|
32
|
-
Schema.Literal("SYSTEM_ERROR"), /*#__PURE__*/Schema.Literal("CONFIRMATION_REQUIRED"),
|
|
35
|
+
Schema.Literal("SYSTEM_ERROR"), /*#__PURE__*/Schema.Literal("CONFIRMATION_REQUIRED"),
|
|
36
|
+
/*#__PURE__*/
|
|
33
37
|
// Conflict errors
|
|
34
38
|
Schema.Literal("ENDPOINT_CONFLICT"));
|
|
35
39
|
export const ErrorDetails = /*#__PURE__*/Schema.Struct({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","names":["Clock","DateTime","Effect","Duration","Schema","ImposterStatus","Literal","Protocol","PositiveInteger","Number","pipe","int","positive","brand","NonEmptyString","String","minLength","PortNumber","between","PaginationQuery","Struct","limit","optionalWith","default","make","offset","nonNegative","PaginationMeta","total","hasMore","Boolean","ErrorCode","Union","ErrorDetails","code","message","field","optional","value","Unknown","details","Record","key","ErrorResponse","error","StatusFilter","ProtocolFilter","DateTimeSchema","DateTimeUtc","currentDateTime","map","currentTimeMillis","ms","unsafeMake","formatDurationAsUptime","duration","format"],"sources":["../../../src/schemas/common.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"common.js","names":["Clock","DateTime","Effect","Duration","Schema","ImposterStatus","Literal","Protocol","PositiveInteger","Number","pipe","int","positive","brand","NonEmptyString","String","minLength","PortNumber","between","PaginationQuery","Struct","limit","optionalWith","default","make","offset","nonNegative","PaginationMeta","total","hasMore","Boolean","ErrorCode","Union","ErrorDetails","code","message","field","optional","value","Unknown","details","Record","key","ErrorResponse","error","StatusFilter","ProtocolFilter","DateTimeSchema","DateTimeUtc","currentDateTime","map","currentTimeMillis","ms","unsafeMake","formatDurationAsUptime","duration","format"],"sources":["../../../src/schemas/common.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -9,8 +9,8 @@ import { MetricsService } from "../services/MetricsService";
|
|
|
9
9
|
import { ProxyService } from "../services/ProxyService";
|
|
10
10
|
import { RequestLogger } from "../services/RequestLogger";
|
|
11
11
|
import { makeUiRouter } from "../ui/UiRouter";
|
|
12
|
-
import { ServerFactory } from "./BunServer";
|
|
13
12
|
import { FiberManager } from "./FiberManager";
|
|
13
|
+
import { ServerFactory } from "./ServerFactory";
|
|
14
14
|
export class ImposterServerError extends Data.TaggedError("ImposterServerError") {}
|
|
15
15
|
export class ImposterServer extends Context.Tag("ImposterServer")() {}
|
|
16
16
|
export const ImposterServerLive = /*#__PURE__*/Layer.effect(ImposterServer, /*#__PURE__*/Effect.gen(function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImposterServer.js","names":["Context","Data","Effect","HashMap","Layer","Ref","Runtime","DateTime","ImposterConfig","extractRequestContext","findMatchingStub","buildResponse","makeResponseState","ImposterRepository","NonEmptyString","MetricsService","ProxyService","RequestLogger","makeUiRouter","ServerFactory","FiberManager","ImposterServerError","TaggedError","ImposterServer","Tag","ImposterServerLive","effect","gen","repo","fiberManager","serverFactory","requestLogger","metricsService","proxyService","stateMapRef","make","empty","start","id","record","get","config","stubsRef","stubs","proxyConfigRef","proxy","responseState","update","set","rt","runtime","runPromise","uiRouter","handler","request","uiResponse","startTime","Date","now","ctx","promise","stub","response","proxied","proxyConfig","url","URL","forward","pipe","catchTag","err","succeed","Response","JSON","stringify","error","target","targetUrl","reason","status","headers","mode","responseClone","clone","newStub","recordAsStub","addStub","catchAll","void","freshStubs","getStubs","method","path","responses","index","getNextIndex","length","responseMode","responseConfig","delay","undefined","sleep","respText","text","respHeaders","forEach","val","key","logBody","slice","duration","logEntry","crypto","randomUUID","imposterId","timestamp","unsafeMake","query","body","matchedStubId","log","recordRequest","catchAllCause","cause","details","String","fiberEffect","acquireRelease","try","create","port","fetch","catch","server","sync","stop","andThen","never","scoped","supervisedEffect","onError","remove","r","reset","removeImposter","updateStubs","stateMap","state","_tag","value","updateProxyConfig","isRunning"],"sources":["../../../src/server/ImposterServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ImposterServer.js","names":["Context","Data","Effect","HashMap","Layer","Ref","Runtime","DateTime","ImposterConfig","extractRequestContext","findMatchingStub","buildResponse","makeResponseState","ImposterRepository","NonEmptyString","MetricsService","ProxyService","RequestLogger","makeUiRouter","FiberManager","ServerFactory","ImposterServerError","TaggedError","ImposterServer","Tag","ImposterServerLive","effect","gen","repo","fiberManager","serverFactory","requestLogger","metricsService","proxyService","stateMapRef","make","empty","start","id","record","get","config","stubsRef","stubs","proxyConfigRef","proxy","responseState","update","set","rt","runtime","runPromise","uiRouter","handler","request","uiResponse","startTime","Date","now","ctx","promise","stub","response","proxied","proxyConfig","url","URL","forward","pipe","catchTag","err","succeed","Response","JSON","stringify","error","target","targetUrl","reason","status","headers","mode","responseClone","clone","newStub","recordAsStub","addStub","catchAll","void","freshStubs","getStubs","method","path","responses","index","getNextIndex","length","responseMode","responseConfig","delay","undefined","sleep","respText","text","respHeaders","forEach","val","key","logBody","slice","duration","logEntry","crypto","randomUUID","imposterId","timestamp","unsafeMake","query","body","matchedStubId","log","recordRequest","catchAllCause","cause","details","String","fiberEffect","acquireRelease","try","create","port","fetch","catch","server","sync","stop","andThen","never","scoped","supervisedEffect","onError","remove","r","reset","removeImposter","updateStubs","stateMap","state","_tag","value","updateProxyConfig","isRunning"],"sources":["../../../src/server/ImposterServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Context, Layer } from "effect";
|
|
2
|
+
import * as http from "node:http";
|
|
3
|
+
export class ServerFactory extends Context.Tag("ServerFactory")() {}
|
|
4
|
+
export const NodeServerFactoryLive = /*#__PURE__*/Layer.succeed(ServerFactory, {
|
|
5
|
+
create: options => {
|
|
6
|
+
const server = http.createServer(async (req, res) => {
|
|
7
|
+
try {
|
|
8
|
+
const url = `http://localhost:${options.port}${req.url}`;
|
|
9
|
+
const headers = new Headers();
|
|
10
|
+
for (const [key, val] of Object.entries(req.headers)) {
|
|
11
|
+
if (val) headers.set(key, Array.isArray(val) ? val.join(", ") : val);
|
|
12
|
+
}
|
|
13
|
+
let body;
|
|
14
|
+
if (req.method !== "GET" && req.method !== "HEAD") {
|
|
15
|
+
body = await new Promise(resolve => {
|
|
16
|
+
let data = "";
|
|
17
|
+
req.on("data", chunk => {
|
|
18
|
+
data += chunk.toString();
|
|
19
|
+
});
|
|
20
|
+
req.on("end", () => resolve(data));
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
const request = new Request(url, {
|
|
24
|
+
method: req.method ?? "GET",
|
|
25
|
+
headers,
|
|
26
|
+
...(body !== undefined && body !== "" ? {
|
|
27
|
+
body
|
|
28
|
+
} : {})
|
|
29
|
+
});
|
|
30
|
+
const response = await options.fetch(request);
|
|
31
|
+
const respHeaders = {};
|
|
32
|
+
response.headers.forEach((val, key) => {
|
|
33
|
+
respHeaders[key] = val;
|
|
34
|
+
});
|
|
35
|
+
res.writeHead(response.status, respHeaders);
|
|
36
|
+
const respBody = await response.text();
|
|
37
|
+
res.end(respBody);
|
|
38
|
+
} catch (err) {
|
|
39
|
+
res.writeHead(500);
|
|
40
|
+
res.end(JSON.stringify({
|
|
41
|
+
error: "Internal server error",
|
|
42
|
+
details: String(err)
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
server.listen(options.port);
|
|
47
|
+
return {
|
|
48
|
+
port: options.port,
|
|
49
|
+
stop: closeActive => {
|
|
50
|
+
if (closeActive && typeof server.closeAllConnections === "function") {
|
|
51
|
+
server.closeAllConnections();
|
|
52
|
+
}
|
|
53
|
+
server.close();
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
export const BunServerFactoryLive = /*#__PURE__*/Layer.succeed(ServerFactory, {
|
|
59
|
+
create: options => globalThis.Bun.serve(options)
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=ServerFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServerFactory.js","names":["Context","Layer","http","ServerFactory","Tag","NodeServerFactoryLive","succeed","create","options","server","createServer","req","res","url","port","headers","Headers","key","val","Object","entries","set","Array","isArray","join","body","method","Promise","resolve","data","on","chunk","toString","request","Request","undefined","response","fetch","respHeaders","forEach","writeHead","status","respBody","text","end","err","JSON","stringify","error","details","String","listen","stop","closeActive","closeAllConnections","close","BunServerFactoryLive","globalThis","Bun","serve"],"sources":["../../../src/server/ServerFactory.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "imposters",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "A service virtualization tool built with TypeScript and Effect",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -16,12 +16,6 @@
|
|
|
16
16
|
"jsonata": "^2.1.0",
|
|
17
17
|
"uuid": "^11.1.0"
|
|
18
18
|
},
|
|
19
|
-
"optionalDependencies": {
|
|
20
|
-
"@imposters/linux-x64": "0.1.0",
|
|
21
|
-
"@imposters/linux-arm64": "0.1.0",
|
|
22
|
-
"@imposters/darwin-x64": "0.1.0",
|
|
23
|
-
"@imposters/darwin-arm64": "0.1.0"
|
|
24
|
-
},
|
|
25
19
|
"bin": {
|
|
26
20
|
"imposters": "./bin/imposters"
|
|
27
21
|
},
|
|
@@ -180,11 +174,6 @@
|
|
|
180
174
|
"import": "./dist/esm/server/AdminServer.js",
|
|
181
175
|
"default": "./dist/cjs/server/AdminServer.js"
|
|
182
176
|
},
|
|
183
|
-
"./server/BunServer": {
|
|
184
|
-
"types": "./dist/dts/server/BunServer.d.ts",
|
|
185
|
-
"import": "./dist/esm/server/BunServer.js",
|
|
186
|
-
"default": "./dist/cjs/server/BunServer.js"
|
|
187
|
-
},
|
|
188
177
|
"./server/FiberManager": {
|
|
189
178
|
"types": "./dist/dts/server/FiberManager.d.ts",
|
|
190
179
|
"import": "./dist/esm/server/FiberManager.js",
|
|
@@ -195,6 +184,11 @@
|
|
|
195
184
|
"import": "./dist/esm/server/ImposterServer.js",
|
|
196
185
|
"default": "./dist/cjs/server/ImposterServer.js"
|
|
197
186
|
},
|
|
187
|
+
"./server/ServerFactory": {
|
|
188
|
+
"types": "./dist/dts/server/ServerFactory.d.ts",
|
|
189
|
+
"import": "./dist/esm/server/ServerFactory.js",
|
|
190
|
+
"default": "./dist/cjs/server/ServerFactory.js"
|
|
191
|
+
},
|
|
198
192
|
"./services/AppConfig": {
|
|
199
193
|
"types": "./dist/dts/services/AppConfig.d.ts",
|
|
200
194
|
"import": "./dist/esm/services/AppConfig.js",
|
|
@@ -370,15 +364,15 @@
|
|
|
370
364
|
"server/AdminServer": [
|
|
371
365
|
"./dist/dts/server/AdminServer.d.ts"
|
|
372
366
|
],
|
|
373
|
-
"server/BunServer": [
|
|
374
|
-
"./dist/dts/server/BunServer.d.ts"
|
|
375
|
-
],
|
|
376
367
|
"server/FiberManager": [
|
|
377
368
|
"./dist/dts/server/FiberManager.d.ts"
|
|
378
369
|
],
|
|
379
370
|
"server/ImposterServer": [
|
|
380
371
|
"./dist/dts/server/ImposterServer.d.ts"
|
|
381
372
|
],
|
|
373
|
+
"server/ServerFactory": [
|
|
374
|
+
"./dist/dts/server/ServerFactory.d.ts"
|
|
375
|
+
],
|
|
382
376
|
"services/AppConfig": [
|
|
383
377
|
"./dist/dts/services/AppConfig.d.ts"
|
|
384
378
|
],
|
package/src/cli/Commands.ts
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { Command, Options } from "@effect/cli"
|
|
2
2
|
import { NodeContext, NodeRuntime } from "@effect/platform-node"
|
|
3
3
|
import { Effect, Layer, Option } from "effect"
|
|
4
|
+
import { createRequire } from "node:module"
|
|
4
5
|
import { HandlerHttpClientLive } from "../client/HandlerHttpClient"
|
|
5
6
|
import { ImpostersClient, ImpostersClientLive } from "../client/ImpostersClient"
|
|
6
7
|
import { makeCompositeHandler } from "../server/AdminServer"
|
|
8
|
+
import { BunServerFactoryLive, NodeServerFactoryLive, ServerFactory } from "../server/ServerFactory"
|
|
7
9
|
import { loadConfigFile } from "./ConfigLoader"
|
|
8
10
|
|
|
11
|
+
const require = createRequire(import.meta.url)
|
|
12
|
+
const packageJson = require("imposters/package.json") as { version: string }
|
|
13
|
+
|
|
9
14
|
const configOption = Options.file("config").pipe(
|
|
10
15
|
Options.withAlias("c"),
|
|
11
16
|
Options.withDescription("Path to JSON config file"),
|
|
@@ -18,17 +23,24 @@ const portOption = Options.integer("port").pipe(
|
|
|
18
23
|
Options.optional
|
|
19
24
|
)
|
|
20
25
|
|
|
26
|
+
const runtimeOption = Options.choice("runtime", ["node", "bun"]).pipe(
|
|
27
|
+
Options.withDescription("Server runtime: node (default) or bun"),
|
|
28
|
+
Options.withDefault("node" as const)
|
|
29
|
+
)
|
|
30
|
+
|
|
21
31
|
const startCommand = Command.make(
|
|
22
32
|
"start",
|
|
23
|
-
{ config: configOption, port: portOption },
|
|
24
|
-
({ config, port }) =>
|
|
33
|
+
{ config: configOption, port: portOption, runtime: runtimeOption },
|
|
34
|
+
({ config, port, runtime }) =>
|
|
25
35
|
Effect.gen(function*() {
|
|
26
36
|
const adminPort = Option.isSome(port) ? port.value : Number(process.env.ADMIN_PORT ?? 2525)
|
|
27
37
|
|
|
28
38
|
const { dispose, handler } = makeCompositeHandler(adminPort)
|
|
29
|
-
const server = Bun.serve({ port: adminPort, fetch: handler })
|
|
30
39
|
|
|
31
|
-
|
|
40
|
+
const serverFactory = yield* ServerFactory
|
|
41
|
+
const server = serverFactory.create({ port: adminPort, fetch: handler })
|
|
42
|
+
|
|
43
|
+
console.log(`Imposters admin server running on http://localhost:${server.port} (runtime: ${runtime})`)
|
|
32
44
|
console.log(`Admin UI: http://localhost:${server.port}/_ui`)
|
|
33
45
|
|
|
34
46
|
// Load config and create imposters if config file provided
|
|
@@ -101,7 +113,9 @@ const startCommand = Command.make(
|
|
|
101
113
|
process.on("SIGINT", shutdown)
|
|
102
114
|
process.on("SIGTERM", shutdown)
|
|
103
115
|
})
|
|
104
|
-
})
|
|
116
|
+
}).pipe(
|
|
117
|
+
Effect.provide(runtime === "bun" ? BunServerFactoryLive : NodeServerFactoryLive)
|
|
118
|
+
)
|
|
105
119
|
)
|
|
106
120
|
|
|
107
121
|
const command = Command.make("imposters").pipe(
|
|
@@ -110,7 +124,7 @@ const command = Command.make("imposters").pipe(
|
|
|
110
124
|
|
|
111
125
|
export const run = Command.run(command, {
|
|
112
126
|
name: "imposters",
|
|
113
|
-
version:
|
|
127
|
+
version: packageJson.version
|
|
114
128
|
})
|
|
115
129
|
|
|
116
130
|
export const main = run(process.argv).pipe(
|
package/src/index.ts
CHANGED
|
@@ -93,15 +93,15 @@ export * as common from "./schemas/common.js"
|
|
|
93
93
|
export * as AdminServer from "./server/AdminServer.js"
|
|
94
94
|
|
|
95
95
|
|
|
96
|
-
export * as BunServer from "./server/BunServer.js"
|
|
97
|
-
|
|
98
|
-
|
|
99
96
|
export * as FiberManager from "./server/FiberManager.js"
|
|
100
97
|
|
|
101
98
|
|
|
102
99
|
export * as ImposterServer from "./server/ImposterServer.js"
|
|
103
100
|
|
|
104
101
|
|
|
102
|
+
export * as ServerFactory from "./server/ServerFactory.js"
|
|
103
|
+
|
|
104
|
+
|
|
105
105
|
export * as AppConfig from "./services/AppConfig.js"
|
|
106
106
|
|
|
107
107
|
|
package/src/layers/MainLayer.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as Layer from "effect/Layer"
|
|
2
2
|
import { ImposterRepositoryLive } from "../repositories/ImposterRepository"
|
|
3
|
-
import { BunServerFactoryLive } from "../server/BunServer"
|
|
4
3
|
import { FiberManagerLive } from "../server/FiberManager"
|
|
5
4
|
import { ImposterServerLive } from "../server/ImposterServer"
|
|
5
|
+
import { NodeServerFactoryLive } from "../server/ServerFactory"
|
|
6
6
|
import { AppConfigLive } from "../services/AppConfig"
|
|
7
7
|
import { MetricsServiceLive } from "../services/MetricsService"
|
|
8
8
|
import { PortAllocatorLive } from "../services/PortAllocator"
|
|
@@ -22,7 +22,7 @@ const ImposterServerWithDeps = ImposterServerLive.pipe(
|
|
|
22
22
|
Layer.mergeAll(
|
|
23
23
|
FiberManagerLive,
|
|
24
24
|
ImposterRepositoryLive,
|
|
25
|
-
|
|
25
|
+
NodeServerFactoryLive,
|
|
26
26
|
RequestLoggerLive,
|
|
27
27
|
MetricsServiceLive,
|
|
28
28
|
ProxyServiceWithDeps
|
|
@@ -11,8 +11,8 @@ import { MetricsService } from "../services/MetricsService"
|
|
|
11
11
|
import { ProxyService } from "../services/ProxyService"
|
|
12
12
|
import { RequestLogger } from "../services/RequestLogger"
|
|
13
13
|
import { makeUiRouter } from "../ui/UiRouter"
|
|
14
|
-
import { ServerFactory } from "./BunServer"
|
|
15
14
|
import { FiberManager } from "./FiberManager"
|
|
15
|
+
import { ServerFactory } from "./ServerFactory"
|
|
16
16
|
|
|
17
17
|
export class ImposterServerError extends Data.TaggedError("ImposterServerError")<{
|
|
18
18
|
readonly imposterId: string
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Context, Layer } from "effect"
|
|
2
|
+
import * as http from "node:http"
|
|
3
|
+
|
|
4
|
+
export interface ServerInstance {
|
|
5
|
+
readonly port: number
|
|
6
|
+
readonly stop: (closeActive: boolean) => void
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface ServerFactoryShape {
|
|
10
|
+
readonly create: (options: {
|
|
11
|
+
readonly port: number
|
|
12
|
+
readonly fetch: (request: Request) => Promise<Response>
|
|
13
|
+
}) => ServerInstance
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export class ServerFactory extends Context.Tag("ServerFactory")<ServerFactory, ServerFactoryShape>() {}
|
|
17
|
+
|
|
18
|
+
export const NodeServerFactoryLive = Layer.succeed(ServerFactory, {
|
|
19
|
+
create: (options): ServerInstance => {
|
|
20
|
+
const server = http.createServer(async (req, res) => {
|
|
21
|
+
try {
|
|
22
|
+
const url = `http://localhost:${options.port}${req.url}`
|
|
23
|
+
const headers = new Headers()
|
|
24
|
+
for (const [key, val] of Object.entries(req.headers)) {
|
|
25
|
+
if (val) headers.set(key, Array.isArray(val) ? val.join(", ") : val)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
let body: string | undefined
|
|
29
|
+
if (req.method !== "GET" && req.method !== "HEAD") {
|
|
30
|
+
body = await new Promise<string>((resolve) => {
|
|
31
|
+
let data = ""
|
|
32
|
+
req.on("data", (chunk: Buffer) => {
|
|
33
|
+
data += chunk.toString()
|
|
34
|
+
})
|
|
35
|
+
req.on("end", () => resolve(data))
|
|
36
|
+
})
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const request = new Request(url, {
|
|
40
|
+
method: req.method ?? "GET",
|
|
41
|
+
headers,
|
|
42
|
+
...(body !== undefined && body !== "" ? { body } : {})
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
const response = await options.fetch(request)
|
|
46
|
+
|
|
47
|
+
const respHeaders: Record<string, string> = {}
|
|
48
|
+
response.headers.forEach((val, key) => {
|
|
49
|
+
respHeaders[key] = val
|
|
50
|
+
})
|
|
51
|
+
res.writeHead(response.status, respHeaders)
|
|
52
|
+
const respBody = await response.text()
|
|
53
|
+
res.end(respBody)
|
|
54
|
+
} catch (err) {
|
|
55
|
+
res.writeHead(500)
|
|
56
|
+
res.end(JSON.stringify({ error: "Internal server error", details: String(err) }))
|
|
57
|
+
}
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
server.listen(options.port)
|
|
61
|
+
|
|
62
|
+
return {
|
|
63
|
+
port: options.port,
|
|
64
|
+
stop: (closeActive: boolean) => {
|
|
65
|
+
if (closeActive && typeof server.closeAllConnections === "function") {
|
|
66
|
+
server.closeAllConnections()
|
|
67
|
+
}
|
|
68
|
+
server.close()
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
})
|
|
73
|
+
|
|
74
|
+
export const BunServerFactoryLive = Layer.succeed(ServerFactory, {
|
|
75
|
+
create: (options) => (globalThis as any).Bun.serve(options)
|
|
76
|
+
})
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.ServerFactory = exports.BunServerFactoryLive = void 0;
|
|
7
|
-
var _effect = require("effect");
|
|
8
|
-
class ServerFactory extends _effect.Context.Tag("ServerFactory")() {}
|
|
9
|
-
exports.ServerFactory = ServerFactory;
|
|
10
|
-
const BunServerFactoryLive = exports.BunServerFactoryLive = /*#__PURE__*/_effect.Layer.succeed(ServerFactory, {
|
|
11
|
-
create: options => Bun.serve(options)
|
|
12
|
-
});
|
|
13
|
-
//# sourceMappingURL=BunServer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BunServer.js","names":["_effect","require","ServerFactory","Context","Tag","exports","BunServerFactoryLive","Layer","succeed","create","options","Bun","serve"],"sources":["../../../src/server/BunServer.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAcM,MAAOC,aAAc,SAAQC,eAAO,CAACC,GAAG,CAAC,eAAe,CAAC,EAAqC;AAAAC,OAAA,CAAAH,aAAA,GAAAA,aAAA;AAE7F,MAAMI,oBAAoB,GAAAD,OAAA,CAAAC,oBAAA,gBAAGC,aAAK,CAACC,OAAO,CAACN,aAAa,EAAE;EAC/DO,MAAM,EAAGC,OAAO,IAAKC,GAAG,CAACC,KAAK,CAACF,OAAO;CACvC,CAAC","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BunServer.d.ts","sourceRoot":"","sources":["../../../src/server/BunServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEvC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAA;CAC9C;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;QACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;KACxD,KAAK,cAAc,CAAA;CACrB;;AAED,qBAAa,aAAc,SAAQ,kBAAiE;CAAG;AAEvG,eAAO,MAAM,oBAAoB,0CAE/B,CAAA"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Context, Layer } from "effect";
|
|
2
|
-
export class ServerFactory extends Context.Tag("ServerFactory")() {}
|
|
3
|
-
export const BunServerFactoryLive = /*#__PURE__*/Layer.succeed(ServerFactory, {
|
|
4
|
-
create: options => Bun.serve(options)
|
|
5
|
-
});
|
|
6
|
-
//# sourceMappingURL=BunServer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BunServer.js","names":["Context","Layer","ServerFactory","Tag","BunServerFactoryLive","succeed","create","options","Bun","serve"],"sources":["../../../src/server/BunServer.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAO,EAAEC,KAAK,QAAQ,QAAQ;AAcvC,OAAM,MAAOC,aAAc,SAAQF,OAAO,CAACG,GAAG,CAAC,eAAe,CAAC,EAAqC;AAEpG,OAAO,MAAMC,oBAAoB,gBAAGH,KAAK,CAACI,OAAO,CAACH,aAAa,EAAE;EAC/DI,MAAM,EAAGC,OAAO,IAAKC,GAAG,CAACC,KAAK,CAACF,OAAO;CACvC,CAAC","ignoreList":[]}
|
package/src/server/BunServer.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Context, Layer } from "effect"
|
|
2
|
-
|
|
3
|
-
export interface ServerInstance {
|
|
4
|
-
readonly port: number
|
|
5
|
-
readonly stop: (closeActive: boolean) => void
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export interface ServerFactoryShape {
|
|
9
|
-
readonly create: (options: {
|
|
10
|
-
readonly port: number
|
|
11
|
-
readonly fetch: (request: Request) => Promise<Response>
|
|
12
|
-
}) => ServerInstance
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export class ServerFactory extends Context.Tag("ServerFactory")<ServerFactory, ServerFactoryShape>() {}
|
|
16
|
-
|
|
17
|
-
export const BunServerFactoryLive = Layer.succeed(ServerFactory, {
|
|
18
|
-
create: (options) => Bun.serve(options)
|
|
19
|
-
})
|