
Security News
Axios Supply Chain Attack Reaches OpenAI macOS Signing Pipeline, Forces Certificate Rotation
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.
controllable-resolve
Advanced tools
  [;
const { waitResolved, resolve } = controllableResolve;
const startButton = document.getElementById('start');
const resolveButton = document.getElementById('resolve');
startButton.addEventListener('click', () => {
// wait promise resolved
waitResolved().then((value) => {
alert(`do something with value: ${value}`);
});
});
resolveButton.addEventListener('click', () => {
// resolve that promise when you need
resolve(100);
});
when you use once mode, that can be use like an event center, once that waitResolved be resolved,
the promise will be keep and you can get value from our controllableResolve,
also the waitResolved will be fulfilled, so that will pass that Promise directly, .then method will be triggered directly.
import { createControllableResolve } from 'controllable-resolve';
const controllableResolve = createControllableResolve<number>({
once: true,
});
const { waitResolved, resolve, reset } = controllableResolve;
waitResolved().then((value) => {
console.log('7', `do something with value: ${value}`);
});
console.log('1', controllableResolve.waiting); // true
resolve(100); // will trigger above console.log
console.log('2', controllableResolve.waiting); // false
// that promise.then will be trigger directly
waitResolved().then((value) => {
console.log('8', `do something with value: ${value}`);
});
// that resolved value be keep, you can use that synchronously.
console.log('3', controllableResolve.value); // 100
console.log('4', controllableResolve.waiting); // true
// clear keep promise and value
reset();
console.log('5', controllableResolve.value); // undefined
console.log('6', controllableResolve.waiting); // falsee
onWaitingChange be call before waiting state change.
import { createControllableResolve } from 'controllable-resolve';
const controllableResolve = createControllableResolve({
onWaitingChange: (state) => {
console.log(state);
},
});
const { waitResolved, resolve, reset, cancel } = controllableResolve;
waitResolved(); // onWaitingChange will be triggered with `true`
resolve(100); // onWaitingChange will be triggered with `false`
waitResolved(); // onWaitingChange will be triggered with `true`
cancel(); // onWaitingChange will be triggered with `false`
reset(); // onWaitingChange can be triggered, that inner waiting still be `false`
waitResolved(); // onWaitingChange will be triggered with `true`
reset(); // onWaitingChange will be triggered with `false`
| field | type | description |
|---|---|---|
waitResolved | (state:boolean) => void | create a wait resolved promise for you can control when to resolve promise |
resolve | (value: T): void | waitResolved promise, this method need be call after waitResolved |
cancel | (): void | cancel waitResolve when you not need wait anymore, this method need be call after waitResolved |
waiting | readonly boolean | is there have promise be waiting |
reset | (): void | when you use once mode, use to clear those keep promise and resolve value. |
value | readonly T | undefined | when you use once mode, that value be keep inside the promise result |
| field | default | type | description |
|---|---|---|---|
ignorePrevious | false | boolean | if that be true, when waitResolved will ignore previous one, |
once | false | boolean | once the waitResolved promise be resolved, that will keep that resolve promise until you call reset method manually. |
onWaitingChange | - | (state:boolean) => void | be triggered when promise waiting state change |
FAQs
  [
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.

Security News
Open source is under attack because of how much value it creates. It has been the foundation of every major software innovation for the last three decades. This is not the time to walk away from it.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.