@oino-ts/types 0.0.15 → 0.0.16

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/README.md CHANGED
@@ -10,15 +10,15 @@
10
10
  # GETTING STARTED
11
11
 
12
12
  ### Setup
13
- Install the `@oino-ts/core` npm package and necessary database packages and import them in your code.
13
+ Install the `@oino-ts/db` npm package and necessary database packages and import them in your code.
14
14
  ```
15
- bun install @oino-ts/core
16
- bun install @oino-ts/bunsqlite
15
+ bun install @oino-ts/db
16
+ bun install @oino-ts/db-bunsqlite
17
17
  ```
18
18
 
19
19
  ```
20
- import { OINODb, OINOApi, OINOFactory } from "@oino-ts/core";
21
- import { OINODbBunSqlite } from "@oino-ts/bunsqlite"
20
+ import { OINODb, OINOApi, OINOFactory } from "@oino-ts/db";
21
+ import { OINODbBunSqlite } from "@oino-ts/db-bunsqlite"
22
22
  ```
23
23
 
24
24
  ### Register database and logger
@@ -51,7 +51,7 @@
51
51
  ### Write results back to HTTP Response
52
52
  The results for a GET request will contain [`OINOModelSet`](https://pragmatta.github.io/oino-ts/classes/db_src.OINODbModelSet.html) data that can be written out as JSON or CSV as needed. For other requests result is just success or error with messages.
53
53
  ```
54
- return new Response(result.modelset.writeString(OINOContentType.json))
54
+ return new Response(result.data.writeString(OINOContentType.json))
55
55
  ```
56
56
 
57
57
 
@@ -129,12 +129,13 @@
129
129
  - Bun Sqlite through Bun native implementation
130
130
  - Postgresql through [pg](https://www.npmjs.com/package/pg)-package
131
131
  - Mariadb / Mysql-support through [mariadb](https://www.npmjs.com/package/mariadb)-package
132
+ - Sql Server through [mssql](https://www.npmjs.com/package/mssql)-package
132
133
 
133
134
  ## Complex Keys
134
135
  To support tables with multipart primary keys OINO generates a composite key `_OINOID_` that is included in the result and can be used as the REST ID. For example in the example above table `OrderDetails` has two primary keys `OrderID` and `ProductID` making the `_OINOID_` of form `11077:99`.
135
136
 
136
137
  ## Power Of SQL
137
- Since OINO controls the SQL, WHERE-conditions can be defined with [`OINOSqlFilter`](https://pragmatta.github.io/oino-ts/classes/db_src.OINODbSqlFilter.html) and order with [`OINOSqlOrder`](https://pragmatta.github.io/oino-ts/classes/db_src.OINODbSqlOrder.html) that are passed as HTTP request parameters. No more API development where you make unique API endpoints for each filter that fetch all data with original API and filter in backend code. Every API can be filtered when and as needed without unnessecary data tranfer and utilizing SQL indexing when available.
138
+ Since OINO is just generating SQL, WHERE-conditions can be defined with [`OINOSqlFilter`](https://pragmatta.github.io/oino-ts/classes/db_src.OINODbSqlFilter.html) and order with [`OINOSqlOrder`](https://pragmatta.github.io/oino-ts/classes/db_src.OINODbSqlOrder.html) that are passed as HTTP request parameters. No more API development where you make unique API endpoints for each filter that fetch all data with original API and filter in backend code. Every API can be filtered when and as needed without unnessecary data tranfer and utilizing SQL indexing when available.
138
139
 
139
140
  ## Swagger Support
140
141
  Swagger is great as long as the definitions are updated and with OINO you can automatically get a Swagger definition including a data model schema.
@@ -158,7 +159,7 @@
158
159
  # STATUS
159
160
  OINO is currently a hobby project which should and should considered in alpha status. That also means compatibility breaking changes can be made without prior notice when architectual issues are discovered.
160
161
 
161
- ## Beta
162
+ ## Beta
162
163
  For a beta status following milestones are planned:
163
164
 
164
165
  ### Realistic app
@@ -205,14 +206,16 @@
205
206
  # LINKS
206
207
  - [Github repository](https://github.com/pragmatta/oino-ts)
207
208
  - [NPM repository](https://www.npmjs.com/org/oino-ts)
208
-
209
+
209
210
 
210
211
  # ACKNOWLEDGEMENTS
211
212
 
212
213
  ## Libraries
213
214
  OINO uses the following open source libraries and npm packages and I would like to thank everyone for their contributions:
214
- - Postgresql support by [node-postgres package](https://www.npmjs.com/package/pg)
215
- - Mariadb / Mysql-support by [mariadb package](https://www.npmjs.com/package/mariadb)
215
+ - Postgresql [node-postgres package](https://www.npmjs.com/package/pg)
216
+ - Mariadb / Mysql [mariadb package](https://www.npmjs.com/package/mariadb)
217
+ - Sql Server [mssql package](https://www.npmjs.com/package/mssql)
218
+ - Custom base encoding [base-x package](https://www.npmjs.com/package/base-x)
216
219
 
217
220
  ## Bun
218
221
  OINO has been developed using the Bun runtime, not because of the speed improvements but for the first class Typescript support and integrated developper experience. Kudos on the bun team for making Typescript work more exiting again.
@@ -40,7 +40,7 @@ export declare class OINOStr {
40
40
  *
41
41
  * @param str string to decode
42
42
  */
43
- static decodeJSON(str: string): string | null | undefined;
43
+ static decodeJSON(str: string): string;
44
44
  /**
45
45
  * Encode OINO serialized strings as valid CSV.
46
46
  *
@@ -52,7 +52,7 @@ export declare class OINOStr {
52
52
  *
53
53
  * @param str string to decode
54
54
  */
55
- static decodeCSV(str: string): string | null | undefined;
55
+ static decodeCSV(str: string): string;
56
56
  /**
57
57
  * Encode OINO serialized strings as valid Formdata.
58
58
  *
@@ -64,7 +64,7 @@ export declare class OINOStr {
64
64
  *
65
65
  * @param str string to decode
66
66
  */
67
- static decodeFormdata(str: string): string | null | undefined;
67
+ static decodeFormdata(str: string): string;
68
68
  /**
69
69
  * Encode OINO serialized strings as valid Urlencode.
70
70
  *
@@ -76,7 +76,7 @@ export declare class OINOStr {
76
76
  *
77
77
  * @param str string to decode
78
78
  */
79
- static decodeUrlencode(str: string): string | null | undefined;
79
+ static decodeUrlencode(str: string): string;
80
80
  /**
81
81
  * Encode OINO serialized strings as valid HTML content.
82
82
  *
@@ -88,7 +88,7 @@ export declare class OINOStr {
88
88
  *
89
89
  * @param str string to encode
90
90
  */
91
- static decodeHtml(str: string): string | null | undefined;
91
+ static decodeHtml(str: string): string;
92
92
  /**
93
93
  * Decode content type formatted string as OINO serialization.
94
94
  *
@@ -96,7 +96,7 @@ export declare class OINOStr {
96
96
  * @param contentType content type for serialization
97
97
  *
98
98
  */
99
- static decode(str: string, contentType: OINOContentType): string | null | undefined;
99
+ static decode(str: string, contentType: OINOContentType): string;
100
100
  /**
101
101
  * Encode OINO serialized string to the content type formatting.
102
102
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oino-ts/types",
3
- "version": "0.0.15",
3
+ "version": "0.0.16",
4
4
  "description": "OINO TS package for types.",
5
5
  "author": "Matias Kiviniemi (pragmatta)",
6
6
  "license": "MPL-2.0",
package/src/OINOStr.ts CHANGED
@@ -109,7 +109,7 @@ export class OINOStr {
109
109
  *
110
110
  * @param str string to decode
111
111
  */
112
- static decodeJSON(str:string):string|null|undefined {
112
+ static decodeJSON(str:string):string {
113
113
  return str // JSON parsing using JS methods, no need to decode anything
114
114
  }
115
115
 
@@ -133,7 +133,7 @@ export class OINOStr {
133
133
  *
134
134
  * @param str string to decode
135
135
  */
136
- static decodeCSV(str:string):string|null|undefined {
136
+ static decodeCSV(str:string):string {
137
137
  return str.replaceAll("\"\"", "\"")
138
138
  }
139
139
 
@@ -157,7 +157,7 @@ export class OINOStr {
157
157
  *
158
158
  * @param str string to decode
159
159
  */
160
- static decodeFormdata(str:string):string|null|undefined {
160
+ static decodeFormdata(str:string):string {
161
161
  return str
162
162
  }
163
163
  /**
@@ -180,7 +180,7 @@ export class OINOStr {
180
180
  *
181
181
  * @param str string to decode
182
182
  */
183
- static decodeUrlencode(str:string):string|null|undefined {
183
+ static decodeUrlencode(str:string):string {
184
184
  return decodeURIComponent(str)
185
185
  }
186
186
 
@@ -204,7 +204,7 @@ export class OINOStr {
204
204
  *
205
205
  * @param str string to encode
206
206
  */
207
- static decodeHtml(str:string):string|null|undefined {
207
+ static decodeHtml(str:string):string {
208
208
  return str.replaceAll('&amp;', '&').replaceAll('&lt;', '<').replaceAll('&gt;', '>').replaceAll('&quot;', '"').replaceAll('&#039;', "'")
209
209
  }
210
210
  /**
@@ -214,7 +214,7 @@ export class OINOStr {
214
214
  * @param contentType content type for serialization
215
215
  *
216
216
  */
217
- static decode(str:string, contentType:OINOContentType):string|null|undefined {
217
+ static decode(str:string, contentType:OINOContentType):string {
218
218
  if (contentType == OINOContentType.csv) {
219
219
  return this.decodeCSV(str)
220
220
  } else if (contentType == OINOContentType.json) {