presidium-db-client-server 0.0.0 → 0.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.
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Presidium DB Client and Server may be freely distributed under the CFOSS license.
3
+ */
4
+
1
5
  const stream = require("stream")
2
6
 
3
7
  /**
package/AsyncIterator.js CHANGED
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Presidium DB Client and Server may be freely distributed under the CFOSS license.
3
+ */
4
+
1
5
  const AsyncIterator = {}
2
6
 
3
7
  function sleep(time) {
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Presidium DB Client and Server may be freely distributed under the CFOSS license.
3
+ */
4
+
1
5
  const EventEmitter = require("events")
2
6
 
3
7
  /**
package/BinaryStream.js CHANGED
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Presidium DB Client and Server may be freely distributed under the CFOSS license.
3
+ */
4
+
1
5
  const EventEmitter = require("events")
2
6
 
3
7
  /**
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Presidium DB Client and Server may be freely distributed under the CFOSS license.
3
+ */
4
+
1
5
  require("rubico/global")
2
6
  const DiskHashTable = require("presidium/DiskHashTable")
3
7
  const DiskSortedHashTable = require("presidium/DiskSortedHashTable")
package/DatabaseServer.js CHANGED
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Presidium DB Client and Server may be freely distributed under the CFOSS license.
3
+ */
4
+
5
+ require("rubico/global")
1
6
  const HTTP = require("presidium/HTTP")
2
7
  const DiskHashTable = require("presidium/DiskHashTable")
3
8
  const DatabaseHandler = require("./DatabaseHandler")
@@ -61,7 +66,17 @@ class DatabaseServer {
61
66
  hts: this.hts,
62
67
  })
63
68
 
64
- this.server = HTTP.Server(databaseHandler)
69
+ const handler = tryCatch(
70
+ databaseHandler,
71
+ function errorHandler(error, request, response) {
72
+ response.writeHead(error.code ?? 500, {
73
+ "Content-Type": "text/plain",
74
+ })
75
+ response.end(error.message)
76
+ }
77
+ )
78
+
79
+ this.server = HTTP.Server(handler)
65
80
  }
66
81
 
67
82
  /**
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Presidium DB Client and Server may be freely distributed under the CFOSS license.
3
+ */
4
+
1
5
  require("rubico/global")
2
6
  const HTTP = require("presidium/HTTP")
3
7
  const Readable = require("presidium/Readable")
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Presidium DB Client and Server may be freely distributed under the CFOSS license.
3
+ */
4
+
1
5
  require("rubico/global")
2
6
  const HTTP = require("presidium/HTTP")
3
7
  const handleServerResponse = require("./handleServerResponse")
package/README.md ADDED
@@ -0,0 +1,55 @@
1
+ # Presidium DB Client and Server
2
+ ![presidium](https://rubico.land/assets/presidium-logo-3-w200.jpg)
3
+
4
+ Source code: [GitHub](https://github.com/richytong/presidium-websocket) |
5
+ License: [CFOSS](https://cloutsworld.com/en-us/legal/license/cfoss)
6
+
7
+ ![Node.js CI](https://github.com/richytong/presidium-db-client-server/workflows/Node.js%20CI/badge.svg)
8
+ [![codecov](https://codecov.io/gh/richytong/presidium-db-client-server/graph/badge.svg?token=07P6G8GIOQ)](https://codecov.io/gh/richytong/presidium-db-client-server)
9
+ [![npm version](https://img.shields.io/npm/v/presidium-db-client-server.svg?style=flat)](https://www.npmjs.com/package/presidium-db-client-server)
10
+
11
+ Presidium DB Client and Server.
12
+
13
+ ```javascript
14
+ const DatabaseServer = require("presidium-db-client-server/DatabaseServer")
15
+ const DiskHashTableClient = require("presidium-db-client-server/DiskHashTableClient")
16
+
17
+ const server = new DatabaseServer({
18
+ databasePath: `${__dirname}/database`,
19
+ })
20
+ await server.init()
21
+
22
+ server.listen(5000, () => {
23
+ console.log("Database server listening on port 5000")
24
+ })
25
+
26
+ const sessionHt = new DiskHashTableClient({
27
+ serverUrl: "http://localhost:7357",
28
+ tableName: "Session",
29
+ })
30
+
31
+ const accessToken = "token"
32
+ const session = { accessToken }
33
+
34
+ await sessionHt.set(accessToken, JSON.stringify(session))
35
+
36
+ const sessionJson = await sessionHt.get(accessToken)
37
+
38
+ await sessionHt.delete(accessToken)
39
+ ```
40
+
41
+ ## Docs
42
+ Coming soon.
43
+
44
+ ## Installation
45
+
46
+ with [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm):
47
+ ```bash
48
+ npm i presidium-db-client-server
49
+ ```
50
+
51
+ ## License
52
+ Presidium DB Client and Server is distributed under the [CFOSS License](https://cloutsworld.com/en-us/legal/license/cfoss).
53
+
54
+ ## Support
55
+ * minimum Node.js version: 16
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Presidium DB Client and Server may be freely distributed under the CFOSS license.
3
+ */
4
+
1
5
  const EventEmitter = require("events")
2
6
 
3
7
  /**
package/TextStream.js CHANGED
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Presidium DB Client and Server may be freely distributed under the CFOSS license.
3
+ */
4
+
1
5
  const EventEmitter = require("events")
2
6
 
3
7
  /**
package/buffersToEntry.js CHANGED
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Presidium DB Client and Server may be freely distributed under the CFOSS license.
3
+ */
4
+
1
5
  /**
2
6
  * @name buffersToEntry
3
7
  *
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Presidium DB Client and Server may be freely distributed under the CFOSS license.
3
+ */
4
+
1
5
  const Readable = require("presidium/Readable")
2
6
  const TextStream = require("./TextStream")
3
7
  const BinaryStream = require("./BinaryStream")
@@ -52,9 +56,6 @@ async function handleServerResponse(response, options = {}) {
52
56
  const stream = new BinaryEntriesStream(response, entryLength, delimiter, encoding)
53
57
  return AsyncIterator.fromEvents(stream, "entry")
54
58
  }
55
- if (response.headers["content-type"] == "application/json") {
56
- return Readable.JSON(response)
57
- }
58
59
  if (response.headers["content-type"] == "application/octet-stream") {
59
60
  return Readable.Buffer(response)
60
61
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "presidium-db-client-server",
3
- "version": "0.0.0",
3
+ "version": "0.1.1",
4
4
  "description": "Presidium DB client and server library",
5
5
  "author": "Richard Tong",
6
6
  "license": "CFOSS",
@@ -37,5 +37,11 @@
37
37
  "scripts": {
38
38
  "test": "node test.js"
39
39
  },
40
- "dependencies": {}
40
+ "dependencies": {
41
+ "presidium": "^4.5.0",
42
+ "rubico": "^2.20.0"
43
+ },
44
+ "devDependencies": {
45
+ "codecov": "^3.8.2"
46
+ }
41
47
  }