@sonarwatch/portfolio-plugins 0.6.9 → 0.7.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
@@ -2,6 +2,10 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ # [0.7.0](https://github.com/sonarwatch/portfolio/compare/plugins-0.6.9...plugins-0.7.0) (2023-08-30)
6
+
7
+
8
+
5
9
  ## [0.6.9](https://github.com/sonarwatch/portfolio/compare/plugins-0.6.8...plugins-0.6.9) (2023-08-29)
6
10
 
7
11
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-plugins",
3
- "version": "0.6.9",
3
+ "version": "0.7.0",
4
4
  "type": "commonjs",
5
5
  "generators": "./generators.json",
6
6
  "dependencies": {
@@ -35,7 +35,7 @@
35
35
  "web3-v1": "npm:web3@^1.5.0"
36
36
  },
37
37
  "peerDependencies": {
38
- "@sonarwatch/portfolio-core": "0.6.9"
38
+ "@sonarwatch/portfolio-core": "0.7.0"
39
39
  },
40
40
  "main": "./src/index.js",
41
41
  "types": "./src/index.d.ts"
@@ -0,0 +1,18 @@
1
+ import { NetworkIdType } from '@sonarwatch/portfolio-core';
2
+ export type MaybePromise<T> = T | Promise<T>;
3
+ export type StorageValue = null | string | number | boolean | object | (null | string | number | boolean | object)[];
4
+ export type TransactionOptions = Record<string, string | number | boolean | object>;
5
+ export type Item = {
6
+ key: string;
7
+ value: StorageValue;
8
+ };
9
+ export declare abstract class Storage {
10
+ abstract dispose(): Promise<void>;
11
+ abstract get(key: string, prefix?: string, networkId?: NetworkIdType, opts?: TransactionOptions): MaybePromise<StorageValue | undefined>;
12
+ abstract getMany(keys: string[], prefix?: string, networkId?: NetworkIdType, opts?: TransactionOptions): MaybePromise<Array<StorageValue | undefined>>;
13
+ abstract getAll(prefix?: string, networkId?: NetworkIdType, opts?: TransactionOptions): MaybePromise<Item[]>;
14
+ abstract set(key: string, value: StorageValue, prefix?: string, networkId?: NetworkIdType, opts?: TransactionOptions): MaybePromise<void>;
15
+ abstract setMany(items: Item[], prefix?: string, networkId?: NetworkIdType, opts?: TransactionOptions): MaybePromise<void>;
16
+ abstract del(key: string, prefix?: string, networkId?: NetworkIdType, opts?: TransactionOptions): MaybePromise<void>;
17
+ abstract delMany(keys: string[], prefix?: string, networkId?: NetworkIdType, opts?: TransactionOptions): MaybePromise<void>;
18
+ }
package/src/Storage.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Storage = void 0;
4
+ class Storage {
5
+ }
6
+ exports.Storage = Storage;
7
+ //# sourceMappingURL=Storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Storage.js","sourceRoot":"","sources":["../../../../packages/plugins/src/Storage.ts"],"names":[],"mappings":";;;AAiBA,MAAsB,OAAO;CAmD5B;AAnDD,0BAmDC"}
@@ -0,0 +1,20 @@
1
+ /// <reference types="node" />
2
+ import { NetworkIdType } from '@sonarwatch/portfolio-core';
3
+ import { Item, Storage, StorageValue, TransactionOptions } from './Storage';
4
+ export type StorageMemoryOptions = {
5
+ ttl?: number;
6
+ };
7
+ export declare class StorageMemory extends Storage {
8
+ data: Map<string, StorageValue>;
9
+ timeouts: Map<string, NodeJS.Timeout>;
10
+ ttl?: number;
11
+ constructor(opts?: StorageMemoryOptions);
12
+ dispose(): Promise<void>;
13
+ get(key: string, prefix?: string, networkId?: NetworkIdType): StorageValue | undefined;
14
+ set(key: string, value: StorageValue, prefix?: string, networkId?: NetworkIdType, opts?: TransactionOptions): void;
15
+ getMany(keys: string[], prefix?: string | undefined, networkId?: NetworkIdType | undefined): (StorageValue | undefined)[];
16
+ setMany(items: Item[], prefix?: string | undefined, networkId?: NetworkIdType | undefined, opts?: TransactionOptions | undefined): void;
17
+ del(key: string, prefix?: string | undefined, networkId?: NetworkIdType | undefined): void;
18
+ delMany(keys: string[], prefix?: string | undefined, networkId?: NetworkIdType | undefined): void;
19
+ getAll(prefix?: string | undefined, networkId?: NetworkIdType | undefined): Item[];
20
+ }
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.StorageMemory = void 0;
13
+ const Storage_1 = require("./Storage");
14
+ function getPath(key, prefix, networkId) {
15
+ const prefixPath = prefix ? `${prefix}/` : '';
16
+ const networkIdPath = networkId ? `${networkId}/` : '';
17
+ return `${prefixPath}${networkIdPath}${key}`;
18
+ }
19
+ function getStartsWithPath(prefix, networkId) {
20
+ const prefixPath = prefix ? `${prefix}/` : '';
21
+ const networkIdPath = networkId ? `${networkId}/` : '';
22
+ return `${prefixPath}${networkIdPath}`;
23
+ }
24
+ class StorageMemory extends Storage_1.Storage {
25
+ constructor(opts) {
26
+ super();
27
+ this.data = new Map();
28
+ this.timeouts = new Map();
29
+ this.ttl = opts === null || opts === void 0 ? void 0 : opts.ttl;
30
+ }
31
+ // eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-empty-function
32
+ dispose() {
33
+ return __awaiter(this, void 0, void 0, function* () { });
34
+ }
35
+ get(key, prefix, networkId) {
36
+ const path = getPath(key, prefix, networkId);
37
+ return this.data.get(path);
38
+ }
39
+ set(key, value, prefix, networkId, opts) {
40
+ const path = getPath(key, prefix, networkId);
41
+ // Clear previous timeout
42
+ const prevTimeout = this.timeouts.get(path);
43
+ if (prevTimeout)
44
+ clearTimeout(prevTimeout);
45
+ this.timeouts.delete(path);
46
+ // Set new timout
47
+ const optsTtl = opts && opts['ttl'] && typeof opts['ttl'] === 'number'
48
+ ? opts['ttl']
49
+ : undefined;
50
+ const ttl = optsTtl || this.ttl;
51
+ if (ttl) {
52
+ const timeout = setTimeout(() => {
53
+ this.data.delete(path);
54
+ }, ttl);
55
+ this.timeouts.set(path, timeout);
56
+ }
57
+ // Set item
58
+ this.data.set(path, value);
59
+ }
60
+ getMany(keys, prefix, networkId) {
61
+ return keys.map((key) => this.get(key, prefix, networkId));
62
+ }
63
+ setMany(items, prefix, networkId, opts) {
64
+ items.forEach((item) => this.set(item.key, item.value, prefix, networkId, opts));
65
+ }
66
+ del(key, prefix, networkId) {
67
+ const path = getPath(key, prefix, networkId);
68
+ // Clear previous timeout
69
+ const prevTimeout = this.timeouts.get(path);
70
+ if (prevTimeout)
71
+ clearTimeout(prevTimeout);
72
+ this.timeouts.delete(path);
73
+ this.data.delete(path);
74
+ }
75
+ delMany(keys, prefix, networkId) {
76
+ keys.forEach((key) => this.del(key, prefix, networkId));
77
+ }
78
+ getAll(prefix, networkId) {
79
+ const startWithPath = getStartsWithPath(prefix, networkId);
80
+ const items = [];
81
+ this.data.forEach((value, path) => {
82
+ if (path.startsWith(startWithPath)) {
83
+ items.push({
84
+ key: path.slice(startWithPath.length),
85
+ value,
86
+ });
87
+ }
88
+ });
89
+ return items;
90
+ }
91
+ }
92
+ exports.StorageMemory = StorageMemory;
93
+ //# sourceMappingURL=StorageMemory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageMemory.js","sourceRoot":"","sources":["../../../../packages/plugins/src/StorageMemory.ts"],"names":[],"mappings":"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"}