client.ts 735 B

1234567891011121314151617181920212223242526272829
  1. export * from "./gen/types.gen.js"
  2. export { type Config as OpencodeClientConfig, OpencodeClient }
  3. import { createClient } from "./gen/client/client.gen.js"
  4. import { type Config } from "./gen/client/types.gen.js"
  5. import { OpencodeClient } from "./gen/sdk.gen.js"
  6. export function createOpencodeClient(config?: Config & { directory?: string }) {
  7. if (!config?.fetch) {
  8. config = {
  9. ...config,
  10. fetch: (req) => {
  11. // @ts-ignore
  12. req.timeout = false
  13. return fetch(req)
  14. },
  15. }
  16. }
  17. if (config?.directory) {
  18. config.headers = {
  19. ...config.headers,
  20. "x-opencode-directory": config.directory,
  21. }
  22. }
  23. const client = createClient(config)
  24. return new OpencodeClient({ client })
  25. }