@outseta/react 0.3.0 → 0.3.2

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.
@@ -26,6 +26,33 @@ import type {
26
26
 
27
27
  import { customFetch } from '../../mutator';
28
28
 
29
+ // https://stackoverflow.com/questions/49579094/typescript-conditional-types-filter-out-readonly-properties-pick-only-requir/49579497#49579497
30
+ type IfEquals<X, Y, A = X, B = never> = (<T>() => T extends X ? 1 : 2) extends <
31
+ T,
32
+ >() => T extends Y ? 1 : 2
33
+ ? A
34
+ : B;
35
+
36
+ type WritableKeys<T> = {
37
+ [P in keyof T]-?: IfEquals<
38
+ { [Q in P]: T[P] },
39
+ { -readonly [Q in P]: T[P] },
40
+ P
41
+ >;
42
+ }[keyof T];
43
+
44
+ type UnionToIntersection<U> =
45
+ (U extends any ? (k: U)=>void : never) extends ((k: infer I)=>void) ? I : never;
46
+ type DistributeReadOnlyOverUnions<T> = T extends any ? NonReadonly<T> : never;
47
+
48
+ type Writable<T> = Pick<T, WritableKeys<T>>;
49
+ type NonReadonly<T> = [T] extends [UnionToIntersection<T>] ? {
50
+ [P in keyof Writable<T>]: T[P] extends object
51
+ ? NonReadonly<NonNullable<T[P]>>
52
+ : T[P];
53
+ } : DistributeReadOnlyOverUnions<T>;
54
+
55
+
29
56
 
30
57
  type SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];
31
58
 
@@ -106,7 +133,7 @@ export function useCaseGetAllCases<TData = Awaited<ReturnType<typeof caseGetAllC
106
133
  * @summary Adds a case into the support system.
107
134
  */
108
135
  export const caseAddCase = (
109
- caseAddCaseBody: CaseAddCaseBody,
136
+ caseAddCaseBody: NonReadonly<CaseAddCaseBody>,
110
137
  params?: CaseAddCaseParams,
111
138
  options?: SecondParameter<typeof customFetch>,signal?: AbortSignal
112
139
  ) => {
@@ -124,8 +151,8 @@ export const caseAddCase = (
124
151
 
125
152
 
126
153
  export const getCaseAddCaseMutationOptions = <TError = void,
127
- TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof caseAddCase>>, TError,{data: CaseAddCaseBody;params?: CaseAddCaseParams}, TContext>, request?: SecondParameter<typeof customFetch>}
128
- ): UseMutationOptions<Awaited<ReturnType<typeof caseAddCase>>, TError,{data: CaseAddCaseBody;params?: CaseAddCaseParams}, TContext> => {
154
+ TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof caseAddCase>>, TError,{data: NonReadonly<CaseAddCaseBody>;params?: CaseAddCaseParams}, TContext>, request?: SecondParameter<typeof customFetch>}
155
+ ): UseMutationOptions<Awaited<ReturnType<typeof caseAddCase>>, TError,{data: NonReadonly<CaseAddCaseBody>;params?: CaseAddCaseParams}, TContext> => {
129
156
 
130
157
  const mutationKey = ['caseAddCase'];
131
158
  const {mutation: mutationOptions, request: requestOptions} = options ?
@@ -137,7 +164,7 @@ const {mutation: mutationOptions, request: requestOptions} = options ?
137
164
 
138
165
 
139
166
 
140
- const mutationFn: MutationFunction<Awaited<ReturnType<typeof caseAddCase>>, {data: CaseAddCaseBody;params?: CaseAddCaseParams}> = (props) => {
167
+ const mutationFn: MutationFunction<Awaited<ReturnType<typeof caseAddCase>>, {data: NonReadonly<CaseAddCaseBody>;params?: CaseAddCaseParams}> = (props) => {
141
168
  const {data,params} = props ?? {};
142
169
 
143
170
  return caseAddCase(data,params,requestOptions)
@@ -149,18 +176,18 @@ const {mutation: mutationOptions, request: requestOptions} = options ?
149
176
  return { mutationFn, ...mutationOptions }}
150
177
 
151
178
  export type CaseAddCaseMutationResult = NonNullable<Awaited<ReturnType<typeof caseAddCase>>>
152
- export type CaseAddCaseMutationBody = CaseAddCaseBody
179
+ export type CaseAddCaseMutationBody = NonReadonly<CaseAddCaseBody>
153
180
  export type CaseAddCaseMutationError = void
154
181
 
155
182
  /**
156
183
  * @summary Adds a case into the support system.
157
184
  */
158
185
  export const useCaseAddCase = <TError = void,
159
- TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof caseAddCase>>, TError,{data: CaseAddCaseBody;params?: CaseAddCaseParams}, TContext>, request?: SecondParameter<typeof customFetch>}
186
+ TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof caseAddCase>>, TError,{data: NonReadonly<CaseAddCaseBody>;params?: CaseAddCaseParams}, TContext>, request?: SecondParameter<typeof customFetch>}
160
187
  ): UseMutationResult<
161
188
  Awaited<ReturnType<typeof caseAddCase>>,
162
189
  TError,
163
- {data: CaseAddCaseBody;params?: CaseAddCaseParams},
190
+ {data: NonReadonly<CaseAddCaseBody>;params?: CaseAddCaseParams},
164
191
  TContext
165
192
  > => {
166
193