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

@whatwg-node/disposablestack

Package Overview
Dependencies
Maintainers
0
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@whatwg-node/disposablestack - npm Package Compare versions

Comparing version 0.0.1-alpha-20240729084750-06808cd94b89e5e4899b06595ee722bd19719955 to 0.0.1-alpha-20240729092210-5aebb04bd6697876d29d5fcb192d93bcae76da97

cjs/symbols.js

10

cjs/AsyncDisposableStack.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PonyfillAsyncDisposableStack = void 0;
const symbols_js_1 = require("./symbols.js");
const utils_js_1 = require("./utils.js");
(0, utils_js_1.patchSymbols)();
class PonyfillAsyncDisposableStack {

@@ -13,6 +13,6 @@ callbacks = [];

if ((0, utils_js_1.isAsyncDisposable)(value)) {
this.callbacks.push(() => value[Symbol.asyncDispose]());
this.callbacks.push(() => value[symbols_js_1.DisposableSymbols.asyncDispose]());
}
else if ((0, utils_js_1.isSyncDisposable)(value)) {
this.callbacks.push(() => value[Symbol.dispose]());
this.callbacks.push(() => value[symbols_js_1.DisposableSymbols.dispose]());
}

@@ -35,5 +35,5 @@ return value;

disposeAsync() {
return this[Symbol.asyncDispose]();
return this[symbols_js_1.DisposableSymbols.asyncDispose]();
}
async [Symbol.asyncDispose]() {
async [symbols_js_1.DisposableSymbols.asyncDispose]() {
for (const cb of this.callbacks) {

@@ -40,0 +40,0 @@ await cb();

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PonyfillDisposableStack = void 0;
const symbols_js_1 = require("./symbols.js");
const utils_js_1 = require("./utils.js");
(0, utils_js_1.patchSymbols)();
class PonyfillDisposableStack {

@@ -12,10 +12,7 @@ callbacks = [];

dispose() {
for (const cb of this.callbacks) {
cb();
}
this.callbacks = [];
return this[symbols_js_1.DisposableSymbols.dispose]();
}
use(value) {
if ((0, utils_js_1.isSyncDisposable)(value)) {
this.callbacks.push(() => value[Symbol.dispose]());
this.callbacks.push(() => value[symbols_js_1.DisposableSymbols.dispose]());
}

@@ -37,4 +34,7 @@ return value;

}
[Symbol.dispose]() {
this.dispose();
[symbols_js_1.DisposableSymbols.dispose]() {
for (const cb of this.callbacks) {
cb();
}
this.callbacks = [];
}

@@ -41,0 +41,0 @@ [Symbol.toStringTag] = 'DisposableStack';

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AsyncDisposableStack = exports.DisposableStack = void 0;
const tslib_1 = require("tslib");
const AsyncDisposableStack_js_1 = require("./AsyncDisposableStack.js");
const DisposableStack_js_1 = require("./DisposableStack.js");
const utils_js_1 = require("./utils.js");
(0, utils_js_1.patchSymbols)();
exports.DisposableStack = globalThis.DisposableStack || DisposableStack_js_1.PonyfillDisposableStack;
exports.AsyncDisposableStack = globalThis.AsyncDisposableStack || AsyncDisposableStack_js_1.PonyfillAsyncDisposableStack;
tslib_1.__exportStar(require("./symbols.js"), exports);

@@ -5,16 +5,8 @@ "use strict";

exports.isAsyncDisposable = isAsyncDisposable;
exports.patchSymbols = patchSymbols;
const symbols_1 = require("./symbols");
function isSyncDisposable(obj) {
return obj?.[Symbol.dispose] != null;
return obj?.[symbols_1.DisposableSymbols.dispose] != null;
}
function isAsyncDisposable(obj) {
return obj?.[Symbol.asyncDispose] != null;
return obj?.[symbols_1.DisposableSymbols.asyncDispose] != null;
}
function patchSymbols() {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore - we ponyfill these symbols
Symbol.dispose ||= Symbol.for('dispose');
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore - we ponyfill these symbols
Symbol.asyncDispose ||= Symbol.for('asyncDispose');
}

@@ -1,3 +0,3 @@

import { isAsyncDisposable, isSyncDisposable, patchSymbols } from './utils.js';
patchSymbols();
import { DisposableSymbols } from './symbols.js';
import { isAsyncDisposable, isSyncDisposable } from './utils.js';
export class PonyfillAsyncDisposableStack {

@@ -10,6 +10,6 @@ callbacks = [];

if (isAsyncDisposable(value)) {
this.callbacks.push(() => value[Symbol.asyncDispose]());
this.callbacks.push(() => value[DisposableSymbols.asyncDispose]());
}
else if (isSyncDisposable(value)) {
this.callbacks.push(() => value[Symbol.dispose]());
this.callbacks.push(() => value[DisposableSymbols.dispose]());
}

@@ -32,5 +32,5 @@ return value;

disposeAsync() {
return this[Symbol.asyncDispose]();
return this[DisposableSymbols.asyncDispose]();
}
async [Symbol.asyncDispose]() {
async [DisposableSymbols.asyncDispose]() {
for (const cb of this.callbacks) {

@@ -37,0 +37,0 @@ await cb();

@@ -1,3 +0,3 @@

import { isSyncDisposable, patchSymbols } from './utils.js';
patchSymbols();
import { DisposableSymbols } from './symbols.js';
import { isSyncDisposable } from './utils.js';
export class PonyfillDisposableStack {

@@ -9,10 +9,7 @@ callbacks = [];

dispose() {
for (const cb of this.callbacks) {
cb();
}
this.callbacks = [];
return this[DisposableSymbols.dispose]();
}
use(value) {
if (isSyncDisposable(value)) {
this.callbacks.push(() => value[Symbol.dispose]());
this.callbacks.push(() => value[DisposableSymbols.dispose]());
}

@@ -34,6 +31,9 @@ return value;

}
[Symbol.dispose]() {
this.dispose();
[DisposableSymbols.dispose]() {
for (const cb of this.callbacks) {
cb();
}
this.callbacks = [];
}
[Symbol.toStringTag] = 'DisposableStack';
}
import { PonyfillAsyncDisposableStack } from './AsyncDisposableStack.js';
import { PonyfillDisposableStack } from './DisposableStack.js';
import { patchSymbols } from './utils.js';
patchSymbols();
export const DisposableStack = globalThis.DisposableStack || PonyfillDisposableStack;
export const AsyncDisposableStack = globalThis.AsyncDisposableStack || PonyfillAsyncDisposableStack;
export * from './symbols.js';

@@ -0,14 +1,7 @@

import { DisposableSymbols } from './symbols';
export function isSyncDisposable(obj) {
return obj?.[Symbol.dispose] != null;
return obj?.[DisposableSymbols.dispose] != null;
}
export function isAsyncDisposable(obj) {
return obj?.[Symbol.asyncDispose] != null;
return obj?.[DisposableSymbols.asyncDispose] != null;
}
export function patchSymbols() {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore - we ponyfill these symbols
Symbol.dispose ||= Symbol.for('dispose');
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore - we ponyfill these symbols
Symbol.asyncDispose ||= Symbol.for('asyncDispose');
}
{
"name": "@whatwg-node/disposablestack",
"version": "0.0.1-alpha-20240729084750-06808cd94b89e5e4899b06595ee722bd19719955",
"version": "0.0.1-alpha-20240729092210-5aebb04bd6697876d29d5fcb192d93bcae76da97",
"description": "Cross Platform Smart DisposableStack API Ponyfill",

@@ -5,0 +5,0 @@ "sideEffects": false,

@@ -0,1 +1,2 @@

import { DisposableSymbols } from './symbols.js';
import { MaybePromise } from './utils.js';

@@ -10,4 +11,4 @@ export declare class PonyfillAsyncDisposableStack implements AsyncDisposableStack {

disposeAsync(): Promise<void>;
[Symbol.asyncDispose](): Promise<void>;
[DisposableSymbols.asyncDispose](): Promise<void>;
readonly [Symbol.toStringTag]: string;
}

@@ -0,1 +1,2 @@

import { DisposableSymbols } from './symbols.js';
export declare class PonyfillDisposableStack implements DisposableStack {

@@ -9,4 +10,4 @@ private callbacks;

move(): DisposableStack;
[Symbol.dispose](): void;
[DisposableSymbols.dispose](): void;
readonly [Symbol.toStringTag]: string;
}
export declare const DisposableStack: DisposableStackConstructor;
export declare const AsyncDisposableStack: AsyncDisposableStackConstructor;
export * from './symbols.js';
export declare function isSyncDisposable(obj: any): obj is Disposable;
export declare function isAsyncDisposable(obj: any): obj is AsyncDisposable;
export declare function patchSymbols(): void;
export type MaybePromise<T> = T | PromiseLike<T>;

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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