Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import { Client } from './client'
  2. const applicationJson = 'application/json'
  3. export interface MethodSpec {
  4. path: string,
  5. method?: string,
  6. body?: {},
  7. queryString?: {},
  8. contentType?: string,
  9. accept?: string,
  10. strict?: boolean,
  11. }
  12. export function method (client: Client) {
  13. return function methodGenerator (spec: MethodSpec) {
  14. const {
  15. path,
  16. method = 'GET',
  17. body = {},
  18. queryString = {},
  19. contentType = applicationJson,
  20. accept = applicationJson,
  21. strict = true
  22. } = spec
  23. // It's ok for args here to be of implicit type any[]
  24. // @ts-ignore
  25. return function (...args) {
  26. // TODO: replace path params with args
  27. // TODO: reject if args doesn't match path params if strict
  28. // TODO: last argument is allowed to be object, JSON payload
  29. // TODO: reject if body doesn't match body spec if strict
  30. return client.request(method, path, {})
  31. }
  32. }
  33. }
  34. export default method