Provide chainable mock for supabase.from when not configured to avoid loading hangs
cgen-515a21feaa744d9990d68533b41ebbe8
This commit is contained in:
parent
118f94e221
commit
d35c4bbeea
1 changed files with 27 additions and 5 deletions
|
|
@ -132,12 +132,34 @@ export const supabase = new Proxy(supabaseClient || {}, {
|
||||||
if (isSupabaseConfigured && target && typeof target.from === 'function') {
|
if (isSupabaseConfigured && target && typeof target.from === 'function') {
|
||||||
return target.from.bind(target);
|
return target.from.bind(target);
|
||||||
}
|
}
|
||||||
return (table: string) => ({
|
|
||||||
select: () => ({ error: null, data: [] }),
|
// Chainable mock query builder to prevent runtime errors when Supabase is unavailable
|
||||||
insert: () => ({ error: null, data: [] }),
|
const createMockBuilder = (initialData: any[] | any = []) => {
|
||||||
update: () => ({ error: null, data: [] }),
|
let rows = Array.isArray(initialData) ? initialData : [initialData];
|
||||||
delete: () => ({ error: null, data: [] })
|
const builder: any = {
|
||||||
|
select: () => builder,
|
||||||
|
insert: () => builder,
|
||||||
|
update: () => builder,
|
||||||
|
delete: () => builder,
|
||||||
|
eq: () => builder,
|
||||||
|
order: () => builder,
|
||||||
|
limit: () => builder,
|
||||||
|
single: async () => ({ data: rows[0] ?? null, error: null }),
|
||||||
|
then: undefined, // prevent accidental Promise behavior
|
||||||
|
};
|
||||||
|
return builder;
|
||||||
|
};
|
||||||
|
|
||||||
|
const createMockTable = (table: string) => ({
|
||||||
|
select: (_cols?: any, _opts?: any) => createMockBuilder([]),
|
||||||
|
insert: (payload?: any) => createMockBuilder(
|
||||||
|
Array.isArray(payload) ? payload : payload ? [payload] : [],
|
||||||
|
),
|
||||||
|
update: (payload?: any) => createMockBuilder(payload || {}),
|
||||||
|
delete: () => createMockBuilder([]),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return (table: string) => createMockTable(table);
|
||||||
}
|
}
|
||||||
|
|
||||||
return target[prop];
|
return target[prop];
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue