vona-module-a-ormdialect 5.0.24 → 5.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/LICENSE CHANGED
File without changes
@@ -72,3 +72,4 @@ declare module 'vona' {
72
72
  }
73
73
  }
74
74
  /** scope: end */
75
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"AACA,6BAA6B;AAC7B,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,0CAA0C,CAAC;AACrG,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,mBAAmB,CAAC;AAC3B,OAAO,QAAQ,mBAAmB,CAAC;IAE/B,UAAiB,sBAAsB;QACrC,4BAA4B,EAAE,oCAAoC,CAAC;QACzE,oBAAoB,EAAE,4BAA4B,CAAC;QACnD,qBAAqB,EAAE,6BAA6B,CAAC;QACrD,iBAAiB,EAAE,yBAAyB,CAAC;KACxC;CAGJ;AACD,OAAO,QAAQ,0BAA0B,CAAC;IAElC,UAAiB,4BAA4B;KAG5C;IAEC,UAAiB,4BAA4B;QAC3C,IAAI,aAAa,IAAI,4CAA4C,CAAC;QAClE,IAAI,UAAU,IAAI,4BAA4B,CAAC;QAC/C,IAAI,aAAa,IAAI,oCAAoC,CAAC;KAC3D;IAEH,UAAiB,oBAAoB;KAGpC;IAEC,UAAiB,oBAAoB;QACnC,IAAI,aAAa,IAAI,oCAAoC,CAAC;QAC1D,IAAI,UAAU,IAAI,oBAAoB,CAAC;QACvC,IAAI,aAAa,IAAI,4BAA4B,CAAC;KACnD;IAEH,UAAiB,iBAAiB;KAGjC;IAEC,UAAiB,iBAAiB;QAChC,IAAI,aAAa,IAAI,iCAAiC,CAAC;QACvD,IAAI,UAAU,IAAI,iBAAiB,CAAC;QACpC,IAAI,aAAa,IAAI,yBAAyB,CAAC;KAChD;CACV;AACD,2BAA2B;AAC3B,6BAA6B;AAC7B,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AAC7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,kBAAkB;QACjC,4CAA4C,EAAE,4BAA4B,CAAC;QAC/E,oCAAoC,EAAE,oBAAoB,CAAC;QAC3D,qCAAqC,EAAE,qBAAqB,CAAC;QAC7D,iCAAiC,EAAE,iBAAiB,CAAC;KAClD;CACF;AACD,2BAA2B;AAC3B,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAGzD,qBACa,sBAAuB,SAAQ,aAAa;CAAG;AAE5D,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,gBAAgB;QAC/B,cAAc,EAAE,sBAAsB,CAAC;KACxC;IAED,UAAiB,mBAAmB;QAClC,UAAU,EAAE,sBAAsB,CAAC;KACpC;CAOF;AACD,iBAAiB"}
@@ -1,2 +1,3 @@
1
1
  export declare const __ThisModule__ = "a-ormdialect";
2
2
  export { ScopeModuleAOrmdialect as ScopeModule } from './index.ts';
3
+ //# sourceMappingURL=this.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"this.d.ts","sourceRoot":"","sources":["../../src/.metadata/this.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -16,3 +16,4 @@ export declare class DatabaseDialectBetterSqlite3 extends BeanDatabaseDialectBas
16
16
  query(result: any): any;
17
17
  private _getDbDir;
18
18
  }
19
+ //# sourceMappingURL=databaseDialect.betterSqlite3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"databaseDialect.betterSqlite3.d.ts","sourceRoot":"","sources":["../../src/bean/databaseDialect.betterSqlite3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,yBAAyB,EACzB,uBAAuB,EACvB,iCAAiC,EAClC,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAAE,uBAAuB,EAAmB,MAAM,mBAAmB,CAAC;AAE7E,MAAM,WAAW,oCAAqC,SAAQ,gCAAgC;CAAG;AAEjG,qBACa,4BAA6B,SAAQ,uBAAuB;IACvE,SAAS,CAAC,aAAa,EAAE,4BAA4B,CAInD;IAEF,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAOnD;IAEI,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAWhH,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMzF,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrF,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAUtG,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAI1E,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,iCAAiC,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAI7G,KAAK,CAAC,MAAM,KAAA;IAIZ,OAAO,CAAC,SAAS;CAGlB"}
@@ -15,3 +15,4 @@ export declare class DatabaseDialectMysql extends BeanDatabaseDialectBase {
15
15
  query(result: any): any;
16
16
  viewDependents(builder: Knex.QueryBuilder, viewName: string): Promise<string[]>;
17
17
  }
18
+ //# sourceMappingURL=databaseDialect.mysql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"databaseDialect.mysql.d.ts","sourceRoot":"","sources":["../../src/bean/databaseDialect.mysql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,uBAAuB,EAAmB,MAAM,mBAAmB,CAAC;AAE7E,MAAM,WAAW,4BAA6B,SAAQ,gCAAgC;CAAG;AAEzF,qBACa,oBAAqB,SAAQ,uBAAuB;IAC/D,SAAS,CAAC,aAAa,EAAE,4BAA4B,CAInD;IAEF,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAMnD;IAEI,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAU/G,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxF,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpF,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAWtG,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIhF,KAAK,CAAC,MAAM,KAAA;IAIN,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAetF"}
@@ -6,3 +6,4 @@ declare const DatabaseDialectMysql3_base: import("vona").Constructable<DatabaseD
6
6
  export declare class DatabaseDialectMysql3 extends DatabaseDialectMysql3_base {
7
7
  }
8
8
  export {};
9
+ //# sourceMappingURL=databaseDialect.mysql3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"databaseDialect.mysql3.d.ts","sourceRoot":"","sources":["../../src/bean/databaseDialect.mysql3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAC;AAK1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,WAAW,6BAA8B,SAAQ,gCAAgC;CAAG;;AAE1F,qBAEa,qBAAsB,SAAQ,0BAAmC;CAAG"}
@@ -15,3 +15,4 @@ export declare class DatabaseDialectPg extends BeanDatabaseDialectBase {
15
15
  query(result: any): any;
16
16
  viewDependents(builder: Knex.QueryBuilder, viewName: string): Promise<string[]>;
17
17
  }
18
+ //# sourceMappingURL=databaseDialect.pg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"databaseDialect.pg.d.ts","sourceRoot":"","sources":["../../src/bean/databaseDialect.pg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,uBAAuB,EAAmB,MAAM,mBAAmB,CAAC;AAE7E,MAAM,WAAW,yBAA0B,SAAQ,gCAAgC;CAAG;AAEtF,qBACa,iBAAkB,SAAQ,uBAAuB;IAC5D,SAAS,CAAC,aAAa,EAAE,4BAA4B,CAInD;IAEF,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAa;IAE5D,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAS/G,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxF,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpF,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAWtG,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIhF,KAAK,CAAC,MAAM,KAAA;IAIN,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAsBtF"}
package/dist/index.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export * from './.metadata/index.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -1,18 +1,17 @@
1
- import { BeanInfo, Virtual, $Class, BeanScopeBase } from 'vona';
2
- import path from 'node:path';
1
+ import { BeanInfo, $Class, Virtual, BeanScopeBase } from 'vona';
2
+ import { __decorate } from 'tslib';
3
3
  import { ensureDir, remove } from 'fs-extra';
4
4
  import { globby } from 'globby';
5
+ import path from 'node:path';
5
6
  import { DatabaseDialect, BeanDatabaseDialectBase } from 'vona-module-a-orm';
6
7
  import { promisify } from 'node:util';
7
8
  import { Scope } from 'vona-module-a-bean';
8
9
 
9
- var _dec$4, _dec2$4, _class$4;
10
- let DatabaseDialectBetterSqlite3 = (_dec$4 = DatabaseDialect(), _dec2$4 = BeanInfo({
11
- module: "a-ormdialect"
12
- }), _dec$4(_class$4 = _dec2$4(_class$4 = class DatabaseDialectBetterSqlite3 extends BeanDatabaseDialectBase {
10
+ let DatabaseDialectBetterSqlite3 = class DatabaseDialectBetterSqlite3 extends BeanDatabaseDialectBase {
13
11
  constructor(...args) {
14
12
  super(...args);
15
13
  this._capabilities = {
14
+ like: true,
16
15
  ilike: false,
17
16
  level: false
18
17
  };
@@ -69,7 +68,10 @@ let DatabaseDialectBetterSqlite3 = (_dec$4 = DatabaseDialect(), _dec2$4 = BeanIn
69
68
  _getDbDir() {
70
69
  return path.join(this.app.projectPath, '.app/sqlite3');
71
70
  }
72
- }) || _class$4) || _class$4);
71
+ };
72
+ DatabaseDialectBetterSqlite3 = __decorate([DatabaseDialect(), BeanInfo({
73
+ module: "a-ormdialect"
74
+ })], DatabaseDialectBetterSqlite3);
73
75
  async function sqlite3_afterCreate(conn) {
74
76
  const pragma = conn.pragma('journal_mode');
75
77
  if (pragma[0]?.journal_mode?.toLocaleLowerCase() !== 'wal') {
@@ -77,14 +79,12 @@ async function sqlite3_afterCreate(conn) {
77
79
  }
78
80
  }
79
81
 
80
- var _dec$3, _dec2$3, _class$3;
81
- let DatabaseDialectMysql = (_dec$3 = DatabaseDialect(), _dec2$3 = BeanInfo({
82
- module: "a-ormdialect"
83
- }), _dec$3(_class$3 = _dec2$3(_class$3 = class DatabaseDialectMysql extends BeanDatabaseDialectBase {
82
+ let DatabaseDialectMysql = class DatabaseDialectMysql extends BeanDatabaseDialectBase {
84
83
  constructor(...args) {
85
84
  super(...args);
86
85
  this._capabilities = {
87
- ilike: false,
86
+ like: false,
87
+ ilike: true,
88
88
  level: true
89
89
  };
90
90
  this._configBase = {
@@ -146,7 +146,10 @@ let DatabaseDialectMysql = (_dec$3 = DatabaseDialect(), _dec2$3 = BeanInfo({
146
146
  });
147
147
  return items.map(item => item.dep_name);
148
148
  }
149
- }) || _class$3) || _class$3);
149
+ };
150
+ DatabaseDialectMysql = __decorate([DatabaseDialect(), BeanInfo({
151
+ module: "a-ormdialect"
152
+ })], DatabaseDialectMysql);
150
153
  async function mysql_afterCreate(conn) {
151
154
  await _executeQuery(conn, 'SET SESSION explicit_defaults_for_timestamp=ON');
152
155
  await _executeQuery(conn, "SET SESSION sql_mode='NO_AUTO_VALUE_ON_ZERO'");
@@ -156,18 +159,16 @@ async function _executeQuery(conn, sql) {
156
159
  return await queryAsync();
157
160
  }
158
161
 
159
- var _dec$2, _dec2$2, _dec3, _class$2;
160
- let DatabaseDialectMysql3 = (_dec$2 = DatabaseDialect(), _dec2$2 = Virtual(), _dec3 = BeanInfo({
162
+ let DatabaseDialectMysql3 = class DatabaseDialectMysql3 extends $Class.extend(DatabaseDialectMysql) {};
163
+ DatabaseDialectMysql3 = __decorate([DatabaseDialect(), Virtual(), BeanInfo({
161
164
  module: "a-ormdialect"
162
- }), _dec$2(_class$2 = _dec2$2(_class$2 = _dec3(_class$2 = class DatabaseDialectMysql3 extends $Class.extend(DatabaseDialectMysql) {}) || _class$2) || _class$2) || _class$2);
165
+ })], DatabaseDialectMysql3);
163
166
 
164
- var _dec$1, _dec2$1, _class$1;
165
- let DatabaseDialectPg = (_dec$1 = DatabaseDialect(), _dec2$1 = BeanInfo({
166
- module: "a-ormdialect"
167
- }), _dec$1(_class$1 = _dec2$1(_class$1 = class DatabaseDialectPg extends BeanDatabaseDialectBase {
167
+ let DatabaseDialectPg = class DatabaseDialectPg extends BeanDatabaseDialectBase {
168
168
  constructor(...args) {
169
169
  super(...args);
170
170
  this._capabilities = {
171
+ like: true,
171
172
  ilike: true,
172
173
  level: true
173
174
  };
@@ -230,13 +231,16 @@ let DatabaseDialectPg = (_dec$1 = DatabaseDialect(), _dec2$1 = BeanInfo({
230
231
  items = items.filter(item => item.toLowerCase() !== viewName.toLowerCase());
231
232
  return items;
232
233
  }
233
- }) || _class$1) || _class$1);
234
-
235
- var _dec, _dec2, _class;
236
- let ScopeModuleAOrmdialect = (_dec = Scope(), _dec2 = BeanInfo({
234
+ };
235
+ DatabaseDialectPg = __decorate([DatabaseDialect(), BeanInfo({
237
236
  module: "a-ormdialect"
238
- }), _dec(_class = _dec2(_class = class ScopeModuleAOrmdialect extends BeanScopeBase {}) || _class) || _class);
237
+ })], DatabaseDialectPg);
239
238
 
239
+ let ScopeModuleAOrmdialect = class ScopeModuleAOrmdialect extends BeanScopeBase {};
240
+ ScopeModuleAOrmdialect = __decorate([Scope(), BeanInfo({
241
+ module: "a-ormdialect"
242
+ })], ScopeModuleAOrmdialect);
240
243
  /** scope: end */
241
244
 
242
245
  export { DatabaseDialectBetterSqlite3, DatabaseDialectMysql, DatabaseDialectMysql3, DatabaseDialectPg, ScopeModuleAOrmdialect };
246
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/bean/databaseDialect.betterSqlite3.ts","../src/bean/databaseDialect.mysql.ts","../src/bean/databaseDialect.mysql3.ts","../src/bean/databaseDialect.pg.ts","../src/.metadata/index.ts"],"sourcesContent":[null,null,null,null,null],"names":["DatabaseDialectBetterSqlite3","BeanDatabaseDialectBase","constructor","args","_capabilities","like","ilike","level","_configBase","useNullAsDefault","pool","afterCreate","conn","done","sqlite3_afterCreate","then","catch","fetchDatabases","_schemaBuilder","databasePrefix","dbDir","_getDbDir","files","globby","cwd","onlyFiles","map","item","name","path","join","createDatabase","databaseName","ensureDir","dropDatabase","remove","part","fetchIndexes","schemaBuilder","tableName","items","raw","indexName","insert","builder","datas","insertAsMysql","select","fn","selectAsSqlite3","query","result","app","projectPath","__decorate","DatabaseDialect","__z_BeanInfo","module","pragma","journal_mode","toLocaleLowerCase","DatabaseDialectMysql","mysql_afterCreate","res","dbs","db","Object","keys","Key_name","viewDependents","viewName","sqlViews","distinct","fromRaw","where","ref_name","dep_name","_executeQuery","sql","queryAsync","promisify","cb","DatabaseDialectMysql3","$Class","extend","Virtual","DatabaseDialectPg","undefined","rows","datname","indexname","insertAsPg","filter","toLowerCase","ScopeModuleAOrmdialect","BeanScopeBase","Scope"],"mappings":"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"}
package/package.json CHANGED
@@ -1,19 +1,17 @@
1
1
  {
2
2
  "name": "vona-module-a-ormdialect",
3
- "type": "module",
4
- "version": "5.0.24",
5
- "title": "a-ormdialect",
6
- "vonaModule": {
7
- "dependencies": {},
8
- "globalDependencies": {
9
- "better-sqlite3": true
10
- }
11
- },
3
+ "version": "5.1.1",
12
4
  "description": "",
13
- "author": "",
14
5
  "keywords": [
15
6
  "Vona Module"
16
7
  ],
8
+ "author": "",
9
+ "files": [
10
+ "assets",
11
+ "dist",
12
+ "src"
13
+ ],
14
+ "type": "module",
17
15
  "exports": {
18
16
  ".": {
19
17
  "types": [
@@ -24,10 +22,13 @@
24
22
  },
25
23
  "./package.json": "./package.json"
26
24
  },
27
- "files": [
28
- "assets",
29
- "dist"
30
- ],
25
+ "scripts": {
26
+ "clean": "rimraf dist tsconfig.build.tsbuildinfo",
27
+ "tsc:publish": "npm run clean && vona :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
28
+ "prepublishOnly": "npm run tsc:publish",
29
+ "prepack": "clean-package",
30
+ "postpack": "clean-package restore && npm run clean"
31
+ },
31
32
  "dependencies": {
32
33
  "better-sqlite3": "^12.5.0",
33
34
  "globby": "^16.0.0",
@@ -39,8 +40,12 @@
39
40
  "clean-package": "^2.2.0",
40
41
  "rimraf": "^6.0.1"
41
42
  },
42
- "scripts": {
43
- "clean": "rimraf dist tsconfig.build.tsbuildinfo",
44
- "tsc:publish": "npm run clean && vona :bin:buildModule && tsc -p tsconfig.build.json"
45
- }
46
- }
43
+ "title": "a-ormdialect",
44
+ "vonaModule": {
45
+ "dependencies": {},
46
+ "globalDependencies": {
47
+ "better-sqlite3": true
48
+ }
49
+ },
50
+ "gitHead": "991189da4443b789fcf77872990b901ccf43bccb"
51
+ }
@@ -0,0 +1,101 @@
1
+ // eslint-disable
2
+ /** databaseDialect: begin */
3
+ export * from '../bean/databaseDialect.betterSqlite3.ts';
4
+ export * from '../bean/databaseDialect.mysql.ts';
5
+ export * from '../bean/databaseDialect.mysql3.ts';
6
+ export * from '../bean/databaseDialect.pg.ts';
7
+ import type { IDatabaseDialectOptionsBetterSqlite3 } from '../bean/databaseDialect.betterSqlite3.ts';
8
+ import type { IDatabaseDialectOptionsMysql } from '../bean/databaseDialect.mysql.ts';
9
+ import type { IDatabaseDialectOptionsMysql3 } from '../bean/databaseDialect.mysql3.ts';
10
+ import type { IDatabaseDialectOptionsPg } from '../bean/databaseDialect.pg.ts';
11
+ import 'vona-module-a-orm';
12
+ declare module 'vona-module-a-orm' {
13
+
14
+ export interface IDatabaseDialectRecord {
15
+ 'a-ormdialect:betterSqlite3': IDatabaseDialectOptionsBetterSqlite3;
16
+ 'a-ormdialect:mysql': IDatabaseDialectOptionsMysql;
17
+ 'a-ormdialect:mysql3': IDatabaseDialectOptionsMysql3;
18
+ 'a-ormdialect:pg': IDatabaseDialectOptionsPg;
19
+ }
20
+
21
+
22
+ }
23
+ declare module 'vona-module-a-ormdialect' {
24
+
25
+ export interface DatabaseDialectBetterSqlite3 {
26
+ /** @internal */
27
+ get scope(): ScopeModuleAOrmdialect;
28
+ }
29
+
30
+ export interface DatabaseDialectBetterSqlite3 {
31
+ get $beanFullName(): 'a-ormdialect.databaseDialect.betterSqlite3';
32
+ get $onionName(): 'a-ormdialect:betterSqlite3';
33
+ get $onionOptions(): IDatabaseDialectOptionsBetterSqlite3;
34
+ }
35
+
36
+ export interface DatabaseDialectMysql {
37
+ /** @internal */
38
+ get scope(): ScopeModuleAOrmdialect;
39
+ }
40
+
41
+ export interface DatabaseDialectMysql {
42
+ get $beanFullName(): 'a-ormdialect.databaseDialect.mysql';
43
+ get $onionName(): 'a-ormdialect:mysql';
44
+ get $onionOptions(): IDatabaseDialectOptionsMysql;
45
+ }
46
+
47
+ export interface DatabaseDialectPg {
48
+ /** @internal */
49
+ get scope(): ScopeModuleAOrmdialect;
50
+ }
51
+
52
+ export interface DatabaseDialectPg {
53
+ get $beanFullName(): 'a-ormdialect.databaseDialect.pg';
54
+ get $onionName(): 'a-ormdialect:pg';
55
+ get $onionOptions(): IDatabaseDialectOptionsPg;
56
+ }
57
+ }
58
+ /** databaseDialect: end */
59
+ /** databaseDialect: begin */
60
+ import type { DatabaseDialectBetterSqlite3 } from '../bean/databaseDialect.betterSqlite3.ts';
61
+ import type { DatabaseDialectMysql } from '../bean/databaseDialect.mysql.ts';
62
+ import type { DatabaseDialectMysql3 } from '../bean/databaseDialect.mysql3.ts';
63
+ import type { DatabaseDialectPg } from '../bean/databaseDialect.pg.ts';
64
+ import 'vona';
65
+ declare module 'vona' {
66
+ export interface IBeanRecordGeneral {
67
+ 'a-ormdialect.databaseDialect.betterSqlite3': DatabaseDialectBetterSqlite3;
68
+ 'a-ormdialect.databaseDialect.mysql': DatabaseDialectMysql;
69
+ 'a-ormdialect.databaseDialect.mysql3': DatabaseDialectMysql3;
70
+ 'a-ormdialect.databaseDialect.pg': DatabaseDialectPg;
71
+ }
72
+ }
73
+ /** databaseDialect: end */
74
+ /** scope: begin */
75
+ import { BeanScopeBase, type BeanScopeUtil } from 'vona';
76
+ import { Scope } from 'vona-module-a-bean';
77
+
78
+ @Scope()
79
+ export class ScopeModuleAOrmdialect extends BeanScopeBase {}
80
+
81
+ export interface ScopeModuleAOrmdialect {
82
+ util: BeanScopeUtil;
83
+ }
84
+
85
+ import 'vona';
86
+ declare module 'vona' {
87
+ export interface IBeanScopeRecord {
88
+ 'a-ormdialect': ScopeModuleAOrmdialect;
89
+ }
90
+
91
+ export interface IBeanScopeContainer {
92
+ ormdialect: ScopeModuleAOrmdialect;
93
+ }
94
+
95
+
96
+
97
+
98
+
99
+
100
+ }
101
+ /** scope: end */
@@ -0,0 +1,2 @@
1
+ export const __ThisModule__ = 'a-ormdialect';
2
+ export { ScopeModuleAOrmdialect as ScopeModule } from './index.ts';
@@ -0,0 +1,92 @@
1
+ import type { Knex } from 'knex';
2
+ import type { TableIdentity } from 'table-identity';
3
+ import type {
4
+ ConfigDatabaseClient,
5
+ IDatabaseDialectCapabilities,
6
+ IDecoratorDatabaseDialectOptions,
7
+ IFetchDatabasesResultItem,
8
+ IFetchIndexesResultItem,
9
+ TypeDatabaseDialectTableColumnsFn,
10
+ } from 'vona-module-a-orm';
11
+
12
+ import { ensureDir, remove } from 'fs-extra';
13
+ import { globby } from 'globby';
14
+ import path from 'node:path';
15
+ import { BeanDatabaseDialectBase, DatabaseDialect } from 'vona-module-a-orm';
16
+
17
+ export interface IDatabaseDialectOptionsBetterSqlite3 extends IDecoratorDatabaseDialectOptions {}
18
+
19
+ @DatabaseDialect<IDatabaseDialectOptionsBetterSqlite3>()
20
+ export class DatabaseDialectBetterSqlite3 extends BeanDatabaseDialectBase {
21
+ protected _capabilities: IDatabaseDialectCapabilities = {
22
+ like: true,
23
+ ilike: false,
24
+ level: false,
25
+ };
26
+
27
+ protected _configBase?: Partial<ConfigDatabaseClient> = {
28
+ useNullAsDefault: true,
29
+ pool: {
30
+ afterCreate(conn, done) {
31
+ sqlite3_afterCreate(conn).then(done).catch(done);
32
+ },
33
+ },
34
+ };
35
+
36
+ async fetchDatabases(_schemaBuilder: Knex.SchemaBuilder, databasePrefix: string): Promise<IFetchDatabasesResultItem[]> {
37
+ const dbDir = this._getDbDir();
38
+ const files = await globby(`${databasePrefix}*.db`, {
39
+ cwd: dbDir,
40
+ onlyFiles: true,
41
+ });
42
+ return files.map(item => {
43
+ return { name: path.join(dbDir, item) };
44
+ });
45
+ }
46
+
47
+ async createDatabase(_schemaBuilder: Knex.SchemaBuilder, databaseName: string): Promise<string> {
48
+ const dbDir = this._getDbDir();
49
+ await ensureDir(dbDir);
50
+ return path.join(dbDir, `${databaseName}.db`);
51
+ }
52
+
53
+ async dropDatabase(_schemaBuilder: Knex.SchemaBuilder, databaseName: string): Promise<void> {
54
+ await remove(databaseName);
55
+ for (const part of ['shm', 'wal', 'journal']) {
56
+ await remove(`${databaseName}-${part}`);
57
+ }
58
+ }
59
+
60
+ async fetchIndexes(schemaBuilder: Knex.SchemaBuilder, tableName: string): Promise<IFetchIndexesResultItem[]> {
61
+ let items: any = await schemaBuilder.raw(`PRAGMA index_list(${tableName})`);
62
+ items = items.map(item => {
63
+ return {
64
+ indexName: item.name,
65
+ };
66
+ });
67
+ return items;
68
+ }
69
+
70
+ async insert(builder: Knex.QueryBuilder, datas: any[]): Promise<TableIdentity[]> {
71
+ return await this.insertAsMysql(builder, datas);
72
+ }
73
+
74
+ async select(builder: Knex.QueryBuilder, datas: any[], fn: TypeDatabaseDialectTableColumnsFn): Promise<any[]> {
75
+ return await this.selectAsSqlite3(builder, datas, fn);
76
+ }
77
+
78
+ query(result) {
79
+ return result;
80
+ }
81
+
82
+ private _getDbDir() {
83
+ return path.join(this.app.projectPath, '.app/sqlite3');
84
+ }
85
+ }
86
+
87
+ async function sqlite3_afterCreate(conn) {
88
+ const pragma: { journal_mode: string }[] = conn.pragma('journal_mode');
89
+ if (pragma[0]?.journal_mode?.toLocaleLowerCase() !== 'wal') {
90
+ conn.pragma('journal_mode = wal');
91
+ }
92
+ }
@@ -0,0 +1,95 @@
1
+ import type { Knex } from 'knex';
2
+ import type { TableIdentity } from 'table-identity';
3
+ import type {
4
+ ConfigDatabaseClient,
5
+ IDatabaseDialectCapabilities,
6
+ IDecoratorDatabaseDialectOptions,
7
+ IFetchDatabasesResultItem,
8
+ IFetchIndexesResultItem,
9
+ } from 'vona-module-a-orm';
10
+
11
+ import { promisify } from 'node:util';
12
+ import { BeanDatabaseDialectBase, DatabaseDialect } from 'vona-module-a-orm';
13
+
14
+ export interface IDatabaseDialectOptionsMysql extends IDecoratorDatabaseDialectOptions {}
15
+
16
+ @DatabaseDialect<IDatabaseDialectOptionsMysql>()
17
+ export class DatabaseDialectMysql extends BeanDatabaseDialectBase {
18
+ protected _capabilities: IDatabaseDialectCapabilities = {
19
+ like: false,
20
+ ilike: true,
21
+ level: true,
22
+ };
23
+
24
+ protected _configBase?: Partial<ConfigDatabaseClient> = {
25
+ pool: {
26
+ afterCreate(conn, done) {
27
+ mysql_afterCreate(conn).then(done).catch(done);
28
+ },
29
+ },
30
+ };
31
+
32
+ async fetchDatabases(schemaBuilder: Knex.SchemaBuilder, databasePrefix: string): Promise<IFetchDatabasesResultItem[]> {
33
+ const res = await schemaBuilder.raw(`show databases like '${databasePrefix}%'`);
34
+ let dbs = res[0];
35
+ dbs = dbs.map(db => {
36
+ const name = db[Object.keys(db)[0]];
37
+ return { name };
38
+ });
39
+ return dbs;
40
+ }
41
+
42
+ async createDatabase(schemaBuilder: Knex.SchemaBuilder, databaseName: string): Promise<string> {
43
+ await schemaBuilder.raw(`CREATE DATABASE \`${databaseName}\` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci`);
44
+ return databaseName;
45
+ }
46
+
47
+ async dropDatabase(schemaBuilder: Knex.SchemaBuilder, databaseName: string): Promise<void> {
48
+ await schemaBuilder.raw(`drop database \`${databaseName}\``);
49
+ }
50
+
51
+ async fetchIndexes(schemaBuilder: Knex.SchemaBuilder, tableName: string): Promise<IFetchIndexesResultItem[]> {
52
+ const res: any = await schemaBuilder.raw(`show index from ${tableName}`);
53
+ let items = res[0];
54
+ items = items.map(item => {
55
+ return {
56
+ indexName: item.Key_name,
57
+ };
58
+ });
59
+ return items;
60
+ }
61
+
62
+ async insert(builder: Knex.QueryBuilder, datas: any[]): Promise<TableIdentity[]> {
63
+ return await this.insertAsMysql(builder, datas);
64
+ }
65
+
66
+ query(result) {
67
+ return result[0];
68
+ }
69
+
70
+ async viewDependents(builder: Knex.QueryBuilder, viewName: string): Promise<string[]> {
71
+ const sqlViews = `
72
+ SELECT T.TABLE_SCHEMA ref_schema,
73
+ T.TABLE_NAME ref_name,
74
+ V.TABLE_NAME dep_name,
75
+ T.TABLE_TYPE type
76
+ FROM INFORMATION_SCHEMA.TABLES T
77
+ INNER JOIN INFORMATION_SCHEMA.VIEWS V
78
+ ON V.TABLE_SCHEMA = T.TABLE_SCHEMA
79
+ AND V.VIEW_DEFINITION LIKE CONCAT('%\`',T.TABLE_NAME,'\`%')
80
+ WHERE T.TABLE_SCHEMA = DATABASE()
81
+ `;
82
+ const items = await builder.distinct('dep_name').fromRaw(`(${sqlViews}) as viewDependents`).where({ ref_name: viewName });
83
+ return items.map(item => item.dep_name);
84
+ }
85
+ }
86
+
87
+ async function mysql_afterCreate(conn) {
88
+ await _executeQuery(conn, 'SET SESSION explicit_defaults_for_timestamp=ON');
89
+ await _executeQuery(conn, "SET SESSION sql_mode='NO_AUTO_VALUE_ON_ZERO'");
90
+ }
91
+
92
+ async function _executeQuery(conn, sql) {
93
+ const queryAsync = promisify(cb => conn.query(sql, cb));
94
+ return await queryAsync();
95
+ }
@@ -0,0 +1,12 @@
1
+ import type { IDecoratorDatabaseDialectOptions } from 'vona-module-a-orm';
2
+
3
+ import { $Class, Virtual } from 'vona';
4
+ import { DatabaseDialect } from 'vona-module-a-orm';
5
+
6
+ import { DatabaseDialectMysql } from './databaseDialect.mysql.ts';
7
+
8
+ export interface IDatabaseDialectOptionsMysql3 extends IDecoratorDatabaseDialectOptions {}
9
+
10
+ @DatabaseDialect<IDatabaseDialectOptionsMysql3>()
11
+ @Virtual()
12
+ export class DatabaseDialectMysql3 extends $Class.extend(DatabaseDialectMysql) {}
@@ -0,0 +1,84 @@
1
+ import type { Knex } from 'knex';
2
+ import type { TableIdentity } from 'table-identity';
3
+ import type {
4
+ ConfigDatabaseClient,
5
+ IDatabaseDialectCapabilities,
6
+ IDecoratorDatabaseDialectOptions,
7
+ IFetchDatabasesResultItem,
8
+ IFetchIndexesResultItem,
9
+ } from 'vona-module-a-orm';
10
+
11
+ import { BeanDatabaseDialectBase, DatabaseDialect } from 'vona-module-a-orm';
12
+
13
+ export interface IDatabaseDialectOptionsPg extends IDecoratorDatabaseDialectOptions {}
14
+
15
+ @DatabaseDialect<IDatabaseDialectOptionsPg>()
16
+ export class DatabaseDialectPg extends BeanDatabaseDialectBase {
17
+ protected _capabilities: IDatabaseDialectCapabilities = {
18
+ like: true,
19
+ ilike: true,
20
+ level: true,
21
+ };
22
+
23
+ protected _configBase?: Partial<ConfigDatabaseClient> = undefined;
24
+
25
+ async fetchDatabases(schemaBuilder: Knex.SchemaBuilder, databasePrefix: string): Promise<IFetchDatabasesResultItem[]> {
26
+ const res: any = await schemaBuilder.raw(`select datname from pg_database where datname like '${databasePrefix}%'`);
27
+ let dbs = res.rows;
28
+ dbs = dbs.map(db => {
29
+ return { name: db.datname };
30
+ });
31
+ return dbs;
32
+ }
33
+
34
+ async createDatabase(schemaBuilder: Knex.SchemaBuilder, databaseName: string): Promise<string> {
35
+ await schemaBuilder.raw(`CREATE DATABASE "${databaseName}" encoding=UTF8`);
36
+ return databaseName;
37
+ }
38
+
39
+ async dropDatabase(schemaBuilder: Knex.SchemaBuilder, databaseName: string): Promise<void> {
40
+ await schemaBuilder.raw(`DROP DATABASE "${databaseName}"`);
41
+ }
42
+
43
+ async fetchIndexes(schemaBuilder: Knex.SchemaBuilder, tableName: string): Promise<IFetchIndexesResultItem[]> {
44
+ const res: any = await schemaBuilder.raw(`select indexname,indexdef from pg_indexes where tablename='${tableName}'`);
45
+ let items = res.rows;
46
+ items = items.map(item => {
47
+ return {
48
+ indexName: item.indexname,
49
+ };
50
+ });
51
+ return items;
52
+ }
53
+
54
+ async insert(builder: Knex.QueryBuilder, datas: any[]): Promise<TableIdentity[]> {
55
+ return await this.insertAsPg(builder, datas);
56
+ }
57
+
58
+ query(result) {
59
+ return result.rows;
60
+ }
61
+
62
+ async viewDependents(builder: Knex.QueryBuilder, viewName: string): Promise<string[]> {
63
+ const sqlViews = `
64
+ select
65
+ ref_nsp.nspname ref_schema, ref_cl.relname ref_name,
66
+ rwr_cl.relkind dep_type,
67
+ rwr_nsp.nspname dep_schema,
68
+ rwr_cl.relname dep_name
69
+ from pg_depend dep
70
+ join pg_class ref_cl on dep.refobjid = ref_cl.oid
71
+ join pg_namespace ref_nsp on ref_cl.relnamespace = ref_nsp.oid
72
+ join pg_rewrite rwr on dep.objid = rwr.oid
73
+ join pg_class rwr_cl on rwr.ev_class = rwr_cl.oid
74
+ join pg_namespace rwr_nsp on rwr_cl.relnamespace = rwr_nsp.oid
75
+ where
76
+ dep.deptype = 'n'
77
+ and dep.classid = 'pg_rewrite'::regclass
78
+ `;
79
+ let items = await builder.distinct('dep_name').fromRaw(`(${sqlViews}) as depend_view`).where({ ref_name: viewName });
80
+ items = items.map(item => item.dep_name);
81
+ items = items.filter((item: string) => item.toLowerCase() !== viewName.toLowerCase());
82
+ return items;
83
+ }
84
+ }
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './.metadata/index.ts';