supabase-dataobject-core 1.0.1 → 1.1.1

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.
package/README.md CHANGED
@@ -39,7 +39,8 @@ initializeDataObjectManager({
39
39
 
40
40
  // Create a data object
41
41
  const userDataObject = await createDataObject('users', {
42
- viewName: 'users',
42
+ viewName: 'users_with_details',
43
+ tableName: 'users',
43
44
  canInsert: true,
44
45
  canUpdate: true,
45
46
  canDelete: false
@@ -64,7 +65,8 @@ if (users) {
64
65
  import { createDataObject } from 'supabase-dataobject-core';
65
66
 
66
67
  const ordersDataObject = await createDataObject('pendingOrders', {
67
- viewName: 'orders',
68
+ viewName: 'orders_and_payments',
69
+ tableName: 'orders',
68
70
  fields: [
69
71
  { name: 'id', type: 'number' },
70
72
  { name: 'customer_name', type: 'string' },
@@ -153,6 +155,7 @@ await refreshDataObject('myData');
153
155
  - `delete(id)`: Delete a record
154
156
  - `dispose()`: Clean up the data object
155
157
  - `onDataChanged(callback)`: Listen for data changes
158
+ - `on('eventName', options)`: Data object 'on' events
156
159
 
157
160
  #### Example
158
161
 
@@ -179,6 +182,12 @@ if (dataObject) {
179
182
  const unsubscribe = dataObject.onDataChanged((data) => {
180
183
  console.log('Data updated:', data);
181
184
  });
185
+
186
+ dataObject.lifeCycleEvents.on('beforeUpdate', (options, record, updates) => {
187
+ if (record.status === 'locked') {
188
+ options.cancelEvent = true;
189
+ }
190
+ });
182
191
 
183
192
  // Clean up listener
184
193
  unsubscribe();
@@ -191,7 +200,8 @@ if (dataObject) {
191
200
 
192
201
  ```typescript
193
202
  interface DataObjectOptions {
194
- viewName: string; // Table or view name
203
+ viewName: string; // View name
204
+ tableName?: string; // Table name - required for CRUD operations
195
205
  fields?: DataObjectField[]; // Specific fields to select
196
206
  whereClauses?: WhereClause[]; // Filter conditions
197
207
  sort?: SortConfig; // Sorting configuration
@@ -1,5 +1,5 @@
1
1
  import { SupabaseClient } from '@supabase/supabase-js';
2
- import { DataObjectOptions, DataObjectRecord, SupabaseConfig } from './types';
2
+ import { DataObjectOptions, DataObjectRecord, SupabaseConfig, DataObjectEvents } from './types';
3
3
  export interface DataObjectErrorHandler {
4
4
  onError?: (error: string) => void;
5
5
  onWarning?: (warning: string) => void;
@@ -9,11 +9,16 @@ export declare class DataObject {
9
9
  private supabase;
10
10
  private options;
11
11
  private data;
12
- private eventEmitter;
13
12
  private errorHandler?;
14
13
  private _isReady;
15
14
  private _readyPromise;
15
+ private eventEmitter;
16
16
  readonly onDataChanged: (listener: (data: DataObjectRecord[]) => void) => () => void;
17
+ private lifeCycleEvents;
18
+ readonly on: <K extends keyof DataObjectEvents>(event: K, listener: (...args: DataObjectEvents[K]) => void) => () => void;
19
+ private _currentRecord;
20
+ get recordCount(): number;
21
+ get currentRecord(): DataObjectRecord | undefined;
17
22
  constructor(supabaseConfig: SupabaseConfig, options: DataObjectOptions, errorHandler?: DataObjectErrorHandler);
18
23
  get isReady(): boolean;
19
24
  waitForReady(): Promise<void>;
@@ -28,6 +33,7 @@ export declare class DataObject {
28
33
  delete(id: any): Promise<boolean>;
29
34
  dispose(): void;
30
35
  getOptions(): DataObjectOptions;
36
+ private setDefaultOptions;
31
37
  getSupabaseClient(): SupabaseClient;
32
38
  }
33
39
  export declare function createDataObject(supabaseConfig: SupabaseConfig, options: DataObjectOptions, errorHandler?: DataObjectErrorHandler): Promise<DataObject>;
@@ -1 +1 @@
1
- {"version":3,"file":"dataObject.d.ts","sourceRoot":"","sources":["../src/dataObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAkC,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9G,MAAM,WAAW,sBAAsB;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,qBAAa,UAAU;IACnB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,YAAY,CAAC,CAAyB;IAC9C,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,aAAa,CAAgB;IAErC,SAAgB,aAAa,+DAA2B;gBAE5C,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAE,sBAAsB;IAO7G,IAAW,OAAO,IAAI,OAAO,CAE5B;IAEY,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1C,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,UAAU;YAQJ,QAAQ;IA8Df,OAAO,IAAI,gBAAgB,EAAE;IAIvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IA2B3D,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IA2BrE,MAAM,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IA2BvC,OAAO,IAAI,IAAI;IAIf,UAAU,IAAI,iBAAiB;IAI/B,iBAAiB,IAAI,cAAc;CAG7C;AAED,wBAAsB,gBAAgB,CAClC,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,iBAAiB,EAC1B,YAAY,CAAC,EAAE,sBAAsB,GACtC,OAAO,CAAC,UAAU,CAAC,CAErB"}
1
+ {"version":3,"file":"dataObject.d.ts","sourceRoot":"","sources":["../src/dataObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAkC,cAAc,EAAE,gBAAgB,EAA6B,MAAM,SAAS,CAAC;AAI3J,MAAM,WAAW,sBAAsB;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,qBAAa,UAAU;IACnB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,YAAY,CAAC,CAAyB;IAC9C,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,aAAa,CAAgB;IAErC,OAAO,CAAC,YAAY,CAA0C;IAC9D,SAAgB,aAAa,+DAA2B;IAExD,OAAO,CAAC,eAAe,CAA6C;IACpE,SAAgB,EAAE,+GAAsD;IAExE,OAAO,CAAC,cAAc,CAA+B;IAErD,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,aAAa,IAAI,gBAAgB,GAAG,SAAS,CAEvD;gBAEW,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAE,sBAAsB;IAO7G,IAAW,OAAO,IAAI,OAAO,CAE5B;IAEY,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1C,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,UAAU;YAQJ,QAAQ;IA4Ef,OAAO,IAAI,gBAAgB,EAAE;IAIvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAcxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAqC3D,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IA4CrE,MAAM,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAuCvC,OAAO,IAAI,IAAI;IAKf,UAAU,IAAI,iBAAiB;IAItC,OAAO,CAAC,iBAAiB;IAUlB,iBAAiB,IAAI,cAAc;CAG7C;AAED,wBAAsB,gBAAgB,CAClC,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,iBAAiB,EAC1B,YAAY,CAAC,EAAE,sBAAsB,GACtC,OAAO,CAAC,UAAU,CAAC,CAErB"}
@@ -4,14 +4,23 @@ exports.DataObject = void 0;
4
4
  exports.createDataObject = createDataObject;
5
5
  const supabase_js_1 = require("@supabase/supabase-js");
6
6
  const eventEmitter_1 = require("./eventEmitter");
7
+ const namedEventEmitter_1 = require("./namedEventEmitter");
7
8
  class DataObject {
9
+ get recordCount() {
10
+ return this.data.length;
11
+ }
12
+ get currentRecord() {
13
+ return this._currentRecord;
14
+ }
8
15
  constructor(supabaseConfig, options, errorHandler) {
9
16
  this.data = [];
10
- this.eventEmitter = new eventEmitter_1.EventEmitter();
11
17
  this._isReady = false;
18
+ this.eventEmitter = new eventEmitter_1.EventEmitter();
12
19
  this.onDataChanged = this.eventEmitter.event;
20
+ this.lifeCycleEvents = new namedEventEmitter_1.NamedEventEmitter();
21
+ this.on = this.lifeCycleEvents.on.bind(this.lifeCycleEvents);
13
22
  this.supabase = (0, supabase_js_1.createClient)(supabaseConfig.url, supabaseConfig.anonKey);
14
- this.options = options;
23
+ this.options = this.setDefaultOptions(options);
15
24
  this.errorHandler = errorHandler;
16
25
  this._readyPromise = this.loadData();
17
26
  }
@@ -46,6 +55,15 @@ class DataObject {
46
55
  }
47
56
  }
48
57
  async loadData() {
58
+ const cancelToken = {
59
+ ...this.options,
60
+ cancel: () => { cancelToken.cancelEvent = true; },
61
+ cancelEvent: false,
62
+ };
63
+ this.lifeCycleEvents.emit('beforeLoad', cancelToken);
64
+ if (cancelToken.cancelEvent) {
65
+ return;
66
+ }
49
67
  try {
50
68
  // Start with base query
51
69
  let query = this.supabase.from(this.options.viewName);
@@ -93,11 +111,16 @@ class DataObject {
93
111
  return;
94
112
  }
95
113
  this.data = data || [];
96
- this._isReady = true; // Mark as ready when data is loaded
114
+ if (data.length > 0) {
115
+ this._currentRecord = data[0];
116
+ }
97
117
  this.eventEmitter.fire(this.data);
118
+ this.lifeCycleEvents.emit('afterLoad', this.data);
98
119
  }
99
120
  catch (error) {
100
121
  this.handleError(`Error loading data: ${error}`);
122
+ }
123
+ finally {
101
124
  this._isReady = true; // Mark as ready even if there's an error
102
125
  }
103
126
  }
@@ -105,22 +128,42 @@ class DataObject {
105
128
  return [...this.data];
106
129
  }
107
130
  async refresh() {
131
+ const refreshToken = {
132
+ ...this.options,
133
+ cancel: () => { refreshToken.cancelEvent = true; },
134
+ cancelEvent: false,
135
+ };
136
+ this.lifeCycleEvents.emit('beforeRefresh', refreshToken);
137
+ if (refreshToken.cancelEvent) {
138
+ return;
139
+ }
108
140
  await this.loadData();
141
+ this.lifeCycleEvents.emit('afterRefresh', this.data);
109
142
  }
110
143
  async insert(record) {
111
- if (!this.options.canInsert) {
144
+ if (!this.options.canInsert || !this.options.tableName) {
112
145
  this.handleWarning('Insert operation is not allowed for this data object');
113
146
  return false;
114
147
  }
148
+ const insertToken = {
149
+ ...this.options,
150
+ cancel: () => { insertToken.cancelEvent = true; },
151
+ cancelEvent: false,
152
+ };
153
+ this.lifeCycleEvents.emit('beforeInsert', insertToken, record);
154
+ if (insertToken.cancelEvent) {
155
+ return false;
156
+ }
115
157
  try {
116
158
  const { data, error } = await this.supabase
117
- .from(this.options.viewName)
159
+ .from(this.options.tableName)
118
160
  .insert(record)
119
161
  .select();
120
162
  if (error) {
121
163
  this.handleError(`Error inserting record: ${error.message}`);
122
164
  return false;
123
165
  }
166
+ this.lifeCycleEvents.emit('afterInsert', data[0]);
124
167
  // Refresh data to get the latest state
125
168
  await this.refresh();
126
169
  this.handleInfo('Record inserted successfully');
@@ -132,13 +175,26 @@ class DataObject {
132
175
  }
133
176
  }
134
177
  async update(id, updates) {
135
- if (!this.options.canUpdate) {
178
+ if (!this.options.canUpdate || !this.options.tableName) {
136
179
  this.handleWarning('Update operation is not allowed for this data object');
137
180
  return false;
138
181
  }
182
+ const record = this.data.find(x => x.id === id);
183
+ if (!record) {
184
+ return false;
185
+ }
186
+ const updateToken = {
187
+ ...this.options,
188
+ cancel: () => { updateToken.cancelEvent = true; },
189
+ cancelEvent: false,
190
+ };
191
+ this.lifeCycleEvents.emit('beforeUpdate', updateToken, record, updates);
192
+ if (updateToken.cancelEvent) {
193
+ return false;
194
+ }
139
195
  try {
140
196
  const { error } = await this.supabase
141
- .from(this.options.viewName)
197
+ .from(this.options.tableName)
142
198
  .update(updates)
143
199
  .eq('id', id);
144
200
  if (error) {
@@ -147,6 +203,10 @@ class DataObject {
147
203
  }
148
204
  // Refresh data to get the latest state
149
205
  await this.refresh();
206
+ const updatedRecord = this.data.find(x => x.id === id);
207
+ if (updatedRecord) {
208
+ this.lifeCycleEvents.emit('afterUpdate', updatedRecord, updates);
209
+ }
150
210
  this.handleInfo('Record updated successfully');
151
211
  return true;
152
212
  }
@@ -156,13 +216,26 @@ class DataObject {
156
216
  }
157
217
  }
158
218
  async delete(id) {
159
- if (!this.options.canDelete) {
219
+ if (!this.options.canDelete || !this.options.tableName) {
160
220
  this.handleWarning('Delete operation is not allowed for this data object');
161
221
  return false;
162
222
  }
223
+ const record = this.data.find(x => x.id === id);
224
+ if (!record) {
225
+ return false;
226
+ }
227
+ const deleteToken = {
228
+ ...this.options,
229
+ cancel: () => { deleteToken.cancelEvent = true; },
230
+ cancelEvent: false,
231
+ };
232
+ this.lifeCycleEvents.emit('beforeDelete', deleteToken, record);
233
+ if (deleteToken.cancelEvent) {
234
+ return false;
235
+ }
163
236
  try {
164
237
  const { error } = await this.supabase
165
- .from(this.options.viewName)
238
+ .from(this.options.tableName)
166
239
  .delete()
167
240
  .eq('id', id);
168
241
  if (error) {
@@ -171,6 +244,7 @@ class DataObject {
171
244
  }
172
245
  // Refresh data to get the latest state
173
246
  await this.refresh();
247
+ this.lifeCycleEvents.emit('afterDelete', id);
174
248
  this.handleInfo('Record deleted successfully');
175
249
  return true;
176
250
  }
@@ -181,10 +255,20 @@ class DataObject {
181
255
  }
182
256
  dispose() {
183
257
  this.eventEmitter.dispose();
258
+ this.lifeCycleEvents.clearAll();
184
259
  }
185
260
  getOptions() {
186
261
  return { ...this.options };
187
262
  }
263
+ setDefaultOptions(options) {
264
+ return {
265
+ ...options,
266
+ recordLimit: options.recordLimit ?? 100,
267
+ canInsert: options.tableName ? (options.canInsert ?? false) : false,
268
+ canUpdate: options.tableName ? (options.canUpdate ?? false) : false,
269
+ canDelete: options.tableName ? (options.canDelete ?? false) : false,
270
+ };
271
+ }
188
272
  getSupabaseClient() {
189
273
  return this.supabase;
190
274
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dataObject.js","sourceRoot":"","sources":["../src/dataObject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataObject.js","sourceRoot":"","sources":["../src/dataObject.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare class NamedEventEmitter<Events extends {
2
+ [key: string]: any[];
3
+ }> {
4
+ private listeners;
5
+ on<K extends keyof Events>(event: K, listener: (...args: Events[K]) => void): () => void;
6
+ emit<K extends keyof Events>(event: K, ...args: Events[K]): void;
7
+ clearAll(): void;
8
+ }
9
+ //# sourceMappingURL=namedEventEmitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namedEventEmitter.d.ts","sourceRoot":"","sources":["../src/namedEventEmitter.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAiB,CAAC,MAAM,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,CAAA;CAAE;IAClE,OAAO,CAAC,SAAS,CAEV;IAEA,EAAE,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAWxF,IAAI,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;IAUhE,QAAQ;CAGlB"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NamedEventEmitter = void 0;
4
+ class NamedEventEmitter {
5
+ constructor() {
6
+ this.listeners = {};
7
+ }
8
+ on(event, listener) {
9
+ if (!this.listeners[event])
10
+ this.listeners[event] = [];
11
+ this.listeners[event].push(listener);
12
+ return () => {
13
+ const index = this.listeners[event].indexOf(listener);
14
+ if (index !== -1) {
15
+ this.listeners[event].splice(index, 1);
16
+ }
17
+ };
18
+ }
19
+ emit(event, ...args) {
20
+ this.listeners[event]?.forEach(listener => {
21
+ try {
22
+ listener(...args);
23
+ }
24
+ catch (error) {
25
+ console.error(`Error in listener for event '${String(event)}':`, error);
26
+ }
27
+ });
28
+ }
29
+ clearAll() {
30
+ this.listeners = {};
31
+ }
32
+ }
33
+ exports.NamedEventEmitter = NamedEventEmitter;
34
+ //# sourceMappingURL=namedEventEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namedEventEmitter.js","sourceRoot":"","sources":["../src/namedEventEmitter.ts"],"names":[],"mappings":";;;AAAA,MAAa,iBAAiB;IAA9B;QACY,cAAS,GAEb,EAAE,CAAC;IA0BX,CAAC;IAxBU,EAAE,CAAyB,KAAQ,EAAE,QAAsC;QAC9E,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,GAAG,EAAE;YACR,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,SAAS,CAAC,KAAK,CAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC,CAAC;IACN,CAAC;IAEM,IAAI,CAAyB,KAAQ,EAAE,GAAG,IAAe;QAC5D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;YACtC,IAAI,CAAC;gBACD,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,gCAAgC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC5E,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,QAAQ;QACX,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACxB,CAAC;CACJ;AA7BD,8CA6BC"}
package/dist/types.d.ts CHANGED
@@ -15,6 +15,7 @@ export interface WhereClause {
15
15
  }
16
16
  export interface DataObjectOptions {
17
17
  viewName: string;
18
+ tableName?: string;
18
19
  fields?: DataObjectField[];
19
20
  whereClauses?: WhereClause[];
20
21
  sort?: SortConfig;
@@ -41,4 +42,20 @@ export interface StoredDataObject {
41
42
  dataObject: any;
42
43
  createdAt: Date;
43
44
  }
45
+ export type DataObjectEvents = {
46
+ beforeLoad: [options: DataObjectCancelableEvent & DataObjectOptions];
47
+ afterLoad: [data: DataObjectRecord[]];
48
+ beforeRefresh: [options: DataObjectCancelableEvent & DataObjectOptions];
49
+ afterRefresh: [data: DataObjectRecord[]];
50
+ beforeInsert: [options: DataObjectCancelableEvent & DataObjectOptions, record: Partial<DataObjectRecord>];
51
+ afterInsert: [record: DataObjectRecord];
52
+ beforeUpdate: [options: DataObjectCancelableEvent & DataObjectOptions, record: DataObjectRecord, updates: Partial<DataObjectRecord>];
53
+ afterUpdate: [record: DataObjectRecord, updates: Partial<DataObjectRecord>];
54
+ beforeDelete: [options: DataObjectCancelableEvent & DataObjectOptions, record: DataObjectRecord];
55
+ afterDelete: [id: string | number];
56
+ };
57
+ export interface DataObjectCancelableEvent {
58
+ cancelEvent?: boolean;
59
+ cancel?: () => void;
60
+ }
44
61
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEvE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,WAAW,GAAG,aAAa,GAAG,UAAU,CAAC;AAEpF,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,KAAK,EAAE,GAAG,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC7D,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,GAAG,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEvE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,WAAW,GAAG,aAAa,GAAG,UAAU,CAAC;AAEpF,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,KAAK,EAAE,GAAG,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC7D,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,GAAG,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC3B,UAAU,EAAE,CAAC,OAAO,EAAE,yBAAyB,GAAG,iBAAiB,CAAC,CAAC;IACrE,SAAS,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAEtC,aAAa,EAAE,CAAC,OAAO,EAAE,yBAAyB,GAAG,iBAAiB,CAAC,CAAC;IACxE,YAAY,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAEzC,YAAY,EAAE,CAAC,OAAO,EAAE,yBAAyB,GAAG,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1G,WAAW,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAExC,YAAY,EAAE,CAAC,OAAO,EAAE,yBAAyB,GAAG,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACrI,WAAW,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAE5E,YAAY,EAAE,CAAC,OAAO,EAAE,yBAAyB,GAAG,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACjG,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;CACtC,CAAA;AAED,MAAM,WAAW,yBAAyB;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "supabase-dataobject-core",
3
- "version": "1.0.1",
3
+ "version": "1.1.1",
4
4
  "description": "Core library for creating reactive data objects from Supabase tables and views",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",