HonoH
Hono17mo ago
jacob

Issues with Cloudflare KV

Hey everyone,

I'm trying to make my KV namespaces accessible in my services using dep injection with tsyringe. Is this something that is known to be unsupported?

I found that after injecting the kv namespace the put() and get() methods seemingly blocks execution of anything coming after it, without any errors and no data being set or retrieved.

I would prefer for my services to have the kv namespaces available instead of having to pass it from the request handler (hono with trpc) through to my repository class.

I have a middleware for Hono set up like this.

export const injectServices = createMiddleware(async (c: Context<{
  Bindings: ContextBindings,
  Variables: ContextVariables
}, any, {}>, next) => {
  const env = validateEnv(c);

  container.register('env', { useValue: env });
  container.register('tokenStore', { useValue: c.env.TOKEN /* KV Namespace */ })
  container.register('vision', GCPVisionService)

  // REPOS
  c.set('repositories', {
    VisionRepository: container.resolve(VisionRepository)
  });

  await next();
})
Was this page helpful?