Skip to content

Commit 594f7cd

Browse files
authored
fix: remove problematic omit.js dependency (#6172)
* fix: don't reference `.default` imported ESM default I'm not sure why this even works, but it doesn't via bun, webpack, and many in other cases. Fixes #5613. * fix: remove faulty omit.js package See benjycui/omit.js#10 and #5613
1 parent 297177f commit 594f7cd

File tree

6 files changed

+31
-7
lines changed

6 files changed

+31
-7
lines changed

package-lock.json

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/js-client/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545
"lodash-es": "^4.17.21",
4646
"micro-api-client": "^3.3.0",
4747
"node-fetch": "^3.0.0",
48-
"omit.js": "^2.0.2",
4948
"p-wait-for": "^5.0.0",
5049
"qs": "^6.9.6"
5150
},

packages/js-client/src/methods/response.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { JSONHTTPError, TextHTTPError } from 'micro-api-client'
2-
import omit from 'omit.js'
2+
3+
import omit from '../omit.js'
34

45
// Read and parse the HTTP response
56
export const parseResponse = async function (response) {
@@ -44,7 +45,7 @@ const addFallbackErrorMessage = function (error, textResponse) {
4445
}
4546

4647
export const getFetchError = function (error, url, opts) {
47-
const data = omit.default(opts, ['Authorization'])
48+
const data = omit(opts, ['Authorization'])
4849
if (error.name !== 'FetchError') {
4950
error.name = 'FetchError'
5051
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import test from 'ava'
2+
3+
import omit from './omit.js'
4+
5+
test('creates a shallow copy', (t) => {
6+
const obj = { name: 'Benjy' }
7+
const copy = omit(obj, [])
8+
t.not(obj, copy)
9+
t.deepEqual(obj, copy)
10+
})
11+
12+
test('returns an object without the specified fields', (t) => {
13+
const obj = { name: 'Benjy', age: 18 }
14+
t.deepEqual(omit(obj, ['age']), { name: 'Benjy' })
15+
t.deepEqual(omit(obj, ['name', 'age']), {})
16+
})

packages/js-client/src/omit.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
export default function omit<T extends Record<string | number | symbol, unknown>, K extends keyof T>(
2+
obj: T,
3+
keys: K[],
4+
): Omit<T, K> {
5+
const shallowCopy = { ...obj }
6+
for (const key of keys) {
7+
delete shallowCopy[key]
8+
}
9+
return shallowCopy
10+
}

packages/js-client/src/operations.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
import omit from 'omit.js'
2-
1+
import omit from './omit.js'
32
import { openApiSpec } from './open_api.js'
43

54
// Retrieve all OpenAPI operations
65
export const getOperations = function () {
76
return Object.entries(openApiSpec.paths).flatMap(([path, pathItem]) => {
8-
const operations = omit.default(pathItem, ['parameters'])
7+
const operations = omit(pathItem, ['parameters'])
98
return Object.entries(operations).map(([method, operation]) => {
109
const parameters = getParameters(pathItem.parameters, operation.parameters)
1110
return { ...operation, verb: method, path, parameters }

0 commit comments

Comments
 (0)