Skip to content

Commit

Permalink
refactor(aspida): delete URLSearchParams polyfill
Browse files Browse the repository at this point in the history
  • Loading branch information
solufa committed Jan 9, 2020
1 parent 4388a46 commit 53b2184
Show file tree
Hide file tree
Showing 5 changed files with 95 additions and 24 deletions.
11 changes: 2 additions & 9 deletions packages/aspida-fetch/index.ts
@@ -1,14 +1,7 @@
import {
AspidaClient,
AspidaRequest,
HttpMethod,
dataToURLString,
headersToObject,
BasicHeaders
} from 'aspida'
import { AspidaClient, AspidaRequest, HttpMethod, dataToURLString, headersToObject } from 'aspida'

export default (client = fetch, init?: RequestInit): AspidaClient => ({
fetch<T, U extends BasicHeaders>(url: string, method: HttpMethod, request?: AspidaRequest) {
fetch<T, U>(url: string, method: HttpMethod, request?: AspidaRequest) {
const send = <V>(fn: (res: Response) => Promise<V>) => async () => {
const res = await client(
`${url}${request?.query ? `?${dataToURLString(request.query)}` : ''}`,
Expand Down
4 changes: 2 additions & 2 deletions packages/aspida-ky/index.ts
@@ -1,8 +1,8 @@
import { AspidaClient, AspidaRequest, HttpMethod, headersToObject, BasicHeaders } from 'aspida'
import { AspidaClient, AspidaRequest, HttpMethod, headersToObject } from 'aspida'
import ky, { Options } from 'ky'

export default (client = ky, options?: Options): AspidaClient => ({
fetch<T, U extends BasicHeaders>(url: string, method: HttpMethod, request?: AspidaRequest) {
fetch<T, U>(url: string, method: HttpMethod, request?: AspidaRequest) {
const send = <V>(fn: (res: Response) => Promise<V>) => async () => {
const res = await client(url, {
...options,
Expand Down
3 changes: 1 addition & 2 deletions packages/aspida/package.json
Expand Up @@ -29,7 +29,6 @@
"dependencies": {
"chokidar": "^3.3.1",
"minimist": "^1.2.0",
"ts-morph": "^6.0.2",
"url-search-params-polyfill": "^7.0.1"
"ts-morph": "^6.0.2"
}
}
16 changes: 7 additions & 9 deletions packages/aspida/src/index.ts
@@ -1,11 +1,9 @@
import 'url-search-params-polyfill'

export type BasicHeaders = { [key: string]: string }
export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'PATCH'
export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'PATCH' | 'OPTIONS'

type BasicHeaders = { [key: string]: string }
export interface AspidaRequest<T = any> {
query?: { [key: string]: any }
headers?: BasicHeaders
query?: any
headers?: any
body?: T
}

Expand All @@ -17,7 +15,7 @@ export interface AspidaResponse<T, U> {
}

export interface AspidaClient {
fetch: <T, U extends BasicHeaders = BasicHeaders>(
fetch: <T, U = BasicHeaders>(
url: string,
method: HttpMethod,
request?: AspidaRequest
Expand All @@ -31,8 +29,8 @@ export interface AspidaClient {
}
}

export function headersToObject<T extends BasicHeaders>(headers: Headers) {
return [...headers.entries()].reduce((prev, [key, val]) => ({ ...prev, [key]: val }), {}) as T
export function headersToObject<T>(headers: Headers) {
return [...headers.entries()].reduce((prev, [key, val]) => ({ ...prev, [key]: val }), {} as T)
}

function dataToFormData(data: { [key: string]: any }) {
Expand Down
85 changes: 83 additions & 2 deletions yarn.lock
Expand Up @@ -530,7 +530,7 @@
resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==

"@types/glob@^7.1.1":
"@types/glob@*", "@types/glob@^7.1.1":
version "7.1.1"
resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575"
integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==
Expand Down Expand Up @@ -591,6 +591,14 @@
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==

"@types/rimraf@^2.0.3":
version "2.0.3"
resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-2.0.3.tgz#0199a46af106729ba14213fda7b981278d8c84f2"
integrity sha512-dZfyfL/u9l/oi984hEXdmAjX3JHry7TLWw43u1HQ8HhPv6KtfxnrZ3T/bleJ0GEvnk9t5sM7eePkgMqz3yBcGg==
dependencies:
"@types/glob" "*"
"@types/node" "*"

"@types/semver@^6.0.1":
version "6.2.0"
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-6.2.0.tgz#d688d574400d96c5b0114968705366f431831e1a"
Expand Down Expand Up @@ -1112,6 +1120,11 @@ cache-base@^1.0.1:
union-value "^1.0.0"
unset-value "^1.0.0"

call-me-maybe@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
integrity sha1-JtII6onje1y95gJQoV8DHBak1ms=

caller-callsite@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
Expand Down Expand Up @@ -1338,7 +1351,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
dependencies:
delayed-stream "~1.0.0"

commander@^2.20.0, commander@~2.20.3:
commander@^2.20.0, commander@^2.7.1, commander@~2.20.3:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
Expand Down Expand Up @@ -3634,6 +3647,15 @@ json-parse-better-errors@^1.0.1:
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==

json-schema-ref-parser@^7.1.3:
version "7.1.3"
resolved "https://registry.yarnpkg.com/json-schema-ref-parser/-/json-schema-ref-parser-7.1.3.tgz#21468cd180b2f1939ce93fe291f743b441e97d49"
integrity sha512-/Lmyl0PW27dOmCO03PI339+1gs4Z2PlqIyUgzIOtoRp08zkkMCB30TRbdppbPO7WWzZX0uT98HqkDiZSujkmbA==
dependencies:
call-me-maybe "^1.0.1"
js-yaml "^3.13.1"
ono "^6.0.0"

json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
Expand Down Expand Up @@ -3871,6 +3893,16 @@ lodash._reinterpolate@^3.0.0:
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=

lodash.get@^4.4.2:
version "4.4.2"
resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=

lodash.isequal@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=

lodash.ismatch@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37"
Expand Down Expand Up @@ -4378,6 +4410,21 @@ onetime@^5.1.0:
dependencies:
mimic-fn "^2.1.0"

ono@^6.0.0:
version "6.0.1"
resolved "https://registry.yarnpkg.com/ono/-/ono-6.0.1.tgz#1bc14ffb8af1e5db3f7397f75b88e4a2d64bbd71"
integrity sha512-5rdYW/106kHqLeG22GE2MHKq+FlsxMERZev9DCzQX1zwkxnFwBivSn5i17a5O/rDmOJOdf4Wyt80UZljzx9+DA==

openapi-schemas@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/openapi-schemas/-/openapi-schemas-1.0.3.tgz#0fa2f19e44ce8a1cdab9c9f616df4babe1aa026b"
integrity sha512-KtMWcK2VtOS+nD8RKSIyScJsj8JrmVWcIX7Kjx4xEHijFYuvMTDON8WfeKOgeSb4uNG6UsqLj5Na7nKbSav9RQ==

openapi-types@^1.3.5:
version "1.3.5"
resolved "https://registry.yarnpkg.com/openapi-types/-/openapi-types-1.3.5.tgz#6718cfbc857fe6c6f1471f65b32bdebb9c10ce40"
integrity sha512-11oi4zYorsgvg5yBarZplAqbpev5HkuVNPlZaPTknPDzAynq+lnJdXAmruGWP0s+dNYZS7bjM+xrTpJw7184Fg==

opencollective-postinstall@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89"
Expand Down Expand Up @@ -5593,6 +5640,24 @@ supports-color@^7.1.0:
dependencies:
has-flag "^4.0.0"

swagger-methods@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/swagger-methods/-/swagger-methods-2.0.2.tgz#5891d5536e54d5ba8e7ae1007acc9170f41c9590"
integrity sha512-/RNqvBZkH8+3S/FqBPejHxJxZenaYq3MrpeXnzi06aDIS39Mqf5YCUNb/ZBjsvFFt8h9FxfKs8EXPtcYdfLiRg==

swagger-parser@^8.0.3:
version "8.0.4"
resolved "https://registry.yarnpkg.com/swagger-parser/-/swagger-parser-8.0.4.tgz#ddec68723d13ee3748dd08fd5b7ba579327595da"
integrity sha512-KGRdAaMJogSEB7sPKI31ptKIWX8lydEDAwWgB4pBMU7zys5cd54XNhoPSVlTxG/A3LphjX47EBn9j0dOGyzWbA==
dependencies:
call-me-maybe "^1.0.1"
json-schema-ref-parser "^7.1.3"
ono "^6.0.0"
openapi-schemas "^1.0.2"
openapi-types "^1.3.5"
swagger-methods "^2.0.1"
z-schema "^4.2.2"

symbol-observable@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
Expand Down Expand Up @@ -5916,6 +5981,11 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"

validator@^11.0.0:
version "11.1.0"
resolved "https://registry.yarnpkg.com/validator/-/validator-11.1.0.tgz#ac18cac42e0aa5902b603d7a5d9b7827e2346ac4"
integrity sha512-qiQ5ktdO7CD6C/5/mYV4jku/7qnqzjrxb3C/Q5wR3vGGinHTgJZN/TdFT3ZX4vXhX2R1PXx42fB1cn5W+uJ4lg==

verror@1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
Expand Down Expand Up @@ -6135,3 +6205,14 @@ yn@^3.0.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==

z-schema@^4.2.2:
version "4.2.2"
resolved "https://registry.yarnpkg.com/z-schema/-/z-schema-4.2.2.tgz#43fa2709ae5016885db50e1ce31b254b72c0886c"
integrity sha512-7bGR7LohxSdlK1EOdvA/OHksvKGE4jTLSjd8dBj9YKT0S43N9pdMZ0Z7GZt9mHrBFhbNTRh3Ky6Eu2MHsPJe8g==
dependencies:
lodash.get "^4.4.2"
lodash.isequal "^4.5.0"
validator "^11.0.0"
optionalDependencies:
commander "^2.7.1"

0 comments on commit 53b2184

Please sign in to comment.