A universial inventory management library for Javascript on browser with user state management. This only works with (https://github.com/BrianPollar/@open-stock/stock-counter-server) the server library.
stock-cpounter-client implements a full authentication system. It consists of:
- a Javascript client library (this repository)
- a Node Js Server for Node.js.
Its main features are:
The libarary uses standard encryption for data protection:
Sample code:
import { createStockCounter } from "@open-stock/stock-counter-client";
import Axios from "axios-observable";
// then create an instance
const instance = Axios.create({
baseURL: "https://yourapi.com",
timeout: 1000,
headers: {
"X-Custom-Header": "foobar",
Authorization: "auth-token",
},
});
const { stockCounterClient } = createStockCounter(instance);
// with npm
npm install @open-stock/stock-counter-client
// with yarn
yarn add @open-stock/stock-counter-client
The following example gets user from stock-auth-client and gets the chat client and chat controller instances.
import { createStockCounter } from "@open-stock/stock-counter-client";
import Axios from "axios-observable";
// then create an instance
const instance = Axios.create({
baseURL: "https://yourapi.com",
timeout: 1000,
headers: {
"X-Custom-Header": "foobar",
Authorization: "auth-token",
},
});
const { stockCounterClient } = createStockCounter(instance);
Here are the features of the stock-counter-client library
Most of the features below are automatically implememnted by the library. But If you want to use the classes and functions provided by the library, you can do so by importing them from the library. Some of them are elaborated below.
transformFaqToNameOrImage is a function that is used to transform a faq to a name or image.
import { transformFaqToNameOrImage } from "@open-stock/stock-counter-client";
const faq: Faq ={
// ...
};
const type = 'img' || 'name';
const nameOrImage = transformFaqToNameOrImage(faq, type);
transformEstimateId is a function that is used to transform an estimate id.
import { transformEstimateId } from "@open-stock/stock-counter-client";
const result = transformEstimateId('123');
transformInvoice is a function that is used to transform an invoice.
import { transformInvoice } from "@open-stock/stock-counter-client";
const result = transformInvoice('123');
transformUrId is a function that is used to transform a user id.
import { transformUrId } from "@open-stock/stock-counter-client";
const result = transformUrId('123', 'CAR');
likeFn is a function that is used to like an item.
import { likeFn, Item } from "@open-stock/stock-counter-client";
import { User } from '@open-stock/stock-auth-client';
const currentUser: User = {
// ...
};
const item: Item = {
// ...
};
const { success } = await likeFn('companyId', currentUser, item);
unLikeFn is a function that is used to unlike an item.
import { unLikeFn, Item } from "@open-stock/stock-counter-client";
import { User } from '@open-stock/stock-auth-client';
const currentUser: User = {
// ...
};
const item: Item = {
// ...
};
const { success } = await unLikeFn('companyId', currentUser, item);
determineLikedFn is a function that is used to determine if an item is liked.
import { determineLikedFn, Item } from "@open-stock/stock-counter-client";
import { User } from '@open-stock/stock-auth-client';
const currentUser: User = {
// ...
};
const item: Item = {
// ...
};
const res = await determineLikedFn(item, currentUser);
markInvStatusAsFn is a function that is used to change an invoice status.
import { markInvStatusAsFn, Invoice } from "@open-stock/stock-counter-client";
import { TinvoiceStatus } from '@open-stock/stock-universal';
const invoice: Invoice = {
// ...
};
const status: TinvoiceStatus = 'pending';
const { success } = await markInvStatusAsFn('companyId', invoice, status);
deleteInvoiceFn is a function that is used to delete an invoice.
import { deleteInvoiceFn, Invoice } from "@open-stock/stock-counter-client";
const invoices: Invoice[] = [
// ...
];
const { success } = await deleteInvoiceFn('companyId', '_id', invoices);
toggleSelectionFn is a function that is used to toggle selection.
import { toggleSelectionFn } from "@open-stock/stock-counter-client";
const id = '123';
const selections = ['123', '456'];
toggleSelectionFn(id, selections);
deleteManyInvoicesFn is a function that is used to delete many invoices.
import { deleteManyInvoicesFn, Invoice } from "@open-stock/stock-counter-client";
const invoices: Invoice[] = [
// ...
];
const selections = ['123', '456'];
const { success } = await deleteManyInvoicesFn('companyId', invoices, selections);
openBoxFn is a function that is used to open a box.
import { openBoxFn } from "@open-stock/stock-counter-client";
const val = '123';
const boxes = ['123', '456'];
openBoxFn(val, boxes);
transformNoInvId is a function that is used to transform a no invoice id.
import { transformNoInvId } from "@open-stock/stock-counter-client";
const suffix = 'ABC';
const val = 123;
const result = transformNoInvId(suffix, val);
Applies a block date select filter to the given data array based on the specified condition.
import { applyBlockDateSelect, Estimate } from "@open-stock/stock-counter-client";
const estimates: Estimate[] = [
// ...
];
const result = applyBlockDateSelect(estimates, 'pending');
CalculationsController is a class that is used to manage calculations. It is used by the StockCounterClient to manage calculations.
import { CalculationsController } from "@open-stock/stock-counter-client";
const calculationsController = new CalculationsController();
// see file definition for all methods descriptions
InventoryController is a class that is used to manage inventory. It is used by the StockCounterClient to manage inventory.
import { InventoryController } from "@open-stock/stock-counter-client";
const inventoryController = new InventoryController();
// see file definition for all methods descriptions
PaymentController is a class that is used to manage payments. It is used by the StockCounterClient to manage payments.
import { PaymentController } from "@open-stock/stock-counter-client";
const paymentController = new PaymentController();
// see file definition for all methods descriptions
```ts
The source code of the website can be found here. Contributions are welcome!
Become a sponsor and get your logo on our README on Github with a link to your site.