gemi 0.85.0 → 0.86.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,11 +17,33 @@ type Methods = {
17
17
  [K in keyof RPC as K extends `DELETE:${infer P}` ? P : never]: RPC[K];
18
18
  };
19
19
  };
20
+ /**
21
+ * How a hook treats a `trigger` that starts while another is in flight.
22
+ *
23
+ * - `"latest"` (the default): the newest request wins. An older request that
24
+ * settles afterwards is dropped: its callbacks don't run, it writes no state
25
+ * and its `trigger` resolves `undefined`. Right for forms and edits, where a
26
+ * newer submit supersedes the older one.
27
+ * - `"parallel"`: every request stands on its own. Each one runs its callbacks
28
+ * and resolves its own `trigger`, whatever else is in flight (issue #719).
29
+ *
30
+ * Neither mode aborts the older request; only `cancel()` does.
31
+ */
32
+ export type MutationConcurrency = "latest" | "parallel";
20
33
  type Config<T> = {
21
34
  autoInvalidate?: boolean;
22
35
  onSuccess: (data: T) => void;
23
36
  onError: (error: MutationError) => void;
24
37
  onCanceled?: () => void;
38
+ concurrency?: MutationConcurrency;
39
+ };
40
+ /**
41
+ * Callbacks for one `trigger` call. They run after the hook's own, and only
42
+ * when the hook's would: in `"latest"` mode a superseded call runs neither.
43
+ */
44
+ export type MutationCallConfig<T> = {
45
+ onSuccess?: (data: T) => void;
46
+ onError?: (error: MutationError) => void;
25
47
  };
26
48
  type Data<M extends keyof Methods, K extends keyof Methods[M]> = Methods[M][K] extends ApiRouterHandler<any, infer T, any> ? UnwrapPromise<T> : never;
27
49
  type Body<M extends keyof Methods, K extends keyof Methods[M]> = Methods[M][K] extends ApiRouterHandler<infer T, any, any> ? T : never;
@@ -36,10 +58,11 @@ export declare function useMutation<M extends keyof Methods, K extends keyof Met
36
58
  data: T;
37
59
  error: MutationError;
38
60
  loading: boolean;
61
+ pending: number;
39
62
  formData: FormData;
40
63
  cancel: () => void;
41
64
  trigger: {
42
- (input?: U): Promise<T | undefined>;
65
+ (input?: U, call?: MutationCallConfig<T>): Promise<T | undefined>;
43
66
  formData(formData: FormData): Promise<T>;
44
67
  };
45
68
  };
@@ -52,10 +75,11 @@ export declare function usePost<K extends keyof Methods["POST"], T = Data<"POST"
52
75
  data: Data<"POST", K>;
53
76
  error: MutationError;
54
77
  loading: boolean;
78
+ pending: number;
55
79
  formData: FormData;
56
80
  cancel: () => void;
57
81
  trigger: {
58
- (input?: Body<"POST", K>): Promise<Data<"POST", K>>;
82
+ (input?: Body<"POST", K>, call?: MutationCallConfig<Data<"POST", K>>): Promise<Data<"POST", K>>;
59
83
  formData(formData: FormData): Promise<Data<"POST", K>>;
60
84
  };
61
85
  };
@@ -68,10 +92,11 @@ export declare function usePut<K extends keyof Methods["PUT"], T = Data<"PUT", K
68
92
  data: Data<"PUT", K>;
69
93
  error: MutationError;
70
94
  loading: boolean;
95
+ pending: number;
71
96
  formData: FormData;
72
97
  cancel: () => void;
73
98
  trigger: {
74
- (input?: Body<"PUT", K>): Promise<Data<"PUT", K>>;
99
+ (input?: Body<"PUT", K>, call?: MutationCallConfig<Data<"PUT", K>>): Promise<Data<"PUT", K>>;
75
100
  formData(formData: FormData): Promise<Data<"PUT", K>>;
76
101
  };
77
102
  };
@@ -84,10 +109,11 @@ export declare function usePatch<K extends keyof Methods["PATCH"], T = Data<"PAT
84
109
  data: Data<"PATCH", K>;
85
110
  error: MutationError;
86
111
  loading: boolean;
112
+ pending: number;
87
113
  formData: FormData;
88
114
  cancel: () => void;
89
115
  trigger: {
90
- (input?: Body<"PATCH", K>): Promise<Data<"PATCH", K>>;
116
+ (input?: Body<"PATCH", K>, call?: MutationCallConfig<Data<"PATCH", K>>): Promise<Data<"PATCH", K>>;
91
117
  formData(formData: FormData): Promise<Data<"PATCH", K>>;
92
118
  };
93
119
  };
@@ -100,10 +126,11 @@ export declare function useDelete<K extends keyof Methods["DELETE"], T = Data<"D
100
126
  data: Data<"DELETE", K>;
101
127
  error: MutationError;
102
128
  loading: boolean;
129
+ pending: number;
103
130
  formData: FormData;
104
131
  cancel: () => void;
105
132
  trigger: {
106
- (input?: Body<"DELETE", K>): Promise<Data<"DELETE", K>>;
133
+ (input?: Body<"DELETE", K>, call?: MutationCallConfig<Data<"DELETE", K>>): Promise<Data<"DELETE", K>>;
107
134
  formData(formData: FormData): Promise<Data<"DELETE", K>>;
108
135
  };
109
136
  };
@@ -111,7 +138,7 @@ export declare function useUpload<K extends keyof Methods["POST"], T = Data<"POS
111
138
  options?: {
112
139
  params?: Partial<ParseParams<K>>;
113
140
  },
114
- config?: Partial<Config<T>>
141
+ config?: Partial<Omit<Config<T>, "concurrency">>
115
142
  ]): {
116
143
  state: "done" | "error" | "idle" | "uploading";
117
144
  progress: number;
@@ -1 +1 @@
1
- {"version":3,"file":"useMutation.d.ts","sourceRoot":"","sources":["../../client/useMutation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMutation.d.ts","sourceRoot":"","sources":["../../client/useMutation.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{wa as I}from"../chunk-8z37k28d.js";import{xa as A}from"../chunk-dadygfkf.js";import{Ag as H,Bg as O,Cg as W,xg as b,zg as V}from"../chunk-gx0x772p.js";import{Gg as k}from"../chunk-cbycz5z3.js";import"../chunk-ndat0nf0.js";import{Ng as $}from"../chunk-9tsw1bmt.js";var X=Symbol.for("gemi.server.devGeneration"),L={graceMs:1e4,providerTimeoutMs:5000};class Q{app;inFlight=0;waiters=new Set;constructor(z){this.app=z}track(z){return async(B,J)=>{this.inFlight++;try{return await z(B,J)}finally{if(this.inFlight--,this.inFlight===0)this.wake()}}}get pending(){return this.inFlight}async retire({graceMs:z,providerTimeoutMs:B}){try{await this.idle(z),await Promise.resolve().then(()=>this.app.shutdown({timeoutMs:B}))}catch(J){Z(J)}}idle(z){if(this.inFlight===0)return Promise.resolve();return new Promise((B)=>{let J=()=>{clearTimeout(K),this.waiters.delete(J),B()},K=setTimeout(J,z);this.waiters.add(J)})}wake(){for(let z of this.waiters)z()}}function Y(z,B=L){let J=globalThis,K=J[X];if(J[X]=z,!K||K===z||typeof K.retire!=="function")return Promise.resolve();let _=K.retire.bind(K);return Promise.resolve().then(()=>_(B)).catch(Z)}function Z(z){console.error("[gemi] Shutting down the application a reload replaced failed:",z)}class P{app;instrumentation;handleSignals;server;stopping;settings;constructor(z){this.app=new A({kernel:z.kernel}),this.handleSignals=z.handleSignals??!0,this.instrumentation=O(z.instrumentation??((B,J)=>J(B)))}async start(){process.env.ROOT_DIR=k();let z=Bun.env.NODE_ENV==="production";if(z){if(this.handleSignals)W(()=>this.stop());this.settings=V()}try{await this.app.waitForBoot()}catch(B){if(!z)this.app.shutdown({timeoutMs:L.providerTimeoutMs});throw B}if(z){let{httpProd:B}=await import("../chunk-2k5kyk0h.js");this.server=await B(this.app,this.instrumentation.bind(this))}else{I();let{httpDev:B}=await import("../chunk-6k2czkkh.js"),J=new Q(this.app);this.server=await B(this.app,J.track(this.instrumentation.bind(this))),Y(J)}return this.server}stop(z={}){return this.stopping??=H({server:this.server,shutdownProviders:(B)=>this.app.shutdown(B),settings:{...this.settings??V(),...z}}),this.stopping}}export{b as isShuttingDown,P as Server};
2
+ import{wa as I}from"../chunk-8z37k28d.js";import{xa as A}from"../chunk-dadygfkf.js";import{Ag as H,Bg as O,Cg as W,xg as b,zg as V}from"../chunk-gx0x772p.js";import{Gg as k}from"../chunk-cbycz5z3.js";import"../chunk-ndat0nf0.js";import{Ng as $}from"../chunk-9tsw1bmt.js";var X=Symbol.for("gemi.server.devGeneration"),L={graceMs:1e4,providerTimeoutMs:5000};class Q{app;inFlight=0;waiters=new Set;constructor(z){this.app=z}track(z){return async(B,J)=>{this.inFlight++;try{return await z(B,J)}finally{if(this.inFlight--,this.inFlight===0)this.wake()}}}get pending(){return this.inFlight}async retire({graceMs:z,providerTimeoutMs:B}){try{await this.idle(z),await Promise.resolve().then(()=>this.app.shutdown({timeoutMs:B}))}catch(J){Z(J)}}idle(z){if(this.inFlight===0)return Promise.resolve();return new Promise((B)=>{let J=()=>{clearTimeout(K),this.waiters.delete(J),B()},K=setTimeout(J,z);this.waiters.add(J)})}wake(){for(let z of this.waiters)z()}}function Y(z,B=L){let J=globalThis,K=J[X];if(J[X]=z,!K||K===z||typeof K.retire!=="function")return Promise.resolve();let _=K.retire.bind(K);return Promise.resolve().then(()=>_(B)).catch(Z)}function Z(z){console.error("[gemi] Shutting down the application a reload replaced failed:",z)}class P{app;instrumentation;handleSignals;server;stopping;settings;constructor(z){this.app=new A({kernel:z.kernel}),this.handleSignals=z.handleSignals??!0,this.instrumentation=O(z.instrumentation??((B,J)=>J(B)))}async start(){process.env.ROOT_DIR=k();let z=Bun.env.NODE_ENV==="production";if(z){if(this.handleSignals)W(()=>this.stop());this.settings=V()}try{await this.app.waitForBoot()}catch(B){if(!z)this.app.shutdown({timeoutMs:L.providerTimeoutMs});throw B}if(z){let{httpProd:B}=await import("../chunk-eptv0nvv.js");this.server=await B(this.app,this.instrumentation.bind(this))}else{I();let{httpDev:B}=await import("../chunk-2dzqrf0z.js"),J=new Q(this.app);this.server=await B(this.app,J.track(this.instrumentation.bind(this))),Y(J)}return this.server}stop(z={}){return this.stopping??=H({server:this.server,shutdownProviders:(B)=>this.app.shutdown(B),settings:{...this.settings??V(),...z}}),this.stopping}}export{b as isShuttingDown,P as Server};
3
3
 
4
4
  //# debugId=1F7A55197DAF148D64756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gemi",
3
- "version": "0.85.0",
3
+ "version": "0.86.0",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "Enes Tufekci <enes@gemijs.dev>",