@schmock/cli 1.7.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +9 -51
- package/dist/index.js +34150 -5
- package/package.json +3 -3
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAaxC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,IAAI,IAAI,CAAC;CACf;AA0ED,wBAAsB,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CA0E7E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAqC3E;AAqBD,MAAM,WAAW,WAAW;IAC1B,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,SAAS,CAAC,CAQpB;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,UAAU,EACnB,gBAAgB,EAAE,MAAM,SAAS,EACjC,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,GACpC,WAAW,CA2Bb;AAED,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDvD"}
|
package/dist/cli.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { readFileSync, watch } from "node:fs";
|
|
3
3
|
import { createServer } from "node:http";
|
|
4
4
|
import { parseArgs } from "node:util";
|
|
5
|
-
import { schmock, toHttpMethod } from "@schmock/core";
|
|
5
|
+
import { collectBody, parseNodeHeaders, parseNodeQuery, schmock, toHttpMethod, writeSchmockResponse, } from "@schmock/core";
|
|
6
6
|
import { openapi } from "@schmock/openapi";
|
|
7
7
|
const CORS_HEADERS = {
|
|
8
8
|
"access-control-allow-origin": "*",
|
|
@@ -90,56 +90,14 @@ export async function createCliServer(options) {
|
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
92
92
|
const method = toHttpMethod(req.method ?? "GET");
|
|
93
|
-
const headers =
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
query[key] = value;
|
|
102
|
-
});
|
|
103
|
-
const chunks = [];
|
|
104
|
-
req.on("data", (chunk) => chunks.push(chunk));
|
|
105
|
-
req.on("end", () => {
|
|
106
|
-
const raw = Buffer.concat(chunks).toString();
|
|
107
|
-
let body;
|
|
108
|
-
const contentType = headers["content-type"] ?? "";
|
|
109
|
-
if (raw && contentType.includes("json")) {
|
|
110
|
-
try {
|
|
111
|
-
body = JSON.parse(raw);
|
|
112
|
-
}
|
|
113
|
-
catch {
|
|
114
|
-
body = raw;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
else if (raw) {
|
|
118
|
-
body = raw;
|
|
119
|
-
}
|
|
120
|
-
void mock
|
|
121
|
-
.handle(method, path, { headers, body, query })
|
|
122
|
-
.then((schmockResponse) => {
|
|
123
|
-
const responseHeaders = {
|
|
124
|
-
...schmockResponse.headers,
|
|
125
|
-
};
|
|
126
|
-
if (cors) {
|
|
127
|
-
Object.assign(responseHeaders, CORS_HEADERS);
|
|
128
|
-
}
|
|
129
|
-
if (!responseHeaders["content-type"] &&
|
|
130
|
-
schmockResponse.body !== undefined &&
|
|
131
|
-
typeof schmockResponse.body !== "string") {
|
|
132
|
-
responseHeaders["content-type"] = "application/json";
|
|
133
|
-
}
|
|
134
|
-
const responseBody = schmockResponse.body === undefined
|
|
135
|
-
? undefined
|
|
136
|
-
: typeof schmockResponse.body === "string"
|
|
137
|
-
? schmockResponse.body
|
|
138
|
-
: JSON.stringify(schmockResponse.body);
|
|
139
|
-
res.writeHead(schmockResponse.status, responseHeaders);
|
|
140
|
-
res.end(responseBody);
|
|
141
|
-
});
|
|
142
|
-
});
|
|
93
|
+
const headers = parseNodeHeaders(req);
|
|
94
|
+
const query = parseNodeQuery(url);
|
|
95
|
+
void collectBody(req, headers).then((body) => mock
|
|
96
|
+
.handle(method, path, { headers, body, query })
|
|
97
|
+
.then((schmockResponse) => {
|
|
98
|
+
const extra = cors ? CORS_HEADERS : undefined;
|
|
99
|
+
writeSchmockResponse(res, schmockResponse, extra);
|
|
100
|
+
}));
|
|
143
101
|
});
|
|
144
102
|
return new Promise((resolve, reject) => {
|
|
145
103
|
httpServer.on("error", reject);
|