@neo-one/utils
Advanced tools
Comparing version 1.0.0-alpha.35 to 1.0.0-alpha.36
@@ -7,11 +7,11 @@ 'use strict'; | ||
var _ = _interopDefault(require('lodash')); | ||
var rxjs = require('rxjs'); | ||
var uuidV4 = _interopDefault(require('uuid/v4')); | ||
var OuterSubscriber = require('rxjs/internal/OuterSubscriber'); | ||
require('rxjs/internal/Operator'); | ||
var subscribeToResult = require('rxjs/internal/util/subscribeToResult'); | ||
/* eslint-disable */ | ||
// tslint:disable | ||
// @ts-ignore | ||
function inherits(subClass, superClass) { | ||
if (typeof superClass !== 'function' && superClass !== null) { | ||
if (typeof superClass !== 'function' && superClass != null) { | ||
throw new TypeError('Super expression must either be null or a function'); | ||
@@ -28,10 +28,14 @@ } | ||
}); | ||
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; | ||
if (superClass) { | ||
Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; | ||
} | ||
} | ||
var CustomError = (function (_super) { | ||
let CustomError = function (_super) { | ||
inherits(CustomError, _super); | ||
function CustomError() { | ||
var _newTarget = this.constructor; | ||
// @ts-ignore | ||
var _newTarget = this.constructor; // @ts-ignore | ||
@@ -47,8 +51,53 @@ var _this = _super.apply(this, arguments); // 'Error' breaks prototype chain here | ||
return CustomError; | ||
})(Error); | ||
}(Error); | ||
const nowSeconds = () => Math.round(Date.now() / 1000); | ||
function nullthrows(value) { | ||
if (value == undefined) { | ||
throw new Error('Unexpected null'); | ||
} | ||
return value; | ||
} | ||
function assertNever(_value) {} // do nothing | ||
// tslint:disable-next-line no-any | ||
function isPromise(value) { | ||
return value != undefined && value.then != undefined && typeof value.then === 'function'; | ||
} | ||
function notNull(value) { | ||
return value != undefined; | ||
} | ||
function zip(...arrays) { | ||
// tslint:disable-next-line no-any | ||
return _.zip(...arrays); | ||
} // tslint:enable readonly-array | ||
const utils = { | ||
nowSeconds, | ||
nullthrows, | ||
assertNever, | ||
notNull, | ||
isPromise, | ||
zip | ||
}; | ||
let currentID = 0; | ||
const getID = () => { | ||
const result = currentID; | ||
currentID += 1; | ||
return result; | ||
}; | ||
function finalize(func) { | ||
return source => rxjs.Observable.create(observer => { | ||
return source$ => rxjs.Observable.create(observer => { | ||
let lastValue; | ||
const subscription = source.subscribe({ | ||
const subscription = source$.subscribe({ | ||
next: value => { | ||
@@ -64,15 +113,12 @@ lastValue = value; | ||
if (result != null && result.then != null) { | ||
const id = uuidV4(); | ||
if (utils.isPromise(result)) { | ||
const id = getID(); | ||
let deleted = false; | ||
const promise = result.then(() => { | ||
deleted = true; | ||
if (finalize._shutdownPromises[id] != null) { | ||
delete finalize._shutdownPromises[id]; | ||
} | ||
finalize.shutdownPromises.delete(id); | ||
}); | ||
if (!deleted) { | ||
finalize._shutdownPromises[id] = promise; | ||
finalize.shutdownPromises.set(id, promise); | ||
} | ||
@@ -85,66 +131,82 @@ } | ||
finalize._shutdownPromises = {}; | ||
(function (finalize) { | ||
finalize.shutdownPromises = new Map(); | ||
finalize.wait = async () => { | ||
const shutdownPromises = Object.values(finalize._shutdownPromises); | ||
finalize.wait = async () => { | ||
const promises = [...finalize.shutdownPromises.values()]; | ||
if (shutdownPromises.length === 0) { | ||
return; | ||
} | ||
if (promises.length === 0) { | ||
return; | ||
} | ||
await Promise.all(shutdownPromises); | ||
await finalize.wait(); | ||
}; | ||
await Promise.all(promises); | ||
await finalize.wait(); | ||
}; | ||
})(finalize || (finalize = {})); | ||
var labels = { | ||
PLUGIN_NAME: 'plugin.name', | ||
RESOURCETYPE_NAME: 'resource_type.name', | ||
NODE_NAME: 'node.name', | ||
OP_CODE: 'neo.op.code', | ||
NEO_ADDRESS: 'neo.address', | ||
NODE_OPTIONSPATH: 'node.options_path', | ||
NEO_TRANSACTION_HASH: 'neo.transaction.hash', | ||
NEO_TRANSACTION_TYPE: 'neo.transaction.type', | ||
NEO_TRANSACTION_FOUND: 'neo.transaction.found', | ||
NEO_CONSENSUS_HASH: 'neo.consensus.hash', | ||
NEO_BLOCK_INDEX: 'neo.block.index', | ||
CALL_METHOD: 'call.method', | ||
INVOKE_METHOD: 'invoke.method', | ||
INVOKE_RAW_METHOD: 'invoke_raw.method', | ||
JSONRPC_TYPE: 'jsonrpc.type', | ||
COMMAND_NAME: 'command.name' | ||
(function (labels) { | ||
labels["PLUGIN_NAME"] = "plugin.name"; | ||
labels["RESOURCETYPE_NAME"] = "resource_type.name"; | ||
labels["NODE_NAME"] = "node.name"; | ||
labels["OP_CODE"] = "neo.op.code"; | ||
labels["NEO_ADDRESS"] = "neo.address"; | ||
labels["NODE_OPTIONSPATH"] = "node.options_path"; | ||
labels["NEO_TRANSACTION_HASH"] = "neo.transaction.hash"; | ||
labels["NEO_TRANSACTION_TYPE"] = "neo.transaction.type"; | ||
labels["NEO_TRANSACTION_FOUND"] = "neo.transaction.found"; | ||
labels["NEO_CONSENSUS_HASH"] = "neo.consensus.hash"; | ||
labels["NEO_BLOCK_INDEX"] = "neo.block.index"; | ||
labels["CALL_METHOD"] = "call.method"; | ||
labels["INVOKE_METHOD"] = "invoke.method"; | ||
labels["INVOKE_RAW_METHOD"] = "invoke_raw.method"; | ||
labels["JSONRPC_TYPE"] = "jsonrpc.type"; | ||
labels["COMMAND_NAME"] = "command.name"; | ||
})(exports.labels || (exports.labels = {})); | ||
const EMPTY_LAST_VALUE = { | ||
type: 'empty' | ||
}; | ||
function _defineProperty(obj, key, value) { | ||
if (key in obj) { | ||
Object.defineProperty(obj, key, { | ||
value: value, | ||
enumerable: true, | ||
configurable: true, | ||
writable: true | ||
}); | ||
} else { | ||
obj[key] = value; | ||
} | ||
return obj; | ||
} | ||
const EMPTY_LAST_VALUE = {}; | ||
class MergeScanSubscriber extends OuterSubscriber.OuterSubscriber { | ||
constructor(destination, accumulator, acc) { | ||
super(destination); | ||
this.hasValue = false; | ||
this.hasCompleted = false; | ||
this.lastValue = EMPTY_LAST_VALUE; | ||
this.active = false; | ||
this.index = 0; | ||
this.accumulator = accumulator; | ||
this.acc = acc; | ||
} | ||
_defineProperty(this, "hasValue", false); | ||
notifyNext(_outerValue, innerValue) { | ||
const { | ||
destination | ||
} = this; | ||
this.acc = innerValue; | ||
this.hasValue = true; | ||
_defineProperty(this, "hasCompleted", false); | ||
if (destination.next !== undefined) { | ||
destination.next(innerValue); | ||
} | ||
} | ||
_defineProperty(this, "lastValue", EMPTY_LAST_VALUE); | ||
notifyComplete(innerSub) { | ||
const { | ||
lastValue | ||
} = this; | ||
this.remove(innerSub); | ||
this.active = false; | ||
_defineProperty(this, "active", false); | ||
if (lastValue.type === 'value') { | ||
this.lastValue = EMPTY_LAST_VALUE; | ||
this.next(lastValue.value); | ||
} else if (!this.active && this.hasCompleted) { | ||
if (!this.hasValue && this.destination.next !== undefined) { | ||
this.destination.next(this.acc); | ||
} | ||
_defineProperty(this, "index", 0); | ||
this.accumulator = accumulator; | ||
this.acc = acc; | ||
if (this.destination.complete !== undefined) { | ||
this.destination.complete(); | ||
} | ||
} | ||
} | ||
@@ -161,3 +223,3 @@ | ||
try { | ||
const result = this.accumulator(this.acc == null ? undefined : this.acc, value); | ||
const result = this.accumulator(this.acc, value); | ||
this.active = true; | ||
@@ -167,54 +229,32 @@ | ||
} catch (error) { | ||
destination.error(error); | ||
if (destination.error !== undefined) { | ||
destination.error(error); | ||
} | ||
} | ||
} else { | ||
this.lastValue = value; | ||
this.lastValue = { | ||
type: 'value', | ||
value | ||
}; | ||
} | ||
} | ||
_innerSub(ish, value, index) { | ||
this.add(subscribeToResult.subscribeToResult(this, ish, value, index)); | ||
} | ||
_complete() { | ||
this.hasCompleted = true; | ||
if (!this.active && this.lastValue === EMPTY_LAST_VALUE) { | ||
if (this.hasValue === false) { | ||
if (!this.active && this.lastValue.type === 'empty') { | ||
if (!this.hasValue && this.destination.next !== undefined) { | ||
this.destination.next(this.acc); | ||
} | ||
this.destination.complete(); | ||
if (this.destination.complete !== undefined) { | ||
this.destination.complete(); | ||
} | ||
} | ||
} | ||
notifyNext(outerValue, innerValue) { | ||
const { | ||
destination | ||
} = this; | ||
this.acc = innerValue; | ||
this.hasValue = true; | ||
destination.next(innerValue); | ||
_innerSub(ish, value, index) { | ||
this.add(subscribeToResult.subscribeToResult(this, ish, value, index)); | ||
} | ||
notifyComplete(innerSub) { | ||
const { | ||
lastValue | ||
} = this; | ||
this.remove(innerSub); | ||
this.active = false; | ||
if (lastValue !== EMPTY_LAST_VALUE) { | ||
this.lastValue = EMPTY_LAST_VALUE; | ||
this._next(lastValue); | ||
} else if (!this.active && this.hasCompleted) { | ||
if (this.hasValue === false) { | ||
this.destination.next(this.acc); | ||
} | ||
this.destination.complete(); | ||
} | ||
} | ||
} | ||
@@ -225,5 +265,7 @@ class MergeScanOperator { | ||
this.seed = seed; | ||
} | ||
} // tslint:disable-next-line | ||
call(subscriber, source) { | ||
// tslint:disable-next-line | ||
return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed)); | ||
@@ -234,10 +276,11 @@ } | ||
function mergeScanLatest(accumulator, seed) { | ||
return source => source.lift(new MergeScanOperator(accumulator, seed)); | ||
return source$ => source$.lift(new MergeScanOperator(accumulator, seed)); | ||
} | ||
function neverComplete() { | ||
return source => rxjs.Observable.create(observer => source.subscribe({ | ||
return source$ => rxjs.Observable.create(observer => source$.subscribe({ | ||
next: value => observer.next(value), | ||
error: error => observer.error(error), | ||
complete: () => {} | ||
complete: () => {// do nothing | ||
} | ||
})); | ||
@@ -247,7 +290,9 @@ } | ||
function onComplete(func) { | ||
return source => rxjs.Observable.create(observer => source.subscribe({ | ||
return source$ => rxjs.Observable.create(observer => source$.subscribe({ | ||
next: value => observer.next(value), | ||
error: error => observer.error(error), | ||
complete: () => { | ||
func(); | ||
// tslint:disable-next-line no-expression-statement | ||
func(); // tslint:disable-next-line no-expression-statement | ||
observer.complete(); | ||
@@ -258,35 +303,6 @@ } | ||
function keys(obj) { | ||
return Object.keys(obj); | ||
} | ||
function values(obj) { | ||
return Object.values(obj); | ||
} | ||
function entries(obj) { | ||
return Object.entries(obj); | ||
} | ||
const nowSeconds = () => Math.round(Date.now() / 1000); | ||
function nullthrows(value) { | ||
if (value == null) { | ||
throw new Error('Unexpected null'); | ||
} | ||
return value; | ||
} | ||
var utils = { | ||
keys, | ||
values, | ||
entries, | ||
nowSeconds, | ||
nullthrows | ||
}; | ||
exports.CustomError = CustomError; | ||
exports.finalize = finalize; | ||
exports.labels = labels; | ||
exports.MergeScanSubscriber = MergeScanSubscriber; | ||
exports.MergeScanOperator = MergeScanOperator; | ||
exports.mergeScanLatest = mergeScanLatest; | ||
@@ -293,0 +309,0 @@ exports.neverComplete = neverComplete; |
{ | ||
"name": "@neo-one/utils", | ||
"version": "1.0.0-alpha.35", | ||
"version": "1.0.0-alpha.36", | ||
"keywords": [ | ||
@@ -29,5 +29,6 @@ "neo", | ||
"main": "./dist/index.js", | ||
"module": "./dist/index.es.js", | ||
"module": "./dist/index.mjs", | ||
"types": "./src/index.ts", | ||
"engines": { | ||
"node": ">=8.9.0" | ||
"node": ">=10.4.1" | ||
}, | ||
@@ -38,6 +39,6 @@ "publishConfig": { | ||
"dependencies": { | ||
"@neo-one/monitor": "^1.0.0-alpha.30", | ||
"rxjs": "^6.2.0", | ||
"uuid": "^3.2.1" | ||
"@neo-one/monitor": "^1.0.0-alpha.31", | ||
"lodash": "^4.17.10", | ||
"rxjs": "^6.2.1" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
54098
758
14
1
+ Addedlodash@^4.17.10
- Removeduuid@^3.2.1
- Removeduuid@3.4.0(transitive)
Updatedrxjs@^6.2.1