fix: 🐛 Readded mock, ts config to api
This commit is contained in:
parent
c88b25aa10
commit
82e0c6f961
|
@ -0,0 +1,81 @@
|
||||||
|
import { CookieJar, Cookie as TCookie } from 'tough-cookie'
|
||||||
|
|
||||||
|
export interface Cookie {
|
||||||
|
name: string
|
||||||
|
value: string
|
||||||
|
path?: string
|
||||||
|
domain?: string
|
||||||
|
version?: string
|
||||||
|
expires?: string
|
||||||
|
secure?: boolean
|
||||||
|
httpOnly?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Cookies {
|
||||||
|
[key: string]: Cookie
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CookieManagerStatic {
|
||||||
|
set(url: string, cookie: Cookie, useWebKit?: boolean): Promise<boolean>
|
||||||
|
setFromResponse(url: string, cookie: string): Promise<boolean>
|
||||||
|
|
||||||
|
get(url: string, useWebKit?: boolean): Promise<Cookies>
|
||||||
|
|
||||||
|
clearAll(useWebKit?: boolean): Promise<boolean>
|
||||||
|
}
|
||||||
|
|
||||||
|
const convertTtoC = (cookie: string | TCookie): Cookie => {
|
||||||
|
if (typeof cookie === 'string') {
|
||||||
|
return convertTtoC(TCookie.parse(cookie) as TCookie)
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
name: cookie.key,
|
||||||
|
value: cookie.value,
|
||||||
|
domain: cookie.domain || undefined,
|
||||||
|
expires:
|
||||||
|
cookie.expires === 'Infinity' ? undefined : cookie.expires.toUTCString(),
|
||||||
|
httpOnly: cookie.httpOnly || undefined,
|
||||||
|
path: cookie.path || undefined,
|
||||||
|
secure: cookie.secure,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const convertCtoT = (cookie: Cookie): TCookie =>
|
||||||
|
new TCookie({
|
||||||
|
key: cookie.name,
|
||||||
|
value: cookie.value,
|
||||||
|
domain: cookie.domain,
|
||||||
|
expires: cookie.expires ? new Date(cookie.expires) : undefined,
|
||||||
|
httpOnly: cookie.httpOnly || false,
|
||||||
|
path: cookie.path,
|
||||||
|
secure: cookie.secure || false,
|
||||||
|
})
|
||||||
|
const convertCookies = (cookies: TCookie[]): Cookies =>
|
||||||
|
cookies.reduce(
|
||||||
|
(map, cookie) => ({
|
||||||
|
...map,
|
||||||
|
[cookie.key]: convertTtoC(cookie),
|
||||||
|
}),
|
||||||
|
{} as Cookies
|
||||||
|
)
|
||||||
|
|
||||||
|
const jar = new CookieJar()
|
||||||
|
const CookieManager: CookieManagerStatic = {
|
||||||
|
clearAll: async () => {
|
||||||
|
await jar.removeAllCookies()
|
||||||
|
return true
|
||||||
|
},
|
||||||
|
get: async (url) => {
|
||||||
|
const cookies = await jar.getCookies(url)
|
||||||
|
return convertCookies(cookies)
|
||||||
|
},
|
||||||
|
set: async (url, cookie) => {
|
||||||
|
await jar.setCookie(convertCtoT(cookie), url)
|
||||||
|
return true
|
||||||
|
},
|
||||||
|
setFromResponse: async (url, cookie) => {
|
||||||
|
await jar.setCookie(cookie, url)
|
||||||
|
return true
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
export default CookieManager
|
|
@ -1,4 +1,5 @@
|
||||||
{
|
{
|
||||||
|
"extends": "../../tsconfig.base.json",
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"target": "ES6",
|
"target": "ES6",
|
||||||
"module": "CommonJS",
|
"module": "CommonJS",
|
||||||
|
|
Loading…
Reference in New Issue