瀏覽代碼

fix duplicate plugin subscriptions

Dax Raad 3 月之前
父節點
當前提交
894cbaa51e
共有 1 個文件被更改,包括 6 次插入2 次删除
  1. 6 2
      packages/opencode/src/project/instance.ts

+ 6 - 2
packages/opencode/src/project/instance.ts

@@ -12,7 +12,11 @@ const context = Context.create<Context>("instance")
 const cache = new Map<string, Context>()
 const cache = new Map<string, Context>()
 
 
 export const Instance = {
 export const Instance = {
-  async provide<R>(input: { directory: string; init?: () => Promise<any>; fn: () => R }): Promise<R> {
+  async provide<R>(input: {
+    directory: string
+    init?: () => Promise<any>
+    fn: () => R
+  }): Promise<R> {
     let existing = cache.get(input.directory)
     let existing = cache.get(input.directory)
     if (!existing) {
     if (!existing) {
       const project = await Project.fromDirectory(input.directory)
       const project = await Project.fromDirectory(input.directory)
@@ -24,8 +28,8 @@ export const Instance = {
     }
     }
     return context.provide(existing, async () => {
     return context.provide(existing, async () => {
       if (!cache.has(input.directory)) {
       if (!cache.has(input.directory)) {
-        await input.init?.()
         cache.set(input.directory, existing)
         cache.set(input.directory, existing)
+        await input.init?.()
       }
       }
       return input.fn()
       return input.fn()
     })
     })