New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@tsdotnet/disposable

Package Overview
Dependencies
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tsdotnet/disposable - npm Package Compare versions

Comparing version 1.1.16 to 1.1.17

31

dist-esm/DisposableBase.js

@@ -7,16 +7,23 @@ /*!

export default class DisposableBase {
constructor(_disposableObjectName, __finalizer) {
this._disposableObjectName = _disposableObjectName;
this.__finalizer = __finalizer;
this.__wasDisposed = false;
constructor(disposableObjectName, finalizer) {
this._disposableObjectName = disposableObjectName;
this.__state = {
disposed: false,
finalizer: finalizer || undefined
};
}
get wasDisposed() {
return this.__wasDisposed;
return this.__state.disposed;
}
// NOTE: Do not override this method. Override _onDispose instead.
dispose() {
if (!this.__wasDisposed) {
const state = this.__state;
if (!state.disposed) {
// Preemptively set wasDisposed in order to prevent repeated disposing.
// NOTE: in true multi-threaded scenarios, this would need to be synchronized.
this.__wasDisposed = true;
state.disposed = true;
const finalizer = state.finalizer;
state.finalizer = undefined;
delete state.finalizer;
Object.freeze(state);
try {

@@ -26,8 +33,4 @@ this._onDispose(); // Protected override.

finally {
if (this.__finalizer) {
// Private finalizer...
this.__finalizer();
// eslint-disable-next-line @typescript-eslint/no-explicit-any
this.__finalizer = undefined;
}
if (finalizer)
finalizer();
}

@@ -42,3 +45,3 @@ }

throwIfDisposed(message, objectName = this._disposableObjectName) {
if (this.__wasDisposed)
if (this.__state.disposed)
throw new ObjectDisposedException(objectName);

@@ -45,0 +48,0 @@ return true;

@@ -8,5 +8,4 @@ /*!

protected _disposableObjectName: string;
private readonly __finalizer?;
private __wasDisposed;
protected constructor(_disposableObjectName: string, __finalizer?: (() => void | null) | undefined);
private readonly __state;
protected constructor(disposableObjectName: string, finalizer?: () => void | null);
get wasDisposed(): boolean;

@@ -13,0 +12,0 @@ dispose(): void;

@@ -10,16 +10,23 @@ "use strict";

class DisposableBase {
constructor(_disposableObjectName, __finalizer) {
this._disposableObjectName = _disposableObjectName;
this.__finalizer = __finalizer;
this.__wasDisposed = false;
constructor(disposableObjectName, finalizer) {
this._disposableObjectName = disposableObjectName;
this.__state = {
disposed: false,
finalizer: finalizer || undefined
};
}
get wasDisposed() {
return this.__wasDisposed;
return this.__state.disposed;
}
// NOTE: Do not override this method. Override _onDispose instead.
dispose() {
if (!this.__wasDisposed) {
const state = this.__state;
if (!state.disposed) {
// Preemptively set wasDisposed in order to prevent repeated disposing.
// NOTE: in true multi-threaded scenarios, this would need to be synchronized.
this.__wasDisposed = true;
state.disposed = true;
const finalizer = state.finalizer;
state.finalizer = undefined;
delete state.finalizer;
Object.freeze(state);
try {

@@ -29,8 +36,4 @@ this._onDispose(); // Protected override.

finally {
if (this.__finalizer) {
// Private finalizer...
this.__finalizer();
// eslint-disable-next-line @typescript-eslint/no-explicit-any
this.__finalizer = undefined;
}
if (finalizer)
finalizer();
}

@@ -45,3 +48,3 @@ }

throwIfDisposed(message, objectName = this._disposableObjectName) {
if (this.__wasDisposed)
if (this.__state.disposed)
throw new ObjectDisposedException_1.default(objectName);

@@ -48,0 +51,0 @@ return true;

{
"name": "@tsdotnet/disposable",
"version": "1.1.16",
"version": "1.1.17",
"description": "A disposable base class and minimal set of interfaces to properly implement an object disposal pattern.",

@@ -21,11 +21,11 @@ "author": "electricessence",

"build:dist-esm": "rimraf dist-esm/* && tsc -p tsconfig.esm.json",
"build": "npm i && run-p build:*",
"build": "pnpm i && run-p build:*",
"bump": "npm run precommit && npm version patch",
"docs": "rimraf docs/* && rimraf docs/.nojekyll && typedoc --options typedoc.json --readme none && node ./.build/create-nojekyll.js",
"docs": "rimraf docs/* && rimraf docs/.nojekyll && typedoc --options typedoc.json --readme none",
"lint": "eslint src/**/*.ts",
"precommit": "npm i && run-p lint test && run-p build:* && npm run validate",
"precommit": "pnpm i && run-p lint test && run-p build:* && npm run validate",
"prepublishOnly": "npm run build && run-p validate test",
"preversion": "run-p lint test",
"postversion": "git push && git push --tags && npm run docs && git commit -m \"Updated docs.\" docs && git push",
"test": "ts-node -P ./tsconfig.json ./node_modules/jasmine/bin/jasmine --config=spec/jasmine.json",
"test": "mocha -r ts-node/register tests/**/*.ts",
"validate": "node ./.build/validate-package.js"

@@ -42,7 +42,9 @@ },

"devDependencies": {
"@types/jasmine": "^3.5.10",
"@typescript-eslint/eslint-plugin": "^2.33.0",
"@typescript-eslint/parser": "^2.33.0",
"@types/chai": "^4.2.11",
"@types/mocha": "^7.0.2",
"@typescript-eslint/eslint-plugin": "^3.0.0",
"@typescript-eslint/parser": "^3.0.0",
"chai": "^4.2.0",
"copyfiles": "^2.2.0",
"eslint": "^7.0.0",
"eslint": "^7.1.0",
"eslint-config-typescript": "^3.0.0",

@@ -52,8 +54,11 @@ "eslint-plugin-import": "^2.20.2",

"eslint-plugin-promise": "^4.2.1",
"jasmine": "^3.5.0",
"mocha": "^7.2.0",
"npm-run-all": "^4.1.5",
"nyc": "^15.0.1",
"rimraf": "^3.0.2",
"ts-node": "^8.10.1",
"typedoc": "^0.17.6",
"typescript": "^3.9.2"
"typedoc": "^0.17.7",
"typedoc-plugin-external-module-name": "^3.1.0",
"typedoc-plugin-nojekyll": "^1.0.1",
"typescript": "^3.9.3"
},

@@ -60,0 +65,0 @@ "dependencies": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc