Catalog npm
Back to packageRELEASE DETAILS

1.0.1

npm

4z-stated-promise

A Promise class with a state property

asyncpromisestatestatussync
Published28 Feb 2024
Direct dependencies3
Transitive dependenciesNot calculated

README

Current package documentation

4z-stated-promise

StatedPromise is a JavaScript class that wraps and mimic standard promises with the ability to get their state, result and error synchronously using additional properties.

Installation

Using yarn :

yarn add 4z-stated-promise

Using npm :

npm install 4z-stated-promise

Usage

The StatedPromise class is used similarly to the original Promise class, you simply need to add Stated as a prefix when using it :

import StatedPromise from "4z-stated-promise";

const p1 = new StatedPromise((resolve, reject) => {
  resolve(true);
});

const p2 = new StatedPromise((resolve, reject) => {
  setTimeout(resolve, 500, true);
});

The StatedPromise class can also be used with CommonJS :

const StatedPromise = require("4z-stated-promise");

(...)

You can access the state, result, and reason of the rejection using the properties :

console.log(p1.state);
console.log(p1.result);
console.log(p1.reason)

...or export as JSON :

console.log(p1.toJSON());

Static calls

Promise static functions are also usable :

StatedPromise.all([
  new Promise(resolve => resolve(true))
  new Promise(resolve => setTimeout(resolve, 500, true))
]);

Compatibility

It is compatible with the following module formats:

  • ESM (ECMAScript Module)
  • CommonJS
  • AMD (Asynchronous Module Definition)
  • UMD (Universal Module Definition)
  • TypeScript (/src/index.d.ts)

The UMD version with sourcemaps for web browser is available at /dist/4z-stated-promise.min.js.

Examples

You can find usage examples in the /src/examples directory.

License

This project is licensed under the MIT License.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 3

Native requirements
3 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
@rollup/plugin-terser
Environment
{
  "local_name": "@rollup/plugin-terser",
  "alias": false,
  "peer_metadata": null
}
^0.4.4development
rollup
Environment
{
  "local_name": "rollup",
  "alias": false,
  "peer_metadata": null
}
^4.12.0development
rollup-plugin-license
Environment
{
  "local_name": "rollup-plugin-license",
  "alias": false,
  "peer_metadata": null
}
^3.2.0development

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "integrity": "sha512-dDOsXQBPeBiE8h58lCjBUv4hyNbUSSWybrUr885HV1Iuex624F0I7f6Rt7BABCeMFahrVmrNMMmWGlnGpP20Kw==",
  "shasum": "6be7fd114163f7149aa34065856cdfb78c1c8fbb",
  "tarball": "https://registry.npmjs.org/4z-stated-promise/-/4z-stated-promise-1.0.1.tgz",
  "fileCount": 10,
  "unpackedSize": 11108,
  "signatures": [
    {
      "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA",
      "sig": "MEUCIQDVddZ9JKWwUQHW8rqLR7O0VZqpRLHrdKRy3BU2sARfjAIgc68gu7mX0B2ZWQX0f93tq3FHMs/FdmHJgmzW2zgrgec="
    }
  ]
}

Repository

PENDING
cedrictailly/4z-stated-promise

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 20:19 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:1099c481f658dfae97de77a103deb033c36af1e00d72eb065652f3ef86532591

Other collected versions

1.2.85 Mar1.2.74 Mar1.2.62 Mar1.2.42 Mar1.2.329 Feb1.2.229 FebView all collected versions →