datanautics 1.1.2 → 2.1.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/CHANGELOG.md CHANGED
@@ -5,9 +5,27 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
6
6
  and this project adheres to [Semantic Versioning](http://semver.org/).
7
7
 
8
+ ## [2.1.0] - 2025-05-17 (**Breaking changes!**)
9
+
10
+ ### Fixed
11
+
12
+ - Reverted changes since 2.0.0 failed
13
+
14
+ ---
15
+
16
+ ## [2.0.0] - 2025-05-17 (**Breaking changes!**)
17
+
18
+ ### Added
19
+
20
+ - Instead of background storing entire object store each key-value eventually
21
+ - Replaced dumpInterval from options
22
+
23
+ ---
24
+
8
25
  ## [1.1.2] - 2025-05-17
9
26
 
10
27
  ### Fixed
28
+
11
29
  - Non-blocking storing
12
30
 
13
31
  ---
@@ -15,6 +33,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
15
33
  ## [1.1.1] - 2025-05-17
16
34
 
17
35
  ### Fixed
36
+
18
37
  - Replaced fs usage with child_process
19
38
 
20
39
  ---
@@ -22,6 +41,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
22
41
  ## [1.1.0] - 2025-05-17
23
42
 
24
43
  ### Fixed
44
+
25
45
  - Fixed storing to avoid RangeError when JSON.parse/JSON.stringify
26
46
 
27
47
  ---
package/README.md CHANGED
@@ -33,7 +33,7 @@ const store = new Datanautics({
33
33
  dumpPath: './data.json',
34
34
  dumpInterval: 1000, // every 1 second
35
35
  verbose: true,
36
- logger: console
36
+ logger: console,
37
37
  });
38
38
 
39
39
  store.set('users[0].name', 'Alice');
@@ -46,12 +46,12 @@ console.log(store.get('users[0].name')); // Output: Alice
46
46
 
47
47
  You can pass the following options to the constructor:
48
48
 
49
- | Option | Type | Description | Default |
50
- |----------------|---------------------|------------------------------------------------------|-------------------------------------------|
51
- | `dumpPath` | `string`, optional | Path to the JSON file for persistent data storage | `node_modules/datanautics/data/data.json` |
52
- | `dumpInterval` | `number`, optional | Interval in milliseconds between auto-dumps | `1000` (1 second) |
53
- | `verbose` | `boolean`, optional | Log errors during reading/writing | `false` |
54
- | `logger` | `object`, optional | Custom logger (`console`, `winston`, etc.) | `console` |
49
+ | Option | Type | Description | Default |
50
+ | -------------- | ------------------- | ------------------------------------------------- | ----------------------------------------- |
51
+ | `dumpPath` | `string`, optional | Path to the JSON file for persistent data storage | `node_modules/datanautics/data/data.json` |
52
+ | `dumpInterval` | `number`, optional | Interval in milliseconds between auto-dumps | `1000` (1 second) |
53
+ | `verbose` | `boolean`, optional | Log errors during reading/writing | `false` |
54
+ | `logger` | `object`, optional | Custom logger (`console`, `winston`, etc.) | `console` |
55
55
 
56
56
  ---
57
57
 
@@ -56,10 +56,15 @@ class Datanautics {
56
56
  const files = (0, fs_1.readdirSync)(this.options.dumpPath);
57
57
  for (const file of files) {
58
58
  if (file !== '.gitkeep') {
59
- let value = (0, fs_1.readFileSync)(`${this.options.dumpPath}/${file}`).toString();
59
+ let value = (0, fs_1.readFileSync)(`${this.options.dumpPath}/${file}`)
60
+ .toString()
61
+ .replace(/\n/g, '');
60
62
  if (/^[+-]?\d+(\.\d+)?$/.test(value)) {
61
63
  value = /^[+-]?\d+$/.test(value) ? parseInt(value, 10) : parseFloat(value);
62
64
  }
65
+ else if (/^false|true$/.test(value)) {
66
+ value = /^true$/.test(value);
67
+ }
63
68
  property_accessor_1.PropertyAccessor.set(file, value, this.data);
64
69
  }
65
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"datanautics.js","sourceRoot":"","sources":["../src/datanautics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datanautics.js","sourceRoot":"","sources":["../src/datanautics.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "datanautics",
3
- "version": "1.1.2",
3
+ "version": "2.1.0",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "data store",
package/test/test.js CHANGED
@@ -23,5 +23,5 @@ setTimeout(() => {
23
23
  // assert.equal(storedData, JSON.stringify(data, null, 2));
24
24
  // unlinkSync(dumpPath);
25
25
  console.log('tests passed');
26
- process.exit(0)
26
+ process.exit(0);
27
27
  }, 1000);