namirasoft-node 1.3.57 → 1.3.59

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.
@@ -5,7 +5,6 @@ export declare abstract class BaseDatabase {
5
5
  abstract sync(force: boolean): Promise<void>;
6
6
  addTable(name: string, table: any): void;
7
7
  getTable<T>(name: string): T;
8
- abstract getValues(table: string, column: string, limit: number): Promise<string[]>;
9
8
  paginate(page_number: number, page_size: number, page_size_default?: number): {
10
9
  offset: number;
11
10
  limit: number;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseDatabase = void 0;
4
+ const namirasoft_core_1 = require("namirasoft-core");
4
5
  class BaseDatabase {
5
6
  constructor() {
6
7
  this.tables = {};
@@ -9,7 +10,10 @@ class BaseDatabase {
9
10
  this.tables[name] = table;
10
11
  }
11
12
  getTable(name) {
12
- return this.tables[name];
13
+ let ans = this.tables[name];
14
+ if (!ans)
15
+ namirasoft_core_1.ErrorOperation.throwHTTP(404, `Table '${name}' not found`);
16
+ return ans;
13
17
  }
14
18
  paginate(page_number, page_size, page_size_default) {
15
19
  if (isNaN(page_number))
@@ -1 +1 @@
1
- {"version":3,"file":"BaseDatabase.js","sourceRoot":"","sources":["../src/BaseDatabase.ts"],"names":[],"mappings":";;;AAAA,MAAsB,YAAY;IAAlC;QAEY,WAAM,GAA4B,EAAE,CAAC;IA6BjD,CAAC;IAzBG,QAAQ,CAAC,IAAY,EAAE,KAAU;QAE7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,QAAQ,CAAI,IAAY;QAEpB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAM,CAAC;IAClC,CAAC;IAED,QAAQ,CAAC,WAAmB,EAAE,SAAiB,EAAE,iBAA0B;QAGvE,IAAI,KAAK,CAAC,WAAW,CAAC;YAClB,WAAW,GAAG,CAAC,CAAC;QAEpB,IAAI,KAAK,CAAC,SAAS,CAAC;YAChB,IAAI,iBAAiB;gBACjB,SAAS,GAAG,iBAAiB,CAAC;QACtC,IAAI,KAAK,CAAC,SAAS,CAAC;YAChB,SAAS,GAAG,EAAE,CAAC;QAEnB,IAAI,MAAM,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;QAC3C,IAAI,KAAK,GAAG,SAAS,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;CACJ;AA/BD,oCA+BC"}
1
+ {"version":3,"file":"BaseDatabase.js","sourceRoot":"","sources":["../src/BaseDatabase.ts"],"names":[],"mappings":";;;AAAA,qDAAiD;AAEjD,MAAsB,YAAY;IAAlC;QAEY,WAAM,GAA4B,EAAE,CAAC;IA+BjD,CAAC;IA3BG,QAAQ,CAAC,IAAY,EAAE,KAAU;QAE7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,QAAQ,CAAI,IAAY;QAEpB,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAM,CAAC;QACjC,IAAI,CAAC,GAAG;YACJ,gCAAc,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,IAAI,aAAa,CAAC,CAAC;QAC/D,OAAO,GAAG,CAAC;IACf,CAAC;IACD,QAAQ,CAAC,WAAmB,EAAE,SAAiB,EAAE,iBAA0B;QAGvE,IAAI,KAAK,CAAC,WAAW,CAAC;YAClB,WAAW,GAAG,CAAC,CAAC;QAEpB,IAAI,KAAK,CAAC,SAAS,CAAC;YAChB,IAAI,iBAAiB;gBACjB,SAAS,GAAG,iBAAiB,CAAC;QACtC,IAAI,KAAK,CAAC,SAAS,CAAC;YAChB,SAAS,GAAG,EAAE,CAAC;QAEnB,IAAI,MAAM,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;QAC3C,IAAI,KAAK,GAAG,SAAS,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;CACJ;AAjCD,oCAiCC"}
@@ -9,7 +9,8 @@ export declare abstract class BaseTable<D extends BaseDatabase, ModelColumnOptio
9
9
  secure(obj: any): any;
10
10
  getArraySchema(require: boolean, name?: string): ArraySchema;
11
11
  getSchema(require: boolean, name?: string): ObjectSchema;
12
- protected abstract forEachColumn(handler: (name: string, column: ModelColumnOption) => void): void;
12
+ checkColumn(column: string): void;
13
+ abstract forEachColumn(handler: (name: string, column: ModelColumnOption) => void): void;
13
14
  private getVariableSchema;
14
15
  protected abstract getTypeSchema(element: ModelColumnOption): BaseTypeSchema;
15
16
  protected getExamples(): {
package/dist/BaseTable.js CHANGED
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseTable = void 0;
4
4
  const namirasoft_schema_1 = require("namirasoft-schema");
5
+ const namirasoft_core_1 = require("namirasoft-core");
5
6
  class BaseTable {
6
7
  constructor(database) {
7
8
  this.database = database;
@@ -33,6 +34,12 @@ class BaseTable {
33
34
  });
34
35
  return ans;
35
36
  }
37
+ checkColumn(column) {
38
+ let columns = [];
39
+ this.forEachColumn(name => columns.push(name));
40
+ if (!columns.includes(column))
41
+ namirasoft_core_1.ErrorOperation.throwHTTP(404, `Column '${column}' not found`);
42
+ }
36
43
  getVariableSchema(name, element, read_only) {
37
44
  var _a;
38
45
  let schema = this.getTypeSchema(element);
@@ -1 +1 @@
1
- {"version":3,"file":"BaseTable.js","sourceRoot":"","sources":["../src/BaseTable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseTable.js","sourceRoot":"","sources":["../src/BaseTable.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,4 @@ export declare class EmptyDatabase extends BaseDatabase {
3
3
  init(): void;
4
4
  connect(): void;
5
5
  sync(_: boolean): Promise<void>;
6
- getValues(_: string, __: string, ___: number): Promise<string[]>;
7
6
  }
@@ -17,11 +17,6 @@ class EmptyDatabase extends BaseDatabase_1.BaseDatabase {
17
17
  sync(_) {
18
18
  return __awaiter(this, void 0, void 0, function* () { });
19
19
  }
20
- getValues(_, __, ___) {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- return [];
23
- });
24
- }
25
20
  }
26
21
  exports.EmptyDatabase = EmptyDatabase;
27
22
  //# sourceMappingURL=EmptyDatabase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyDatabase.js","sourceRoot":"","sources":["../src/EmptyDatabase.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAA8C;AAE9C,MAAa,aAAc,SAAQ,2BAAY;IAElC,IAAI,KAAK,CAAC;IACV,OAAO,KAAK,CAAC;IACP,IAAI,CAAC,CAAU;8DAAI,CAAC;KAAA;IACpB,SAAS,CAAC,CAAS,EAAE,EAAU,EAAE,GAAW;;YAEvD,OAAO,EAAE,CAAC;QACd,CAAC;KAAA;CACJ;AATD,sCASC"}
1
+ {"version":3,"file":"EmptyDatabase.js","sourceRoot":"","sources":["../src/EmptyDatabase.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAA8C;AAE9C,MAAa,aAAc,SAAQ,2BAAY;IAElC,IAAI,KAAK,CAAC;IACV,OAAO,KAAK,CAAC;IACP,IAAI,CAAC,CAAU;8DAAI,CAAC;KAAA;CACtC;AALD,sCAKC"}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "framework": "npm",
9
9
  "application": "package",
10
10
  "private": false,
11
- "version": "1.3.57",
11
+ "version": "1.3.59",
12
12
  "author": "Amir Abolhasani",
13
13
  "license": "MIT",
14
14
  "main": "./dist/index.js",
@@ -21,7 +21,7 @@
21
21
  "@types/cookie-parser": "^1.4.7",
22
22
  "@types/cors": "^2.8.17",
23
23
  "@types/express": "^4.17.21",
24
- "@types/node": "^20.14.4",
24
+ "@types/node": "^20.14.6",
25
25
  "@types/node-cron": "^3.0.11",
26
26
  "@types/nodemailer": "^6.4.15",
27
27
  "@types/nodemailer-smtp-transport": "^2.7.8",
@@ -31,12 +31,12 @@
31
31
  "cookie-parser": "^1.4.6",
32
32
  "cors": "^2.8.5",
33
33
  "express": "^4.19.2",
34
- "joi": "^17.13.1",
35
- "namirasoft-core": "^1.3.57",
34
+ "joi": "^17.13.3",
35
+ "namirasoft-core": "^1.3.62",
36
36
  "namirasoft-log": "^1.3.24",
37
37
  "namirasoft-schema": "^1.3.16",
38
38
  "node-cron": "^3.0.3",
39
- "nodemailer": "^6.9.13",
39
+ "nodemailer": "^6.9.14",
40
40
  "nodemailer-smtp-transport": "^2.7.4",
41
41
  "request-ip": "^3.3.0",
42
42
  "serve-index": "^1.9.1",
@@ -1,3 +1,5 @@
1
+ import { ErrorOperation } from "namirasoft-core";
2
+
1
3
  export abstract class BaseDatabase
2
4
  {
3
5
  private tables: { [name: string]: any } = {};
@@ -10,9 +12,11 @@ export abstract class BaseDatabase
10
12
  }
11
13
  getTable<T>(name: string): T
12
14
  {
13
- return this.tables[name] as T;
15
+ let ans = this.tables[name] as T;
16
+ if (!ans)
17
+ ErrorOperation.throwHTTP(404, `Table '${name}' not found`);
18
+ return ans;
14
19
  }
15
- abstract getValues(table: string, column: string, limit: number): Promise<string[]>;
16
20
  paginate(page_number: number, page_size: number, page_size_default?: number): { offset: number, limit: number }
17
21
  {
18
22
  // page_number
package/src/BaseTable.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { ArraySchema, BaseTypeSchema, BaseVariableSchema, ObjectSchema } from "namirasoft-schema";
2
2
  import { BaseDatabase } from "./BaseDatabase";
3
+ import { ErrorOperation } from "namirasoft-core";
3
4
 
4
5
  export abstract class BaseTable<D extends BaseDatabase, ModelColumnOption>
5
6
  {
@@ -42,7 +43,14 @@ export abstract class BaseTable<D extends BaseDatabase, ModelColumnOption>
42
43
  });
43
44
  return ans;
44
45
  }
45
- protected abstract forEachColumn(handler: (name: string, column: ModelColumnOption) => void): void;
46
+ public checkColumn(column: string)
47
+ {
48
+ let columns: string[] = [];
49
+ this.forEachColumn(name => columns.push(name));
50
+ if (!columns.includes(column))
51
+ ErrorOperation.throwHTTP(404, `Column '${column}' not found`);
52
+ }
53
+ public abstract forEachColumn(handler: (name: string, column: ModelColumnOption) => void): void;
46
54
  private getVariableSchema(name: string, element: ModelColumnOption, read_only: boolean): BaseVariableSchema
47
55
  {
48
56
  let schema = this.getTypeSchema(element);
@@ -5,8 +5,4 @@ export class EmptyDatabase extends BaseDatabase
5
5
  override init() { }
6
6
  override connect() { }
7
7
  override async sync(_: boolean) { }
8
- override async getValues(_: string, __: string, ___: number): Promise<string[]>
9
- {
10
- return [];
11
- }
12
8
  }