-
Notifications
You must be signed in to change notification settings - Fork 299
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Farzin/R&D/80379/Extract cashier hooks into packages #6854
Changes from 4 commits
c34bed0
1d739b2
8d8a4ca
03df02c
afbce6a
4765967
f76c3f6
dc28a05
68fc5d1
ab267a1
c234a44
e1bd482
6e9e4a8
3393eb3
11a5787
2114a54
dab9407
e854c73
b44ad0b
3fe2b0c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
const baseConfigForPackages = require('../../jest.config.base'); | ||
|
||
module.exports = { | ||
...baseConfigForPackages, | ||
}; |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
{ | ||
"name": "@deriv/api", | ||
"private": true, | ||
"version": "1.0.0", | ||
"main": "src/index.ts", | ||
"dependencies": { | ||
"@deriv/shared": "^1.0.0", | ||
"react": "^16.14.0" | ||
}, | ||
"devDependencies": { | ||
"@deriv/api-types": "^1.0.54", | ||
"@testing-library/user-event": "^13.2.1", | ||
"@testing-library/react": "^12.0.0", | ||
"typescript": "^4.6.3" | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
export { default as useWS } from './useWS'; | ||
export { default as useSubscription } from './useSubscription'; |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{ | ||
"extends": "../../tsconfig.json", | ||
"compilerOptions": { | ||
"paths": { | ||
"@deriv/*": ["../*/src"] | ||
}, | ||
"baseUrl": "./" | ||
}, | ||
"include": ["src", "types.ts"] | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,126 @@ | ||
import type { | ||
BalanceRequest, | ||
BalanceResponse, | ||
CashierInformationRequest, | ||
CashierInformationResponse, | ||
CryptocurrencyConfigurationsRequest, | ||
CryptocurrencyConfigurationsResponse, | ||
ExchangeRatesRequest, | ||
ExchangeRatesResponse, | ||
NewVirtualMoneyAccountRequest, | ||
NewVirtualMoneyAccountResponse, | ||
P2POrderInformationRequest, | ||
P2POrderInformationResponse, | ||
PaymentAgentDetailsRequest, | ||
PaymentAgentDetailsResponse, | ||
PaymentAgentListRequest, | ||
PaymentAgentListResponse, | ||
PaymentAgentTransferRequest, | ||
PaymentAgentTransferResponse, | ||
PaymentAgentWithdrawRequest, | ||
PaymentAgentWithdrawResponse, | ||
PingRequest, | ||
PingResponse, | ||
ServerStatusRequest, | ||
ServerStatusResponse, | ||
TermsAndConditionsApprovalRequest, | ||
TermsAndConditionsApprovalResponse, | ||
TicksStreamRequest, | ||
TicksStreamResponse, | ||
TransferBetweenAccountsRequest, | ||
TransferBetweenAccountsResponse, | ||
VerifyEmailRequest, | ||
VerifyEmailResponse, | ||
} from '@deriv/api-types'; | ||
|
||
export type TSocketEndpoints = { | ||
ping: { | ||
request: PingRequest; | ||
response: PingResponse; | ||
}; | ||
verify_email: { | ||
request: VerifyEmailRequest; | ||
response: VerifyEmailResponse; | ||
}; | ||
exchange_rates: { | ||
request: ExchangeRatesRequest; | ||
response: ExchangeRatesResponse; | ||
}; | ||
p2p_order_info: { | ||
request: P2POrderInformationRequest; | ||
response: P2POrderInformationResponse; | ||
}; | ||
website_status: { | ||
request: ServerStatusRequest; | ||
response: ServerStatusResponse; | ||
}; | ||
tnc_approval: { | ||
request: TermsAndConditionsApprovalRequest; | ||
response: TermsAndConditionsApprovalResponse; | ||
}; | ||
cashier: { | ||
request: CashierInformationRequest; | ||
response: CashierInformationResponse; | ||
}; | ||
crypto_config: { | ||
request: CryptocurrencyConfigurationsRequest; | ||
response: CryptocurrencyConfigurationsResponse; | ||
}; | ||
paymentagent_transfer: { | ||
request: PaymentAgentTransferRequest; | ||
response: PaymentAgentTransferResponse; | ||
}; | ||
paymentagent_list: { | ||
request: PaymentAgentListRequest; | ||
response: PaymentAgentListResponse; | ||
}; | ||
paymentagent_details: { | ||
request: PaymentAgentDetailsRequest; | ||
response: PaymentAgentDetailsResponse; | ||
}; | ||
paymentagent_withdraw: { | ||
request: PaymentAgentWithdrawRequest; | ||
response: PaymentAgentWithdrawResponse; | ||
}; | ||
transfer_between_accounts: { | ||
request: TransferBetweenAccountsRequest; | ||
response: TransferBetweenAccountsResponse; | ||
}; | ||
balance: { | ||
request: BalanceRequest; | ||
response: BalanceResponse; | ||
}; | ||
ticks: { | ||
request: TicksStreamRequest; | ||
response: TicksStreamResponse; | ||
}; | ||
new_account_virtual: { | ||
request: NewVirtualMoneyAccountRequest; | ||
response: NewVirtualMoneyAccountResponse; | ||
}; | ||
}; | ||
|
||
export type TSocketEndpointNames = keyof TSocketEndpoints; | ||
|
||
export type TSocketSubscribableEndpointNames = | ||
| KeysMatching<TSocketEndpoints, { request: { subscribe?: number } }> | ||
| 'exchange_rates'; | ||
|
||
export type TSocketResponse<T extends TSocketEndpointNames> = TSocketEndpoints[T]['response']; | ||
|
||
export type TSocketResponseData<T extends TSocketEndpointNames> = TSocketResponse<T>[T extends 'ticks' ? 'tick' : T]; | ||
|
||
export type TSocketRequest<T extends TSocketEndpointNames> = TSocketEndpoints[T]['request']; | ||
|
||
type TSocketRequestCleaned<T extends TSocketEndpointNames> = Omit< | ||
TSocketRequest<T>, | ||
(T extends KeysMatching<TSocketRequest<T>, 1> ? T : never) | 'passthrough' | 'req_id' | 'subscribe' | ||
>; | ||
|
||
export type TSocketRequestProps<T extends TSocketEndpointNames> = TSocketRequestCleaned<T> extends Record<string, never> | ||
? never | ||
: TSocketRequestCleaned<T>; | ||
|
||
export type KeysMatching<T, V> = { | ||
[K in keyof T]-?: T[K] extends V ? K : never; | ||
}[keyof T]; |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
import type { TRootStore } from '@deriv/stores/types'; | ||
import type CashierStore from './src/stores/cashier-store'; | ||
|
||
declare module '@deriv/stores' { | ||
export function useStore(): TRootStore & { | ||
modules: { | ||
cashier: CashierStore; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Here we override the In the future cashier will have its own stores scoped to cashier instead of putting them in the root store so we will be removing this part. |
||
}; | ||
}; | ||
} |
This file was deleted.
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,12 @@ | ||
export * from './client-store.types'; | ||
export * from './common-store.types'; | ||
export * from './root-store.types'; | ||
export * from './ui-store.types'; | ||
import { TRootStore as TRootStoreBase } from '@deriv/stores/types'; | ||
import type CashierStore from '../../stores/cashier-store'; | ||
|
||
export type TRootStore = TRootStoreBase & { | ||
modules: { | ||
cashier: CashierStore; | ||
}; | ||
}; | ||
Comment on lines
+4
to
+8
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same here, We override the |
||
|
||
export type TClientStore = TRootStore['client']; | ||
export type TCommonStore = TRootStore['common']; | ||
export type TUiStore = TRootStore['ui']; | ||
Comment on lines
+10
to
+12
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Just re-exporting the types as they are used directly inside cashier components, Once we remove the |
This file was deleted.
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -15,5 +15,5 @@ | |
"outDir": "./dist", | ||
"baseUrl": "./" | ||
}, | ||
"include": ["src"] | ||
"include": ["src", "@deriv-stores.d.ts"] | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This package will be replaced by
@deriv/deriv-api
in the future as we move to TS and probably will haveuseWS
anduseSubscription
hooks inside the@deriv/deriv-api
package itself.I've extracted
useWS
anduseSubscription
hooks from thecashier
to this package so other packages canreuse
these hooks.