diff --git a/packages/aspida-fetch/index.ts b/packages/aspida-fetch/index.ts index 608e6d1d..a60e014c 100644 --- a/packages/aspida-fetch/index.ts +++ b/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(url: string, method: HttpMethod, request?: AspidaRequest) { + fetch(url: string, method: HttpMethod, request?: AspidaRequest) { const send = (fn: (res: Response) => Promise) => async () => { const res = await client( `${url}${request?.query ? `?${dataToURLString(request.query)}` : ''}`, diff --git a/packages/aspida-ky/index.ts b/packages/aspida-ky/index.ts index 9c63fab1..9499c8bf 100644 --- a/packages/aspida-ky/index.ts +++ b/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(url: string, method: HttpMethod, request?: AspidaRequest) { + fetch(url: string, method: HttpMethod, request?: AspidaRequest) { const send = (fn: (res: Response) => Promise) => async () => { const res = await client(url, { ...options, diff --git a/packages/aspida/package.json b/packages/aspida/package.json index 86f2833a..1b844731 100644 --- a/packages/aspida/package.json +++ b/packages/aspida/package.json @@ -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" } } diff --git a/packages/aspida/src/index.ts b/packages/aspida/src/index.ts index 395ac544..ef61b744 100644 --- a/packages/aspida/src/index.ts +++ b/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 { - query?: { [key: string]: any } - headers?: BasicHeaders + query?: any + headers?: any body?: T } @@ -17,7 +15,7 @@ export interface AspidaResponse { } export interface AspidaClient { - fetch: ( + fetch: ( url: string, method: HttpMethod, request?: AspidaRequest @@ -31,8 +29,8 @@ export interface AspidaClient { } } -export function headersToObject(headers: Headers) { - return [...headers.entries()].reduce((prev, [key, val]) => ({ ...prev, [key]: val }), {}) as T +export function headersToObject(headers: Headers) { + return [...headers.entries()].reduce((prev, [key, val]) => ({ ...prev, [key]: val }), {} as T) } function dataToFormData(data: { [key: string]: any }) { diff --git a/yarn.lock b/yarn.lock index d6fd3ae5..3a875f9b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -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== @@ -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" @@ -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" @@ -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== @@ -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" @@ -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" @@ -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" @@ -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" @@ -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" @@ -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"