Skip to content

Commit 293f632

Browse files
committed
refactor: remove contract test got dependency
1 parent 327a7f7 commit 293f632

6 files changed

Lines changed: 35 additions & 62 deletions

File tree

packages/sdk/server-node/contract-tests/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@
1515
"@launchdarkly/js-contract-test-utils": "workspace:^",
1616
"@launchdarkly/node-server-sdk": "workspace:^",
1717
"body-parser": "^1.19.0",
18-
"express": "^4.17.1",
19-
"got": "14.4.7"
18+
"express": "^4.17.1"
2019
},
2120
"devDependencies": {
2221
"@types/body-parser": "^1.19.2",

packages/sdk/server-node/contract-tests/src/BigSegmentTestStore.ts

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import got from 'got';
2-
31
interface BigSegmentMetadata {
42
lastUpToDate?: number;
53
}
@@ -20,19 +18,18 @@ export default class BigSegmentTestStore {
2018
}
2119

2220
async getMetadata(): Promise<BigSegmentMetadata> {
23-
const data = await got.get(`${this._callbackUri}/getMetadata`, { retry: { limit: 0 } }).json();
21+
const response = await fetch(`${this._callbackUri}/getMetadata`);
22+
const data = await response.json();
2423
return data as BigSegmentMetadata;
2524
}
2625

2726
async getUserMembership(contextHash: string): Promise<Record<string, boolean> | undefined> {
28-
const data = await got
29-
.post(`${this._callbackUri}/getMembership`, {
30-
retry: { limit: 0 },
31-
json: {
32-
contextHash,
33-
},
34-
})
35-
.json();
27+
const response = await fetch(`${this._callbackUri}/getMembership`, {
28+
method: 'POST',
29+
headers: { 'Content-Type': 'application/json' },
30+
body: JSON.stringify({ contextHash }),
31+
});
32+
const data = await response.json();
3633
return (data as BigSegmentMembership)?.values;
3734
}
3835

packages/sdk/server-node/contract-tests/src/sdkClientEntity.ts

Lines changed: 20 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import got from 'got';
2-
31
import {
42
CommandParams,
53
CreateInstanceParams,
@@ -184,11 +182,11 @@ function getExecution(order: string) {
184182
}
185183
}
186184

187-
function makeMigrationPostOptions(payload: any) {
185+
function makeMigrationPostOptions(payload: any): RequestInit {
188186
if (payload) {
189-
return { body: payload };
187+
return { method: 'POST', body: payload };
190188
}
191-
return {};
189+
return { method: 'POST' };
192190
}
193191

194192
function contextOrUser(
@@ -342,44 +340,36 @@ export async function newSdkClientEntity(options: CreateInstanceParams): Promise
342340
check: migrationOperation.trackConsistency ? (a, b) => a === b : undefined,
343341
readNew: async (payload) => {
344342
try {
345-
const res = await got.post(
346-
migrationOperation.newEndpoint,
347-
makeMigrationPostOptions(payload),
348-
);
349-
return LDMigrationSuccess(res.body);
343+
const res = await fetch(migrationOperation.newEndpoint, makeMigrationPostOptions(payload));
344+
if (!res.ok) { throw new Error(`HTTP ${res.status}`); }
345+
return LDMigrationSuccess(await res.text());
350346
} catch (err: any) {
351347
return LDMigrationError(err.message);
352348
}
353349
},
354350
writeNew: async (payload) => {
355351
try {
356-
const res = await got.post(
357-
migrationOperation.newEndpoint,
358-
makeMigrationPostOptions(payload),
359-
);
360-
return LDMigrationSuccess(res.body);
352+
const res = await fetch(migrationOperation.newEndpoint, makeMigrationPostOptions(payload));
353+
if (!res.ok) { throw new Error(`HTTP ${res.status}`); }
354+
return LDMigrationSuccess(await res.text());
361355
} catch (err: any) {
362356
return LDMigrationError(err.message);
363357
}
364358
},
365359
readOld: async (payload) => {
366360
try {
367-
const res = await got.post(
368-
migrationOperation.oldEndpoint,
369-
makeMigrationPostOptions(payload),
370-
);
371-
return LDMigrationSuccess(res.body);
361+
const res = await fetch(migrationOperation.oldEndpoint, makeMigrationPostOptions(payload));
362+
if (!res.ok) { throw new Error(`HTTP ${res.status}`); }
363+
return LDMigrationSuccess(await res.text());
372364
} catch (err: any) {
373365
return LDMigrationError(err.message);
374366
}
375367
},
376368
writeOld: async (payload) => {
377369
try {
378-
const res = await got.post(
379-
migrationOperation.oldEndpoint,
380-
makeMigrationPostOptions(payload),
381-
);
382-
return LDMigrationSuccess(res.body);
370+
const res = await fetch(migrationOperation.oldEndpoint, makeMigrationPostOptions(payload));
371+
if (!res.ok) { throw new Error(`HTTP ${res.status}`); }
372+
return LDMigrationSuccess(await res.text());
383373
} catch (err: any) {
384374
return LDMigrationError(err.message);
385375
}
@@ -423,14 +413,11 @@ export async function newSdkClientEntity(options: CreateInstanceParams): Promise
423413
const eventName = 'update';
424414

425415
const handler = (eventParams: { key: string }) => {
426-
got
427-
.post(p.callbackUri, {
428-
json: {
429-
listenerId: p.listenerId,
430-
flagKey: eventParams.key,
431-
},
432-
})
433-
.catch(() => {});
416+
fetch(p.callbackUri, {
417+
method: 'POST',
418+
headers: { 'Content-Type': 'application/json' },
419+
body: JSON.stringify({ listenerId: p.listenerId, flagKey: eventParams.key }),
420+
}).catch(() => {});
434421
};
435422

436423
const existing = listeners.get(p.listenerId);

packages/tooling/contract-test-utils/package.json

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,23 +40,18 @@
4040
},
4141
"peerDependencies": {
4242
"@launchdarkly/js-client-sdk-common": "workspace:^",
43-
"@launchdarkly/js-server-sdk-common": "workspace:^",
44-
"got": "14.4.7"
43+
"@launchdarkly/js-server-sdk-common": "workspace:^"
4544
},
4645
"peerDependenciesMeta": {
4746
"@launchdarkly/js-client-sdk-common": {
4847
"optional": true
4948
},
5049
"@launchdarkly/js-server-sdk-common": {
5150
"optional": true
52-
},
53-
"got": {
54-
"optional": true
5551
}
5652
},
5753
"devDependencies": {
5854
"@types/node": "^18.11.9",
59-
"got": "14.4.7",
6055
"typescript": "^4.9.0"
6156
}
6257
}

packages/tooling/contract-test-utils/src/server-side/TestHook.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1-
import got from 'got';
21
import { integrations, LDEvaluationDetail } from '@launchdarkly/js-server-sdk-common';
32
import { BaseTestHook } from '../shared/BaseTestHook.js';
43

54
export default class TestHook extends BaseTestHook implements integrations.Hook {
65
protected async _safePost(body: unknown): Promise<void> {
76
try {
8-
await got.post(this._endpoint, { json: body });
7+
await fetch(this._endpoint, {
8+
method: 'POST',
9+
headers: { 'Content-Type': 'application/json' },
10+
body: JSON.stringify(body),
11+
});
912
} catch {
1013
// The test could move on before the post, so we are ignoring
1114
// failed posts.
Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,5 @@
11
{
22
"extends": "./tsconfig.json",
3-
"compilerOptions": {
4-
// 'got' is a devDependency; this path alias is needed because TypeScript's
5-
// 'node' moduleResolution does not follow exports maps for ESM-only packages.
6-
"baseUrl": ".",
7-
"paths": {
8-
"got": ["../../../node_modules/got/dist/source"]
9-
}
10-
},
113
"include": ["src/**/*"],
124
"exclude": ["dist", "node_modules", "src/client.ts", "src/client-side/**"]
135
}

0 commit comments

Comments
 (0)