@infini-soft/useoperationfactory v0.2.37
⚡ Getting started
One of the most important foundation of our tools is useOperationFactory
React hook. As tiny as (5k) 49 lines of code to cover almost any implementation possible for error management, UI Feedback, logging, transitions, timeouts, errors, success, debounce, flow control, micro state management or any requirements.
Combined with @infini-soft/ic-hub-core
, acting as pub/sub hub, it's possible for compose complex pattern for any use cases at scale.
✨ Features
- Strongly typed
- Scalable
📚 Documentation
Get all documentations, examples and execute it directly from our website, the ☕ kitchen! Come cook software :) https://www.kitchen.infini-soft.com/hooks/operation-factory
📦 Install
$ npm install @infini-soft/useoperationfactory --save
# or
$ yarn add @infini-soft/useperationfactory
🔨 Usage
import React from 'react';
import { HubCore, consolePlugin } from '@infini-soft/ic-hub-core';
import { useOperationFactory } from '@infini-soft/useoperationfactory';
const mockOperation = () =>
new Promise<string>((resolve, reject) => {
resolve('Mocked data');
});
const mockFailOperation = () =>
new Promise<string>((resolve, reject) => {
reject('Failed operation');
});
const hub = new HubCore();
hub.register(consolePlugin);
export default () => {
const { run, result, status, isSuccess, isLoading, isError, errorDetails } = useOperationFactory(
mockOperation,
{ hub },
);
const fail = useOperationFactory(
mockFailOperation,
{ hub },
);
return (
<div className="container">
<div className="tests">
<h1>Success</h1>
<div>Status = {status}</div>
<div>Loading = {String(isLoading)}</div>
<div>Result = {result && isSuccess && JSON.stringify(result)}</div>
<button onClick={run}>Test</button>
</div>
<div className="tests">
<h1>Error</h1>
<div>Status = {fail.status}</div>
<div>Loading = {String(fail.isLoading)}</div>
<div>Result = {fail.result && JSON.stringify(result)}</div>
<div>Error = {String(fail.isError)}</div>
<div>Error details = {fail.isError && String(fail.errorDetails)}</div>
<button onClick={fail.run}>Test</button>
</div>
</div>
);
};
Powered 🚀 by Infinisoft Inc. Wanna cook a batch with the trailer park boys? come in the kitchen https://www.kitchen.infini-soft.com
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago