@oino-ts/db 0.1.3 → 0.2.0

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": "@oino-ts/db",
3
- "version": "0.1.3",
3
+ "version": "0.2.0",
4
4
  "description": "OINO TS library package for publishing an SQL database tables as a REST API.",
5
5
  "author": "Matias Kiviniemi (pragmatta)",
6
6
  "license": "MPL-2.0",
@@ -19,12 +19,12 @@
19
19
  "module": "./dist/esm/index.js",
20
20
  "types": "./dist/types/index.d.ts",
21
21
  "dependencies": {
22
- "@oino-ts/common": "0.1.3"
22
+ "@oino-ts/common": "0.2.0"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/node": "^20.14.10",
26
26
  "@types/bun": "^1.1.14",
27
- "@oino-ts/types": "0.1.3",
27
+ "@oino-ts/types": "0.2.0",
28
28
  "typedoc": "^0.25.13"
29
29
  },
30
30
  "files": [
@@ -39,7 +39,7 @@ const api_tests:OINOTestParams[] = [
39
39
  name: "API",
40
40
  apiParams: { tableName: "Orders" },
41
41
  requestParams: {
42
- sqlParams: { filter: OINODbSqlFilter.parse("(ShipPostalCode)-like(0502%)"), order: OINODbSqlOrder.parse("ShipPostalCode desc,Freight asc"), limit: OINODbSqlLimit.parse("5 page 2") }
42
+ sqlParams: { filter: OINODbSqlFilter.parse("(ShipPostalCode)-like(0502%)"), order: OINODbSqlOrder.parse("ShipPostalCode-,Freight+"), limit: OINODbSqlLimit.parse("5 page 2") }
43
43
  },
44
44
  postRow: [30000,"CACTU",1,new Date("2024-04-05"),new Date("2024-04-06"),new Date("2024-04-07"),2,"184.75","a'b\"c%d_e\tf\rg\nh\\i","Garden House Crowther Way","Cowes","British Isles","PO31 7PJ","UK"],
45
45
  putRow: [30000,"CACTU",1,new Date("2023-04-05"),new Date("2023-04-06"),new Date("2023-04-07"),2,"847.51","k'l\"m%n_o\tp\rq\nr\\s","59 rue de l'Abbaye","Cowes2","Western Europe","PO31 8PJ","UK"]
@@ -48,7 +48,7 @@ const api_tests:OINOTestParams[] = [
48
48
  name: "API",
49
49
  apiParams: { tableName: "Products", failOnOversizedValues: true },
50
50
  requestParams: {
51
- sqlParams: { filter: OINODbSqlFilter.parse("(UnitsInStock)-le(5)"), order: OINODbSqlOrder.parse("UnitsInStock asc,UnitPrice asc"), limit: OINODbSqlLimit.parse("7") }
51
+ sqlParams: { filter: OINODbSqlFilter.parse("(UnitsInStock)-le(5)"), order: OINODbSqlOrder.parse("UnitsInStock,UnitPrice"), limit: OINODbSqlLimit.parse("7") }
52
52
  },
53
53
  postRow: [99, "Umeshu", 1, 1, "500 ml", 12.99, 2, 0, 20, 0],
54
54
  putRow: [99, "Umeshu", 1, 1, undefined, 24.99, 3, 0, 20, 0]
@@ -181,7 +181,7 @@ export class OINODbSqlFilter {
181
181
  *
182
182
  */
183
183
  export class OINODbSqlOrder {
184
- private static _orderColumnRegex = /^\s*(\w+)\s?(ASC|DESC)?\s*?$/i
184
+ private static _orderColumnRegex = /^\s*(\w+)\s?(ASC|DESC|\+|\-)?\s*?$/i
185
185
 
186
186
  private _columns: string[]
187
187
  private _descending: boolean[]
@@ -223,7 +223,8 @@ export class OINODbSqlOrder {
223
223
  let match = OINODbSqlOrder._orderColumnRegex.exec(column_strings[i])
224
224
  if (match != null) {
225
225
  columns.push(match[1])
226
- directions.push((match[2] || "DESC").toUpperCase() == "DESC")
226
+ const dir:string = (match[2] || "ASC").toUpperCase()
227
+ directions.push((dir == "DESC") || (dir == "-"))
227
228
  }
228
229
  }
229
230
  return new OINODbSqlOrder(columns, directions)