pathchain 1.0.0 → 1.0.3

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.
Files changed (4) hide show
  1. package/getter.js +52 -0
  2. package/index.js +38 -0
  3. package/maker.js +61 -0
  4. package/package.json +1 -1
package/getter.js ADDED
@@ -0,0 +1,52 @@
1
+ var fs = require("fs");
2
+ var pb = require('protocol-buffers');
3
+ var dt = require('date-and-time');
4
+
5
+ /** getCurrentDate
6
+ * [Function that returns current datetime string on "MMM DD YYYY HH:mm:ss [GMT]Z" format]
7
+ *
8
+ * @return {string} current_datetime
9
+ */
10
+ function getCurrentDate(format = 'MM DD YYYY HH:mm:SSS [GMT]Z'){
11
+ var current_datetime = new Date()
12
+ current_datetime = dt.format(current_datetime, dt.compile(format, true));
13
+
14
+ return current_datetime;
15
+ }
16
+
17
+ /** getMomentObj
18
+ * [Function that recieves a moment hash and returns the moment object]
19
+ *
20
+ * @param {string} xmoment (required)
21
+ *
22
+ * @return void
23
+ */
24
+ function getMomentObj(xmoment) {
25
+ // "moments/hash" FORMAT EXCEPTION
26
+ if(xmoment.split("/").length > 1){
27
+ xmoment = xmoment.split("/")[1]
28
+ }
29
+
30
+ // LOADING PB
31
+ var moment_pb = pb(fs.readFileSync('node_modules/pathos-proto-infra/proto/moment.proto'))
32
+
33
+ // NOT FOUND EXCEPTION
34
+ var fileContents;
35
+ try {
36
+ fileContents = fs.readFileSync("files/moments/"+xmoment);
37
+ } catch (err) {
38
+ if (err.code === 'ENOENT') {
39
+ return "Moment buffer not found";
40
+ } else {
41
+ throw err;
42
+ }
43
+ }
44
+
45
+ // DECODING MOMENT
46
+ var moment_enc = fileContents
47
+ var moment_obj = moment_pb.moment.decode(moment_enc)
48
+
49
+ return moment_obj;
50
+ }
51
+
52
+ module.exports = { getCurrentDate, getMomentObj }
package/index.js CHANGED
@@ -1,3 +1,6 @@
1
+ const maker = require("./maker");
2
+ const getter = require("./getter");
3
+
1
4
  ///////////////
2
5
  /// HELLO ///
3
6
  ///////////////
@@ -12,4 +15,39 @@
12
15
  exports.hello = (name = "nameless entity") => {
13
16
  var result = "Hello from the Dream Operator's Garage, " + name;
14
17
  return result;
18
+ }
19
+
20
+
21
+ ////////////////
22
+ /// MOMENT ///
23
+ ////////////////
24
+
25
+ /** makeMoment
26
+ * [Moment maker]
27
+ *
28
+ * @param {string} datetime (optional, default=*current datetime*)
29
+ * @param {float} lat (optional, default=0)
30
+ * @param {float} lon (optional, default=0)
31
+ * @param {float} x (optional, default=0)
32
+ * @param {float} y (optional, default=0)
33
+ * @param {float} z (optional, default=0)
34
+ * * @param {string} format (optional, default="ddd MMM DD YYYY HH:mm:ss [GMT]Z")
35
+ *
36
+ * @return {string} moment_buffer
37
+ */
38
+ exports.makeMoment = (datetime = getter.getCurrentDate(), lat = 0, lon = 0, x = 0, y = 0, z = 0, format = 'MM DD YYYY HH:mm:SSS [GMT]Z') => {
39
+ const moment_buffer = maker.moment(datetime, lat, lon, x, y, z, format);
40
+ return moment_buffer;
41
+ }
42
+
43
+ /** getMomentObj
44
+ * [Function that recieves a moment hash and returns the moment object]
45
+ *
46
+ * @param {string} xmoment (required)
47
+ *
48
+ * @return {obj} moment_object
49
+ */
50
+ exports.getMomentObj = (xmoment) => {
51
+ const moment_object = getter.getMomentObj(xmoment);
52
+ return moment_object;
15
53
  }
package/maker.js ADDED
@@ -0,0 +1,61 @@
1
+ var fs = require("fs");
2
+ var pb = require('protocol-buffers');
3
+ var dt = require('date-and-time');
4
+ var sha256 = require("js-sha256");
5
+ // const getter = require("./getter");
6
+ // const checker = require("./checker");
7
+
8
+ /** moment
9
+ * [Moment Protocol Buffer Creation]
10
+ *
11
+ * @param {string} datetime (optional)
12
+ * @param {float} lat (optional)
13
+ * @param {float} lon (optional)
14
+ * @param {float} x (optional)
15
+ * @param {float} y (optional)
16
+ * @param {float} z (optional)
17
+ * * @param {string} format (optional)
18
+ *
19
+ * @return {string} moment_buffer
20
+ */
21
+ function moment(datetime, lat, lon, x, y, z, format) {
22
+ // let moment_pb = require('node_modules/proto/moment.proto')
23
+ var moment_pb = pb(fs.readFileSync('node_modules/pathos-proto-infra/proto/moment.proto'))
24
+
25
+ var date_obj = dt.preparse(datetime, format);
26
+ var moment_obj = {
27
+ coordinates: {
28
+ lat: lat,
29
+ lon: lon,
30
+ xyz: { x: x, y: y, z: z }
31
+ },
32
+ datetime: {
33
+ Y: date_obj.Y,
34
+ M: date_obj.M,
35
+ D: date_obj.D,
36
+ H: date_obj.H,
37
+ A: date_obj.A,
38
+ h: date_obj.h,
39
+ m: date_obj.m,
40
+ s: date_obj.s,
41
+ S: date_obj.S,
42
+ Z: date_obj.Z,
43
+ _index: date_obj._index,
44
+ _length: date_obj._length,
45
+ _match: date_obj._match
46
+ }
47
+ }
48
+ // console.log(".:MOMENT OBJECT:. :", moment_obj)
49
+
50
+ var buffer = moment_pb.moment.encode(moment_obj);
51
+
52
+ var moment_hash = sha256(JSON.stringify(moment_pb.moment.decode(buffer)));
53
+ // console.log(" -> Moment hash: ", moment_hash)
54
+
55
+ checker.checkDir("files/moments/")
56
+ fs.writeFileSync("files/moments/" + moment_hash, buffer);
57
+
58
+ return moment_hash;
59
+ }
60
+
61
+ module.exports = { moment }
package/package.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "pathchain",
3
- "version": "1.0.0"
3
+ "version": "1.0.3"
4
4
  }