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

awai

Package Overview
Dependencies
Maintainers
1
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

awai - npm Package Compare versions

Comparing version 0.0.1-alpha-11 to 0.0.1-alpha-12

44

dist/index.d.ts

@@ -15,20 +15,2 @@ type Resolver<T> = (payload: T) => any;

declare const rejectAfter: (ms: number) => Promise<void>;
type Callback<A extends any[], R extends any> = (...args: A) => R;
type BaseEvents<Args> = {
invoked: AwaitableEvent<Args>;
failed: AwaitableEvent<any>;
};
type AsyncEvents<Args, Return> = BaseEvents<Args> & {
completed: AwaitableEvent<Return>;
};
declare function action<Args extends any[]>(): Function & {
events: BaseEvents<Args>;
};
declare function action<Args extends any[], Return extends any>(T: Callback<Args, Return>): Callback<Args, Return> & {
events: AsyncEvents<Args, Return>;
};
type AsyncSetter<T> = (nextValueOrResolver: T | Promise<T> | ((current?: T | undefined) => T | Promise<T>)) => void;

@@ -101,2 +83,22 @@

declare const getAggregatedAsyncStatus: <T extends (ReadableState<any> | ReadableAsyncState<any>)[]>(states: T) => AsyncStatus;
declare const rejectAfter: (ms: number) => Promise<void>;
type Callback<A extends any[], R extends any> = (...args: A) => R;
type BaseEvents<Args> = {
invoked: AwaitableEvent<Args>;
failed: AwaitableEvent<any>;
};
type AsyncEvents<Args, Return> = BaseEvents<Args> & {
completed: AwaitableEvent<Return>;
};
declare function action<Args extends any[]>(): Function & {
events: BaseEvents<Args>;
};
declare function action<Args extends any[], Return extends any>(T: Callback<Args, Return>): Callback<Args, Return> & {
events: AsyncEvents<Args, Return>;
};
type InitialValue<T> = T | Promise<T> | (() => Promise<T>);

@@ -107,2 +109,6 @@ type AsyncState<T> = ReadableAsyncState<T> & WritableAsyncState<T>;

type CleanupCallback = () => void;
declare const effect: <T extends any[], V extends { [K in keyof T]: InferReadableType<T[K]>; }>(states: [...T], effect: (...values: V) => CleanupCallback | void) => void;
type State<T> = ReadableState<T> & WritableState<T>;

@@ -128,2 +134,2 @@

export { AsyncSetter, AsyncState, AsyncStatus, AsyncValue, AwaitableEvent, FamilyState, InferReadableType, ReadableAsyncState, ReadableState, Setter, State, WritableAsyncState, WritableState, action, asyncState, delay, familyState, fork, isReadableAsyncState, rejectAfter, scenario, scenarioOnEvery, scenarioOnce, selector, state };
export { AsyncSetter, AsyncState, AsyncStatus, AsyncValue, AwaitableEvent, FamilyState, InferReadableType, ReadableAsyncState, ReadableState, Setter, State, WritableAsyncState, WritableState, action, asyncState, delay, effect, familyState, fork, getAggregatedAsyncStatus, isReadableAsyncState, rejectAfter, scenario, scenarioOnEvery, scenarioOnce, selector, state };

@@ -37,2 +37,4 @@ 'use strict';

const flush = () => new Promise((resolve) => setTimeout(resolve, 0));
const fork = async (forkFn) => {

@@ -42,2 +44,24 @@ await forkFn();

var AsyncStatus = /* @__PURE__ */ ((AsyncStatus2) => {
AsyncStatus2["LOADING"] = "loading";
AsyncStatus2["LOADED"] = "loaded";
AsyncStatus2["FAILURE"] = "failure";
return AsyncStatus2;
})(AsyncStatus || {});
const isReadableAsyncState = (value) => isObject(value) && isFunction(value.get) && isFunction(value.getAsync) && isFunction(value.getPromise) && isFunction(value.then);
const getAggregatedAsyncStatus = (states) => {
const asyncStates = states.filter(isReadableAsyncState);
const hasError = asyncStates.find((state) => state.getStatus() === AsyncStatus.FAILURE);
if (hasError) {
return AsyncStatus.FAILURE;
}
const hasLoading = asyncStates.find((state) => state.getStatus() === AsyncStatus.LOADING);
if (hasLoading) {
return AsyncStatus.LOADING;
}
return AsyncStatus.LOADED;
};
const isFunction = (value) => typeof value === "function";

@@ -81,11 +105,2 @@

var AsyncStatus = /* @__PURE__ */ ((AsyncStatus2) => {
AsyncStatus2["LOADING"] = "loading";
AsyncStatus2["LOADED"] = "loaded";
AsyncStatus2["FAILURE"] = "failure";
return AsyncStatus2;
})(AsyncStatus || {});
const isReadableAsyncState = (value) => isObject(value) && isFunction(value.get) && isFunction(value.getAsync) && isFunction(value.getPromise) && isFunction(value.then);
const isPromiseOrFunction = (value) => isFunction(value) || isPromiseLike(value);

@@ -138,2 +153,3 @@ const asyncState = (initialValue) => {

}
await flush();
};

@@ -180,2 +196,22 @@ const get = () => value;

const effect = (states, effect2) => {
let cleanup;
const runEffect = () => {
const values = states.map((state) => state.get());
const status = getAggregatedAsyncStatus(states);
if (status !== AsyncStatus.LOADED) {
return;
}
return effect2(...values);
};
cleanup = runEffect();
scenario(async () => {
await Promise.race(states.map((state) => state.events.changed));
if (isFunction(cleanup)) {
cleanup();
}
cleanup = runEffect();
});
};
const state = (initialValue) => {

@@ -239,15 +275,2 @@ let value = initialValue;

const getCommonStatus = (states) => {
const asyncStates = states.filter(isReadableAsyncState);
const hasError = asyncStates.find((state) => state.getStatus() === AsyncStatus.FAILURE);
if (hasError) {
return AsyncStatus.FAILURE;
}
const hasLoading = asyncStates.find((state) => state.getStatus() === AsyncStatus.LOADING);
if (hasLoading) {
return AsyncStatus.LOADING;
}
return AsyncStatus.LOADED;
};
const asyncSelector = (states, predicate) => {

@@ -263,3 +286,3 @@ let error;

};
const getStatus = () => getCommonStatus(states);
const getStatus = () => getAggregatedAsyncStatus(states);
scenario(async () => {

@@ -354,4 +377,6 @@ nextVersion++;

exports.delay = delay;
exports.effect = effect;
exports.familyState = familyState;
exports.fork = fork;
exports.getAggregatedAsyncStatus = getAggregatedAsyncStatus;
exports.isReadableAsyncState = isReadableAsyncState;

@@ -358,0 +383,0 @@ exports.rejectAfter = rejectAfter;

{
"name": "awai",
"version": "0.0.1-alpha-11",
"version": "0.0.1-alpha-12",
"author": "Yuriy Yakym",

@@ -5,0 +5,0 @@ "description": "State management library",

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