forked from sashin/sashinexists
run npm install to generate a package lock
This commit is contained in:
10
node_modules/promise-make-naked/.editorconfig
generated
vendored
Normal file
10
node_modules/promise-make-naked/.editorconfig
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
4
node_modules/promise-make-naked/dist/index.d.ts
generated
vendored
Normal file
4
node_modules/promise-make-naked/dist/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
import type { Result } from './types.js';
|
||||
declare const makeNakedPromise: <T>() => Result<T>;
|
||||
export default makeNakedPromise;
|
||||
export type { Result };
|
||||
25
node_modules/promise-make-naked/dist/index.js
generated
vendored
Normal file
25
node_modules/promise-make-naked/dist/index.js
generated
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
/* IMPORT */
|
||||
import { noop } from './utils.js';
|
||||
/* MAIN */
|
||||
const makeNakedPromise = () => {
|
||||
let resolve = noop;
|
||||
let reject = noop;
|
||||
let resolved = false;
|
||||
let rejected = false;
|
||||
const promise = new Promise((res, rej) => {
|
||||
resolve = value => {
|
||||
resolved = true;
|
||||
return res(value);
|
||||
};
|
||||
reject = value => {
|
||||
rejected = true;
|
||||
return rej(value);
|
||||
};
|
||||
});
|
||||
const isPending = () => !resolved && !rejected;
|
||||
const isResolved = () => resolved;
|
||||
const isRejected = () => rejected;
|
||||
return { promise, resolve, reject, isPending, isResolved, isRejected };
|
||||
};
|
||||
/* EXPORT */
|
||||
export default makeNakedPromise;
|
||||
11
node_modules/promise-make-naked/dist/types.d.ts
generated
vendored
Normal file
11
node_modules/promise-make-naked/dist/types.d.ts
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
type PromiseResolve<T> = (value: T | PromiseLike<T>) => void;
|
||||
type PromiseReject = (reason?: unknown) => void;
|
||||
type Result<T> = {
|
||||
promise: Promise<T>;
|
||||
resolve: PromiseResolve<T>;
|
||||
reject: PromiseReject;
|
||||
isPending: () => boolean;
|
||||
isResolved: () => boolean;
|
||||
isRejected: () => boolean;
|
||||
};
|
||||
export type { PromiseResolve, PromiseReject, Result };
|
||||
2
node_modules/promise-make-naked/dist/types.js
generated
vendored
Normal file
2
node_modules/promise-make-naked/dist/types.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
/* MAIN */
|
||||
export {};
|
||||
2
node_modules/promise-make-naked/dist/utils.d.ts
generated
vendored
Normal file
2
node_modules/promise-make-naked/dist/utils.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
declare const noop: () => void;
|
||||
export { noop };
|
||||
4
node_modules/promise-make-naked/dist/utils.js
generated
vendored
Normal file
4
node_modules/promise-make-naked/dist/utils.js
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/* MAIN */
|
||||
const noop = () => { };
|
||||
/* EXPORT */
|
||||
export { noop };
|
||||
21
node_modules/promise-make-naked/license
generated
vendored
Normal file
21
node_modules/promise-make-naked/license
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2021-present Fabio Spampinato
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
27
node_modules/promise-make-naked/package.json
generated
vendored
Executable file
27
node_modules/promise-make-naked/package.json
generated
vendored
Executable file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"name": "promise-make-naked",
|
||||
"repository": "github:fabiospampinato/promise-make-naked",
|
||||
"description": "A simple function that makes a promise that can be resolved, rejected or introspected from the outside.",
|
||||
"version": "3.0.0",
|
||||
"type": "module",
|
||||
"main": "dist/index.js",
|
||||
"exports": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
"scripts": {
|
||||
"clean": "tsex clean",
|
||||
"compile": "tsex compile",
|
||||
"compile:watch": "tsex compile --watch",
|
||||
"test": "tsex test",
|
||||
"test:watch": "tsex test --watch",
|
||||
"prepublishOnly": "tsex prepare"
|
||||
},
|
||||
"keywords": [
|
||||
"promise",
|
||||
"naked"
|
||||
],
|
||||
"devDependencies": {
|
||||
"fava": "^0.3.2",
|
||||
"tsex": "^4.0.2",
|
||||
"typescript": "^5.5.2"
|
||||
}
|
||||
}
|
||||
30
node_modules/promise-make-naked/readme.md
generated
vendored
Normal file
30
node_modules/promise-make-naked/readme.md
generated
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
# Promise Make Naked
|
||||
|
||||
A simple function that makes a promise that can be resolved, rejected or introspected from the outside.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
npm install --save promise-make-naked
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```ts
|
||||
import makeNakedPromise from 'promise-make-naked';
|
||||
|
||||
// Let's create a naked Promise
|
||||
|
||||
const {promise, resolve, reject, isPending, isResolved, isRejected} = makeNakedPromise ();
|
||||
|
||||
resolve ( 123 ); // Resolve the promise with the provided value
|
||||
reject ( new Error () ); // Reject the promise with the provided reason
|
||||
|
||||
isPending (); // Check if the promise is still pending
|
||||
isResolved (); // Check if the promise got resolved
|
||||
isRejected (); // Check if the promise got rejected
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT © Fabio Spampinato
|
||||
42
node_modules/promise-make-naked/src/index.ts
generated
vendored
Executable file
42
node_modules/promise-make-naked/src/index.ts
generated
vendored
Executable file
@@ -0,0 +1,42 @@
|
||||
|
||||
/* IMPORT */
|
||||
|
||||
import {noop} from './utils';
|
||||
import type {PromiseResolve, PromiseReject, Result} from './types';
|
||||
|
||||
/* MAIN */
|
||||
|
||||
const makeNakedPromise = <T> (): Result<T> => {
|
||||
|
||||
let resolve: PromiseResolve<T> = noop;
|
||||
let reject: PromiseReject = noop;
|
||||
|
||||
let resolved = false;
|
||||
let rejected = false;
|
||||
|
||||
const promise = new Promise<T> ( ( res, rej ): void => {
|
||||
|
||||
resolve = value => {
|
||||
resolved = true;
|
||||
return res ( value );
|
||||
};
|
||||
|
||||
reject = value => {
|
||||
rejected = true;
|
||||
return rej ( value );
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
const isPending = (): boolean => !resolved && !rejected;
|
||||
const isResolved = (): boolean => resolved;
|
||||
const isRejected = (): boolean => rejected;
|
||||
|
||||
return {promise, resolve, reject, isPending, isResolved, isRejected};
|
||||
|
||||
};
|
||||
|
||||
/* EXPORT */
|
||||
|
||||
export default makeNakedPromise;
|
||||
export type {Result};
|
||||
19
node_modules/promise-make-naked/src/types.ts
generated
vendored
Normal file
19
node_modules/promise-make-naked/src/types.ts
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
|
||||
/* MAIN */
|
||||
|
||||
type PromiseResolve <T> = ( value: T | PromiseLike<T> ) => void;
|
||||
|
||||
type PromiseReject = ( reason?: unknown ) => void;
|
||||
|
||||
type Result <T> = {
|
||||
promise: Promise<T>,
|
||||
resolve: PromiseResolve<T>,
|
||||
reject: PromiseReject,
|
||||
isPending: () => boolean,
|
||||
isResolved: () => boolean,
|
||||
isRejected: () => boolean
|
||||
};
|
||||
|
||||
/* EXPORT */
|
||||
|
||||
export type {PromiseResolve, PromiseReject, Result};
|
||||
8
node_modules/promise-make-naked/src/utils.ts
generated
vendored
Normal file
8
node_modules/promise-make-naked/src/utils.ts
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
|
||||
/* MAIN */
|
||||
|
||||
const noop = (): void => {};
|
||||
|
||||
/* EXPORT */
|
||||
|
||||
export {noop};
|
||||
109
node_modules/promise-make-naked/test/index.js
generated
vendored
Normal file
109
node_modules/promise-make-naked/test/index.js
generated
vendored
Normal file
@@ -0,0 +1,109 @@
|
||||
|
||||
/* IMPORT */
|
||||
|
||||
import {describe} from 'fava';
|
||||
import makeNakedPromise from '../dist/index.js';
|
||||
|
||||
/* MAIN */
|
||||
|
||||
describe ( 'makeNakedPromise', it => {
|
||||
|
||||
it ( 'returns a function which can be resolved from the outside', t => {
|
||||
|
||||
const {promise, resolve} = makeNakedPromise ();
|
||||
|
||||
promise.then ( t.pass );
|
||||
|
||||
resolve ();
|
||||
|
||||
});
|
||||
|
||||
it ( 'returns a function which can be rejected from the outside', t => {
|
||||
|
||||
const {promise, reject} = makeNakedPromise ();
|
||||
|
||||
promise.catch ( t.pass );
|
||||
|
||||
reject ();
|
||||
|
||||
});
|
||||
|
||||
it ( 'returns a function which can be used to check if the promise is pending, resolve branch', t => {
|
||||
|
||||
const {resolve, isPending} = makeNakedPromise ();
|
||||
|
||||
t.true ( isPending () );
|
||||
|
||||
resolve ();
|
||||
|
||||
t.false ( isPending () );
|
||||
|
||||
});
|
||||
|
||||
it ( 'returns a function which can be used to check if the promise is pending, reject branch', t => {
|
||||
|
||||
const {promise, reject, isPending} = makeNakedPromise ();
|
||||
|
||||
promise.catch ( () => {} );
|
||||
|
||||
t.true ( isPending () );
|
||||
|
||||
reject ();
|
||||
|
||||
t.false ( isPending () );
|
||||
|
||||
});
|
||||
|
||||
it ( 'returns a function which can be used to check if the promise is resolved, resolve branch', t => {
|
||||
|
||||
const {resolve, isResolved} = makeNakedPromise ();
|
||||
|
||||
t.false ( isResolved () );
|
||||
|
||||
resolve ();
|
||||
|
||||
t.true ( isResolved () );
|
||||
|
||||
});
|
||||
|
||||
it ( 'returns a function which can be used to check if the promise is resolved, reject branch', t => {
|
||||
|
||||
const {promise, reject, isResolved} = makeNakedPromise ();
|
||||
|
||||
promise.catch ( () => {} );
|
||||
|
||||
t.false ( isResolved () );
|
||||
|
||||
reject ();
|
||||
|
||||
t.false ( isResolved () );
|
||||
|
||||
});
|
||||
|
||||
it ( 'returns a function which can be used to check if the promise is rejected, resolve branch', t => {
|
||||
|
||||
const {resolve, isRejected} = makeNakedPromise ();
|
||||
|
||||
t.false ( isRejected () );
|
||||
|
||||
resolve ();
|
||||
|
||||
t.false ( isRejected () );
|
||||
|
||||
});
|
||||
|
||||
it ( 'returns a function which can be used to check if the promise is rejected, reject branch', t => {
|
||||
|
||||
const {promise, reject, isRejected} = makeNakedPromise ();
|
||||
|
||||
promise.catch ( () => {} );
|
||||
|
||||
t.false ( isRejected () );
|
||||
|
||||
reject ();
|
||||
|
||||
t.true ( isRejected () );
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
3
node_modules/promise-make-naked/tsconfig.json
generated
vendored
Executable file
3
node_modules/promise-make-naked/tsconfig.json
generated
vendored
Executable file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": "tsex/tsconfig.json"
|
||||
}
|
||||
Reference in New Issue
Block a user