@storecraft/database-sqlite 1.0.1 → 1.0.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.
@@ -1,149 +0,0 @@
1
- import { SQL } from '../index.js'
2
- import { count_regular, delete_me, delete_search_of,
3
- insert_search_of, regular_upsert_me, where_id_or_handle_table,
4
- with_search } from './con.shared.js'
5
- import { sanitize_array } from './utils.funcs.js'
6
- import { query_to_eb, query_to_sort } from './utils.query.js'
7
-
8
- /**
9
- * @typedef {import('@storecraft/core/v-database').db_notifications} db_col
10
- */
11
- export const table_name = 'notifications'
12
-
13
- /**
14
- * @param {SQL} driver
15
- * @returns {db_col["upsert"]}
16
- */
17
- const upsert = (driver) => {
18
- return async (item, search_terms=[]) => {
19
- const c = driver.client;
20
- try {
21
- const t = await c.transaction().execute(
22
- async (trx) => {
23
- await insert_search_of(
24
- trx, [...item.search, ...search_terms],
25
- item.id, item.id, table_name
26
- );
27
- await regular_upsert_me(trx, table_name, {
28
- created_at: item.created_at,
29
- updated_at: item.updated_at,
30
- message: item.message,
31
- author: item.author,
32
- id: item.id,
33
- actions: JSON.stringify(item.actions)
34
- });
35
- }
36
- );
37
- } catch(e) {
38
- console.log(e);
39
- return false;
40
- }
41
- return true;
42
- }
43
- }
44
-
45
- /**
46
- * @param {SQL} driver
47
- * @returns {db_col["upsertBulk"]}
48
- */
49
- const upsertBulk = (driver) => {
50
- return async (items, search_terms) => {
51
- const results = [];
52
- // for (const it of items)
53
- for(let ix = 0; ix < items.length; ix++)
54
- results.push(await upsert(driver)(
55
- items[ix], search_terms?.[ix])
56
- );
57
-
58
- return results.every(b => b);
59
- }
60
- }
61
-
62
- /**
63
- * @param {SQL} driver
64
- * @returns {db_col["get"]}
65
- */
66
- const get = (driver) => {
67
- return (id_or_handle, options) => {
68
- return driver.client
69
- .selectFrom(table_name)
70
- .selectAll()
71
- .select(eb => [
72
- with_search(eb, eb.ref('notifications.id'), driver.dialectType),
73
- ]
74
- .filter(Boolean))
75
- .where(where_id_or_handle_table(id_or_handle))
76
- .executeTakeFirst();
77
- }
78
- }
79
-
80
-
81
- /**
82
- * @param {SQL} driver
83
- * @returns {db_col["remove"]}
84
- */
85
- const remove = (driver) => {
86
- return async (id_or_handle) => {
87
- try {
88
- await driver.client.transaction().execute(
89
- async (trx) => {
90
- // entities
91
- await delete_search_of(trx, id_or_handle);
92
- // delete me
93
- await delete_me(trx, table_name, id_or_handle);
94
- }
95
- );
96
-
97
- } catch(e) {
98
- console.log(e);
99
- return false;
100
- }
101
- return true;
102
- }
103
- }
104
-
105
-
106
- /**
107
- * @param {SQL} driver
108
- * @returns {db_col["list"]}
109
- */
110
- const list = (driver) => {
111
- return async (query) => {
112
-
113
- const items = await driver.client
114
- .selectFrom(table_name)
115
- .selectAll()
116
- .select(eb => [
117
- with_search(eb, eb.ref('notifications.id'), driver.dialectType),
118
- ].filter(Boolean))
119
- .where(
120
- (eb) => {
121
- return query_to_eb(eb, query, table_name);
122
- }
123
- )
124
- .orderBy(query_to_sort(query))
125
- .limit(query.limitToLast ?? query.limit ?? 10)
126
- .execute();
127
-
128
- if(query.limitToLast) items.reverse();
129
-
130
- return sanitize_array(items);
131
- }
132
- }
133
-
134
-
135
- /**
136
- * @param {SQL} driver
137
- * @return {db_col}}
138
- * */
139
- export const impl = (driver) => {
140
-
141
- return {
142
- get: get(driver),
143
- upsert: upsert(driver),
144
- upsertBulk: upsertBulk(driver),
145
- remove: remove(driver),
146
- list: list(driver),
147
- count: count_regular(driver, table_name),
148
- }
149
- }
package/src/con.orders.js DELETED
@@ -1,171 +0,0 @@
1
- import { SQL } from '../index.js'
2
- import { report_document_media } from './con.images.js'
3
- import { count_regular, delete_me, delete_media_of, delete_search_of,
4
- delete_tags_of, insert_media_of, insert_search_of,
5
- insert_tags_of, regular_upsert_me, where_id_or_handle_table,
6
- with_media, with_tags} from './con.shared.js'
7
- import { sanitize_array } from './utils.funcs.js'
8
- import { query_to_eb, query_to_sort } from './utils.query.js'
9
-
10
- /**
11
- * @typedef {import('@storecraft/core/v-database').db_orders} db_col
12
- */
13
- export const table_name = 'orders'
14
-
15
- /**
16
- * @param {SQL} driver
17
- *
18
- *
19
- * @returns {db_col["upsert"]}
20
- */
21
- const upsert = (driver) => {
22
- return async (item, search_terms) => {
23
- const c = driver.client;
24
- try {
25
- const t = await c.transaction().execute(
26
- async (trx) => {
27
- await insert_search_of(trx, search_terms, item.id, item.id, table_name);
28
- await insert_media_of(trx, item.media, item.id, item.id, table_name);
29
- await insert_tags_of(trx, item.tags, item.id, item.id, table_name);
30
- await report_document_media(driver)(item, trx);
31
- await regular_upsert_me(trx, table_name, {
32
- attributes: JSON.stringify(item.attributes),
33
- description: item.description,
34
- created_at: item.created_at,
35
- updated_at: item.updated_at,
36
- id: item.id,
37
- handle: item.id,
38
- address: JSON.stringify(item.address),
39
- contact: JSON.stringify(item.contact),
40
- coupons: JSON.stringify(item.coupons),
41
- line_items: JSON.stringify(item.line_items),
42
- notes: item.notes,
43
- payment_gateway: JSON.stringify(item.payment_gateway),
44
- pricing: JSON.stringify(item.pricing),
45
- shipping_method: JSON.stringify(item.shipping_method),
46
- status: JSON.stringify(item.status),
47
- validation: JSON.stringify(item.validation),
48
- _customer_id: item?.contact?.customer_id,
49
- _customer_email: item?.contact?.email,
50
- _status_checkout_id: item?.status?.checkout?.id,
51
- _status_payment_id: item?.status?.payment?.id,
52
- _status_fulfillment_id: item?.status?.fulfillment?.id,
53
- });
54
- }
55
- );
56
- } catch(e) {
57
- console.log(e);
58
- return false;
59
- }
60
- return true;
61
- }
62
- }
63
-
64
-
65
- /**
66
- * @param {SQL} driver
67
- * @returns {db_col["get"]}
68
- */
69
- const get = (driver) => {
70
- return (id_or_handle, options) => {
71
- return driver.client
72
- .selectFrom(table_name)
73
- // .selectAll()
74
- .select(
75
- [
76
- 'active', 'address', 'attributes', 'contact', 'coupons',
77
- 'created_at', 'updated_at', 'description', 'handle', 'id',
78
- 'line_items', 'notes', 'payment_gateway', 'pricing',
79
- 'shipping_method', 'status', 'validation'
80
- ]
81
- )
82
- .select(eb => [
83
- with_media(eb, id_or_handle, driver.dialectType),
84
- with_tags(eb, id_or_handle, driver.dialectType),
85
- ]
86
- .filter(Boolean))
87
- .where(where_id_or_handle_table(id_or_handle))
88
- .executeTakeFirst();
89
- }
90
- }
91
-
92
-
93
- /**
94
- * @param {SQL} driver
95
- * @returns {db_col["remove"]}
96
- */
97
- const remove = (driver) => {
98
- return async (id_or_handle) => {
99
- try {
100
- await driver.client.transaction().execute(
101
- async (trx) => {
102
-
103
- // entities
104
- await delete_search_of(trx, id_or_handle);
105
- await delete_media_of(trx, id_or_handle);
106
- await delete_tags_of(trx, id_or_handle);
107
- // delete me
108
- await delete_me(trx, table_name, id_or_handle);
109
- }
110
- );
111
-
112
- } catch(e) {
113
- console.log(e);
114
- return false;
115
- }
116
- return true;
117
- }
118
- }
119
-
120
-
121
- /**
122
- * @param {SQL} driver
123
- * @returns {db_col["list"]}
124
- */
125
- const list = (driver) => {
126
- return async (query) => {
127
-
128
- const items = await driver.client
129
- .selectFrom(table_name)
130
- // .selectAll()
131
- .select(
132
- [
133
- 'active', 'address', 'attributes', 'contact', 'coupons', 'created_at',
134
- 'updated_at', 'description', 'handle', 'id', 'line_items', 'notes',
135
- 'payment_gateway', 'pricing', 'shipping_method', 'status', 'validation'
136
- ]
137
- )
138
- .select(eb => [
139
- with_media(eb, eb.ref('orders.id'), driver.dialectType),
140
- with_tags(eb, eb.ref('orders.id'), driver.dialectType),
141
- ].filter(Boolean))
142
- .where(
143
- (eb) => {
144
- return query_to_eb(eb, query, table_name);
145
- }
146
- )
147
- .orderBy(query_to_sort(query))
148
- .limit(query.limitToLast ?? query.limit ?? 10)
149
- .execute();
150
-
151
- if(query.limitToLast) items.reverse();
152
-
153
- return sanitize_array(items);
154
- }
155
- }
156
-
157
-
158
- /**
159
- * @param {SQL} driver
160
- * @return {db_col}}
161
- * */
162
- export const impl = (driver) => {
163
-
164
- return {
165
- get: get(driver),
166
- upsert: upsert(driver),
167
- remove: remove(driver),
168
- list: list(driver),
169
- count: count_regular(driver, table_name),
170
- }
171
- }
package/src/con.posts.js DELETED
@@ -1,147 +0,0 @@
1
- import { SQL } from '../index.js'
2
- import { report_document_media } from './con.images.js'
3
- import { count_regular, delete_entity_values_by_value_or_reporter,
4
- delete_me, delete_media_of, delete_search_of, delete_tags_of,
5
- insert_media_of, insert_search_of, insert_tags_of,
6
- regular_upsert_me, where_id_or_handle_table,
7
- with_media, with_tags} from './con.shared.js'
8
- import { sanitize_array } from './utils.funcs.js'
9
- import { query_to_eb, query_to_sort } from './utils.query.js'
10
-
11
- /**
12
- * @typedef {import('@storecraft/core/v-database').db_posts} db_col
13
- */
14
- export const table_name = 'posts'
15
-
16
- /**
17
- * @param {SQL} driver
18
- * @returns {db_col["upsert"]}
19
- */
20
- const upsert = (driver) => {
21
- return async (item, search_terms) => {
22
- const c = driver.client;
23
- try {
24
- const t = await c.transaction().execute(
25
- async (trx) => {
26
- await insert_search_of(trx, search_terms, item.id, item.handle, table_name);
27
- await insert_media_of(trx, item.media, item.id, item.handle, table_name);
28
- await insert_tags_of(trx, item.tags, item.id, item.handle, table_name);
29
- await report_document_media(driver)(item, trx);
30
- await regular_upsert_me(trx, table_name, {
31
- active: item.active ? 1 : 0,
32
- attributes: JSON.stringify(item.attributes),
33
- description: item.description,
34
- created_at: item.created_at,
35
- updated_at: item.updated_at,
36
- id: item.id,
37
- handle: item.handle,
38
- title: item.title,
39
- text: item.text
40
- });
41
- }
42
- );
43
- } catch(e) {
44
- console.log(e);
45
- return false;
46
- }
47
- return true;
48
- }
49
- }
50
-
51
-
52
- /**
53
- * @param {SQL} driver
54
- * @returns {db_col["get"]}
55
- */
56
- const get = (driver) => {
57
- return (id_or_handle, options) => {
58
- return driver.client
59
- .selectFrom(table_name)
60
- .selectAll()
61
- .select(eb => [
62
- with_media(eb, id_or_handle, driver.dialectType),
63
- with_tags(eb, id_or_handle, driver.dialectType),
64
- ]
65
- .filter(Boolean))
66
- .where(where_id_or_handle_table(id_or_handle))
67
- .executeTakeFirst();
68
- }
69
- }
70
-
71
-
72
- /**
73
- * @param {SQL} driver
74
- * @returns {db_col["remove"]}
75
- */
76
- const remove = (driver) => {
77
- return async (id_or_handle) => {
78
- try {
79
- await driver.client.transaction().execute(
80
- async (trx) => {
81
-
82
- // entities
83
- await delete_search_of(trx, id_or_handle);
84
- await delete_media_of(trx, id_or_handle);
85
- await delete_tags_of(trx, id_or_handle);
86
- // STOREFRONT => POSTS
87
- await delete_entity_values_by_value_or_reporter('storefronts_to_other')(
88
- trx, id_or_handle, id_or_handle
89
- );
90
- // delete me
91
- await delete_me(trx, table_name, id_or_handle);
92
- }
93
- );
94
-
95
- } catch(e) {
96
- console.log(e);
97
- return false;
98
- }
99
- return true;
100
- }
101
- }
102
-
103
-
104
- /**
105
- * @param {SQL} driver
106
- * @returns {db_col["list"]}
107
- */
108
- const list = (driver) => {
109
- return async (query) => {
110
-
111
- const items = await driver.client
112
- .selectFrom(table_name)
113
- .selectAll()
114
- .select(eb => [
115
- with_media(eb, eb.ref('posts.id'), driver.dialectType),
116
- with_tags(eb, eb.ref('posts.id'), driver.dialectType),
117
- ].filter(Boolean))
118
- .where(
119
- (eb) => {
120
- return query_to_eb(eb, query, table_name);
121
- }
122
- )
123
- .orderBy(query_to_sort(query))
124
- .limit(query.limitToLast ?? query.limit ?? 10)
125
- .execute();
126
-
127
- if(query.limitToLast) items.reverse();
128
-
129
- return sanitize_array(items);
130
- }
131
- }
132
-
133
-
134
- /**
135
- * @param {SQL} driver
136
- * @return {db_col}}
137
- * */
138
- export const impl = (driver) => {
139
-
140
- return {
141
- get: get(driver),
142
- upsert: upsert(driver),
143
- remove: remove(driver),
144
- list: list(driver),
145
- count: count_regular(driver, table_name),
146
- }
147
- }