baja-lite 1.0.6 → 1.0.10

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/src/sqlite.ts CHANGED
@@ -1,5 +1,6 @@
1
- import { SqliteRemoteInterface, logger } from './sql';
1
+ import { SqliteRemoteInterface, logger } from './sql';
2
2
  import Sqlstring from 'sqlstring';
3
+ import { encode, decode } from "@msgpack/msgpack";
3
4
  export abstract class SqliteRemoteClass implements SqliteRemoteInterface {
4
5
  private dbList: Record<string, any> = {};
5
6
  /** 原始存放路径 */
@@ -22,10 +23,11 @@ export abstract class SqliteRemoteClass implements SqliteRemoteInterface {
22
23
  */
23
24
  abstract setMod(name: string): void;
24
25
  abstract trace: boolean;
25
- async execute(dbName: string, sql?: string | undefined, params?: any): Promise<{ affectedRows: number; insertId: bigint; }> {
26
+ async execute(inData: Uint8Array): Promise<Uint8Array> {
27
+ const [dbName, sql, params] = decode(inData) as [dbName: string, sql?: string | undefined, params?: any];
28
+ logger.debug(sql, params ?? '');
26
29
  try {
27
- logger.debug(sql, params ?? '');
28
- if (!sql) { return { affectedRows: 0, insertId: 0n }; };
30
+ if (!sql) { return encode({ affectedRows: 0, insertId: 0n }); };
29
31
  if (this.trace) {
30
32
  logger.trace(Sqlstring.format(sql!, params));
31
33
  }
@@ -34,7 +36,7 @@ export abstract class SqliteRemoteClass implements SqliteRemoteInterface {
34
36
  logger.trace(result);
35
37
  }
36
38
  const { changes, lastInsertRowid } = result;
37
- return { affectedRows: changes, insertId: lastInsertRowid ? BigInt(lastInsertRowid) : 0n };
39
+ return encode({ affectedRows: changes, insertId: lastInsertRowid ? BigInt(lastInsertRowid) : 0n });
38
40
  } catch (error) {
39
41
  logger.error(`
40
42
  error: ${error},
@@ -44,14 +46,16 @@ export abstract class SqliteRemoteClass implements SqliteRemoteInterface {
44
46
  throw error;
45
47
  }
46
48
  }
47
- async pluck<One_Row_Many_Column = any>(dbName: string, sql?: string | undefined, params?: any): Promise<One_Row_Many_Column | null> {
49
+ async pluck(inData: Uint8Array): Promise<Uint8Array> {
50
+ const [dbName, sql, params] = decode(inData) as [dbName: string, sql?: string | undefined, params?: any];
51
+ logger.debug(sql, params ?? '');
48
52
  try {
49
53
  logger.debug(sql, params ?? '');
50
- if (!sql) { return null };
54
+ if (!sql) { return encode(null) };
51
55
  if (this.trace) {
52
56
  logger.trace(Sqlstring.format(sql!, params));
53
57
  }
54
- return this.dbList[dbName].prepare(sql).pluck().get(params ?? {});
58
+ return encode(this.dbList[dbName].prepare(sql).pluck().get(params ?? {}));
55
59
  } catch (error) {
56
60
  logger.error(`
57
61
  error: ${error},
@@ -61,14 +65,14 @@ export abstract class SqliteRemoteClass implements SqliteRemoteInterface {
61
65
  throw error;
62
66
  }
63
67
  }
64
- async get<One_Row_Many_Column = any>(dbName: string, sql?: string | undefined, params?: any): Promise<One_Row_Many_Column | null> {
68
+ async get(inData: Uint8Array): Promise<Uint8Array> {
69
+ const [dbName, sql, params] = decode(inData) as [dbName: string, sql?: string | undefined, params?: any];
70
+ logger.debug(sql, params ?? '');
65
71
  try {
66
- logger.debug(sql, params ?? '');
67
- if (!sql) { return null };
68
72
  if (this.trace) {
69
73
  logger.trace(Sqlstring.format(sql!, params));
70
74
  }
71
- return this.dbList[dbName].prepare(sql).get(params ?? {});
75
+ return encode(this.dbList[dbName].prepare(sql).get(params ?? {}));
72
76
  } catch (error) {
73
77
  logger.error(`
74
78
  error: ${error},
@@ -78,14 +82,15 @@ export abstract class SqliteRemoteClass implements SqliteRemoteInterface {
78
82
  throw error;
79
83
  }
80
84
  }
81
- async raw<Many_Row_One_Column = any>(dbName: string, sql?: string | undefined, params?: any): Promise<Many_Row_One_Column[]> {
85
+ async raw(inData: Uint8Array): Promise<Uint8Array> {
86
+ const [dbName, sql, params] = decode(inData) as [dbName: string, sql?: string | undefined, params?: any];
87
+ logger.debug(sql, params ?? '');
82
88
  try {
83
- logger.debug(sql, params ?? '');
84
- if (!sql) { return []; };
89
+ if (!sql) { return encode([]); };
85
90
  if (this.trace) {
86
91
  logger.trace(Sqlstring.format(sql!, params));
87
92
  }
88
- return this.dbList[dbName].prepare(sql).raw().all(params ?? {});
93
+ return encode(this.dbList[dbName].prepare(sql).raw().all(params ?? {}));
89
94
  } catch (error) {
90
95
  logger.error(`
91
96
  error: ${error},
@@ -95,14 +100,15 @@ export abstract class SqliteRemoteClass implements SqliteRemoteInterface {
95
100
  throw error;
96
101
  }
97
102
  }
98
- async query<Many_Row_Many_Column = any>(dbName: string, sql?: string | undefined, params?: any): Promise<Many_Row_Many_Column[]> {
103
+ async query(inData: Uint8Array): Promise<Uint8Array> {
104
+ const [dbName, sql, params] = decode(inData) as [dbName: string, sql?: string | undefined, params?: any];
105
+ logger.debug(sql, params ?? '');
99
106
  try {
100
- logger.debug(sql, params ?? '');
101
- if (!sql) { return []; };
107
+ if (!sql) { encode([]); };
102
108
  if (this.trace) {
103
109
  logger.trace(Sqlstring.format(sql!, params));
104
110
  }
105
- return this.dbList[dbName].prepare(sql).all(params ?? {});
111
+ return encode(this.dbList[dbName].prepare(sql).all(params ?? {}));
106
112
  } catch (error) {
107
113
  logger.error(`
108
114
  error: ${error},
package/src/test-mysql.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import 'reflect-metadata';
2
2
  import { Boot } from './boot';
3
- import { SqlService, Field, DB, DBType, SqlType, ColumnMode, } from './sql';
3
+ import { SqlService, Field, DB, DBType, SqlType, ColumnMode, SelectResult, } from './sql';
4
4
  class AmaFuck2 {
5
5
  @Field({ type: SqlType.varchar, length: 200, id: true, uuid: true })
6
6
  site?: string;
@@ -17,12 +17,12 @@ class AmaService2 extends SqlService<AmaFuck2>{
17
17
 
18
18
  }
19
19
 
20
- interface Menu {
21
- resourceid: string;
22
- resourcepid: string;
23
- resourcename: string;
24
- children: Menu[];
25
- }
20
+ // interface Menu {
21
+ // resourceid: string;
22
+ // resourcepid: string;
23
+ // resourcename: string;
24
+ // children: Menu[];
25
+ // }
26
26
 
27
27
  export async function go2() {
28
28
  await Boot({
@@ -37,7 +37,10 @@ export async function go2() {
37
37
  },
38
38
  log: 'info',
39
39
  columnMode: ColumnMode.HUMP,
40
- sqlDir: 'E:/pro/baja-lite/xml'
40
+ sqlDir: 'E:/pro/baja-lite/xml',
41
+ sqlMap: {
42
+ ['test.test']: `SELECT * FROM cp_user {{#username}} WHERE username = :username {{/username}}`
43
+ }
41
44
  });
42
45
  const service = new AmaService2();
43
46
  await service.transaction<number>({
@@ -90,13 +93,12 @@ export async function go2() {
90
93
  // })
91
94
  // console.log(44, rt4);
92
95
 
93
- // const rt5 = await service.select<string>({
94
- // sql: `SELECT seller_sku FROM ama_fuck WHERE seller_sku LIKE CONCAT(:sku, '%');SELECT seller_sku FROM ama_fuck WHERE seller_sku LIKE CONCAT(:sku, '%');SELECT seller_sku FROM ama_fuck WHERE seller_sku LIKE CONCAT(:sku, '%')`,
95
- // params: { sku: 'SellerSKU4' },
96
- // selectResult: SelectResult.Many_Row_One_Column,
97
- // multiple: true
98
- // })
99
- // console.log(55, rt5);
96
+ const rt5 = await service.select<{username:string}>({
97
+ sqlId: 'test.test',
98
+ params: { username: '1111' },
99
+ selectResult: SelectResult.RS_CS
100
+ })
101
+ console.log(55, rt5.length);
100
102
  // const rt6 = await service.stream().eq('sellerSku', 'SellerSKU1').excuteSelect({
101
103
  // selectResult: SelectResult.Many_Row_Many_Column,
102
104
  // });
@@ -106,19 +108,19 @@ export async function go2() {
106
108
  }
107
109
  });
108
110
 
109
- const data = await service.select<Menu>({
110
- sql: 'SELECT resourceid, resourcepid,resourcename FROM cp_resource ',
111
- params: {
112
- site: '1234',
113
- matchInfo: { reportType: 'yyyy', id: '11' }
114
- },
115
- // mapper: [
116
- // ['site', ['info', 'bSist'], 989],
117
- // ['site', ['info2', 'bSist'], 33],
118
- // ['site', ['Bsite'], 0]
119
- // ]
120
- });
121
- console.log(data);
111
+ // const data = await service.select<Menu>({
112
+ // sql: 'SELECT resourceid, resourcepid,resourcename FROM cp_resource ',
113
+ // params: {
114
+ // site: '1234',
115
+ // matchInfo: { reportType: 'yyyy', id: '11' }
116
+ // },
117
+ // // mapper: [
118
+ // // ['site', ['info', 'bSist'], 989],
119
+ // // ['site', ['info2', 'bSist'], 33],
120
+ // // ['site', ['Bsite'], 0]
121
+ // // ]
122
+ // });
123
+ // console.log(data);
122
124
 
123
125
  }
124
126
  go2();