@d-mok/quasar-app-extension-quasar-axe 1.0.21 → 1.0.25

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@d-mok/quasar-app-extension-quasar-axe",
3
- "version": "1.0.21",
3
+ "version": "1.0.25",
4
4
  "description": "A Quasar App Extension",
5
5
  "author": "d-mok <49301824+d-mok@users.noreply.github.com>",
6
6
  "license": "MIT",
@@ -24,7 +24,7 @@
24
24
  "@types/papaparse": "^5.3.2",
25
25
  "@types/webpack-env": "^1.16.3",
26
26
  "papaparse": "^5.3.1",
27
- "sapphire-js": "^1.0.63"
27
+ "sapphire-js": "^1.0.64"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@quasar/app": "^3.3.1",
@@ -1,34 +1,99 @@
1
1
 
2
2
  //@ts-ignore
3
- export { qDialog } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/dialog'
3
+ import { qDialog as _qDialog } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/dialog'
4
4
  //@ts-ignore
5
- export { qNotify } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/notify'
5
+ import { qNotify as _qNotify } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/notify'
6
6
  //@ts-ignore
7
- export { Table, Empower } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/ORM/table'
7
+ import { TableEdit as _TableEdit, Empower as _Empower } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/ORM/table'
8
8
  //@ts-ignore
9
- export { TableView } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/ORM/view'
9
+ import { TableView as _TableView } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/ORM/view'
10
10
  //@ts-ignore
11
- export { TableRPC } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/ORM/rpc'
12
-
13
- //@ts-ignore
14
- import '@d-mok/quasar-app-extension-quasar-axe/src/utils/supabase'
15
- //@ts-ignore
16
- export { supabase, handleError, callRPC } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/supabase'
11
+ import { TableRPC as _TableRPC } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/ORM/rpc'
17
12
  //@ts-ignore
18
13
  export { Sheet, List } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/sapphire'
14
+ //@ts-ignore
15
+ import { EMAIL as _EMAIL, RPC as _RPC } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/supabase'
16
+
17
+
18
+ declare global {
19
+ var qDialog: typeof _qDialog
20
+ var qNotify: typeof _qNotify
21
+ var TableEdit: typeof _TableEdit
22
+ var Empower: typeof _Empower
23
+ var TableView: typeof _TableView
24
+ var TableRPC: typeof _TableRPC
25
+ var EMAIL: typeof _EMAIL
26
+ var RPC: typeof _RPC
27
+ }
28
+
29
+ globalThis.qDialog = _qDialog
30
+ globalThis.qNotify = _qNotify
31
+ globalThis.TableEdit = _TableEdit
32
+ globalThis.Empower = _Empower
33
+ globalThis.TableView = _TableView
34
+ globalThis.TableRPC = _TableRPC
35
+ globalThis.EMAIL = _EMAIL
36
+ globalThis.RPC = _RPC
37
+
38
+
39
+
40
+
19
41
 
20
42
 
21
43
  //@ts-ignore
22
- import { qDialog } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/dialog'
44
+ import '@d-mok/quasar-app-extension-quasar-axe/src/utils/supabase'
23
45
  //@ts-ignore
24
- import { qNotify } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/notify'
46
+ export { supabase } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/supabase'
47
+
48
+
49
+ // //@ts-ignore
50
+ // import { qDialog } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/dialog'
51
+ // //@ts-ignore
52
+ // import { qNotify } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/notify'
25
53
  //@ts-ignore
26
54
  import { supabase } from '@d-mok/quasar-app-extension-quasar-axe/src/utils/supabase'
27
55
  if (process.env.DEBUGGING) {
28
- // @ts-ignore
29
- globalThis.qDialog = qDialog
30
- // @ts-ignore
31
- globalThis.qNotify = qNotify
56
+ // // @ts-ignore
57
+ // globalThis.qDialog = qDialog
58
+ // // @ts-ignore
59
+ // globalThis.qNotify = qNotify
32
60
  // @ts-ignore
33
61
  globalThis.supabase = supabase
34
62
  }
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+ // expose vue functions
72
+
73
+ declare global {
74
+ var ref: typeof _ref
75
+ var watch: typeof _watch
76
+ var watchEffect: typeof _watchEffect
77
+ var computed: typeof _computed
78
+ var useRouter: typeof _useRouter
79
+ var useRoute: typeof _useRoute
80
+ type PropType<T> = _PropType<T>
81
+ }
82
+
83
+ import {
84
+ ref as _ref,
85
+ watch as _watch,
86
+ watchEffect as _watchEffect,
87
+ computed as _computed,
88
+ PropType as _PropType
89
+ } from 'vue'
90
+
91
+ import { useRouter as _useRouter, useRoute as _useRoute } from 'vue-router'
92
+
93
+ globalThis.ref = _ref
94
+ globalThis.watch = _watch
95
+ globalThis.watchEffect = _watchEffect
96
+ globalThis.computed = _computed
97
+ globalThis.useRouter = _useRouter
98
+ globalThis.useRoute = _useRoute
99
+
@@ -45,17 +45,22 @@ export abstract class BasicTable<T extends R, R extends object> extends Sheet<T>
45
45
  /**
46
46
  * The class of the elements.
47
47
  */
48
- public abstract readonly entityClass: new (_: Partial<R>) => T
48
+ public abstract readonly Puppet: new (_: Partial<R>) => T
49
49
 
50
50
  /**
51
51
  * The default ordering instruction object.
52
52
  */
53
53
  public readonly ordering: Readonly<Ordering<T>> = []
54
54
 
55
+ /**
56
+ * The row class (for extracting fields in select)
57
+ */
58
+ public readonly Rack: undefined | (new (_: Partial<R>) => R) = undefined
59
+
55
60
 
56
61
 
57
62
  private convert(data: R[]): T[] {
58
- return data.map($ => new this.entityClass($))
63
+ return data.map($ => new this.Puppet($))
59
64
  }
60
65
 
61
66
  private log(msg: string, data?: T[]): void {
@@ -70,9 +75,9 @@ export abstract class BasicTable<T extends R, R extends object> extends Sheet<T>
70
75
 
71
76
 
72
77
  private fields(): string {
73
- let newObj = new this.entityClass({})
74
- let fs = Object.keys(newObj)
75
- return fs.join(',')
78
+ if (this.Rack === undefined) return '*'
79
+ let newObj = new this.Rack({})
80
+ return Object.keys(newObj).join(',')
76
81
  }
77
82
 
78
83
 
@@ -110,7 +115,7 @@ export abstract class BasicTable<T extends R, R extends object> extends Sheet<T>
110
115
  param?: any
111
116
  where?: Where<R>
112
117
  custom?: (_: PostgrestFilterBuilder) => PostgrestFilterBuilder
113
- action?: (entities: T[]) => void
118
+ action?: (puppet: T[]) => void
114
119
  confirm?: [string, string?]
115
120
  notify?: string
116
121
  slience?: boolean
@@ -125,12 +130,12 @@ export abstract class BasicTable<T extends R, R extends object> extends Sheet<T>
125
130
  let { data, error } = await q
126
131
  handleError(data, error)
127
132
 
128
- let entities = this.convert(data)
129
- action(entities)
133
+ let puppets = this.convert(data)
134
+ action(puppets)
130
135
  this.order(...this.ordering)
131
136
 
132
137
 
133
- this.log(type, entities)
138
+ this.log(type, puppets)
134
139
  if (notify) qNotify.toast(notify)
135
140
  if (slience) loadingBar(true)
136
141
  }
@@ -143,7 +148,7 @@ export abstract class BasicTable<T extends R, R extends object> extends Sheet<T>
143
148
  * Get an item by `criteria`. If not found, return a new object.
144
149
  */
145
150
  got(criteria: Criteria<T>): T {
146
- return this.get(criteria) ?? new this.entityClass({})
151
+ return this.get(criteria) ?? new this.Puppet({})
147
152
  }
148
153
 
149
154
 
@@ -36,9 +36,5 @@ export abstract class TableRPC<T extends R, R extends object> extends BasicTable
36
36
  })
37
37
  }
38
38
 
39
-
40
-
41
-
42
-
43
39
  }
44
40
 
@@ -16,7 +16,7 @@ type muteOptions = {
16
16
  * @template T - type of element class
17
17
  * @template R - type of database row class
18
18
  */
19
- export abstract class Table<T extends R, R extends object> extends TableView<T, R>{
19
+ export abstract class TableEdit<T extends R, R extends object> extends TableView<T, R>{
20
20
 
21
21
 
22
22
 
@@ -109,7 +109,7 @@ export function Empower<RCls extends Constructor, R = InstanceType<RCls>>(BaseCl
109
109
 
110
110
  return class extends BaseCls {
111
111
 
112
- public hostTable: Table<any, any> | undefined = undefined;
112
+ public hostTable: TableEdit<any, any> | undefined = undefined;
113
113
 
114
114
  public async update(
115
115
  this: this & R,
@@ -155,59 +155,3 @@ export function Empower<RCls extends Constructor, R = InstanceType<RCls>>(BaseCl
155
155
 
156
156
 
157
157
 
158
-
159
-
160
-
161
-
162
-
163
-
164
-
165
-
166
- // class FolderRow {
167
- // id: number = 0
168
- // subject: string = ""
169
- // category: string = ""
170
- // teacher: string = ""
171
- // bank: string = ""
172
- // name: string = ""
173
- // pub_q: boolean = false
174
- // pub_s: boolean = false
175
- // codes: string[] = []
176
- // modified: number = 0
177
-
178
- // constructor(row = {}) {
179
- // Object.assign(this, row)
180
- // }
181
- // }
182
-
183
-
184
-
185
-
186
- // export class Folder extends FolderRow {
187
-
188
-
189
-
190
-
191
- // }
192
-
193
-
194
-
195
- // export class FolderTable extends Table<Folder, FolderRow>{
196
- // readonly tableName = 'folder'
197
- // readonly idField = 'id' as const
198
- // readonly entityClass = Folder
199
- // readonly ordering = [
200
- // 'subject',
201
- // { category: ['topic', 'paper', 'exercise'] },
202
- // 'bank',
203
- // 'name'
204
- // ] as const
205
-
206
-
207
-
208
- // }
209
-
210
-
211
- // export const Folders = (new FolderTable).reactive()
212
-
213
- // Folders.selectIn('teacher', [1,2,3])
@@ -137,15 +137,17 @@ export function handleError<T>(data: T[] | null, error: PostgrestError | null):
137
137
 
138
138
 
139
139
 
140
- const _filterBuilder = supabase.from('DEMO').select().eq('','').order('f').limit(3)
140
+ const _filterBuilder = supabase.from('DEMO').select().eq('', '').order('f').limit(3)
141
141
  export type PostgrestFilterBuilder = typeof _filterBuilder
142
142
 
143
143
 
144
144
 
145
- export async function callRPC<T>(fn: string, params?: object | undefined) {
145
+ export async function RPC<T>(fn: string, params?: object | undefined) {
146
146
  let { data, error } = await supabase.rpc<T>(fn, params)
147
147
  handleError(data, error)
148
148
  return data
149
149
  }
150
150
 
151
-
151
+ export function EMAIL(): string {
152
+ return supabase.email()
153
+ }