Socket
Socket
Sign inDemoInstall

@vtex/order-items

Package Overview
Dependencies
Maintainers
67
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@vtex/order-items - npm Package Compare versions

Comparing version 0.6.1 to 0.6.2

7

CHANGELOG.md

@@ -10,5 +10,10 @@ # Changelog

## [0.6.2] - 2021-05-05
### Fixed
- Possible issue when saving orderForm to localStorage when quota
has been exceeded.
## [0.6.1] - 2021-04-27
### Changed
- Fields `id`, `quantity`, `seller` and `inputValues` of `AseemblyOptionsInput` to optional.
- Fields `id`, `quantity`, `seller` and `inputValues` of `AssemblyOptionInput` to optional.
- Fields `price`, `seller`, `sellingPrice`, and `unitMultiplier` of `Item` to optional.

@@ -15,0 +20,0 @@ - Field `coupon` of `MarketingData` to optional.

77

dist/index.esm.js
/*!
* @vtex/order-items v0.6.1
* @vtex/order-items v0.6.2
* (c) VTEX

@@ -26,3 +26,3 @@ * Released under the MIT License.

};
const getLocalOrderQueue = () => {
const getLocalOrderQueue = (log) => {
var _a;

@@ -37,17 +37,39 @@ let queue = null;

if (!queue) {
localStorage.setItem('orderQueue', JSON.stringify(DEFAULT_LOCAL_ORDER_QUEUE));
try {
localStorage.setItem('orderQueue', JSON.stringify(DEFAULT_LOCAL_ORDER_QUEUE));
}
catch (error) {
log === null || log === void 0 ? void 0 : log({
type: 'Error',
level: 'Critical',
event: error,
workflowType: 'OrderItems',
workflowInstance: 'get-local-order-queue',
});
}
}
return queue !== null && queue !== void 0 ? queue : DEFAULT_LOCAL_ORDER_QUEUE;
};
const saveLocalOrderQueue = (orderQueue) => {
localStorage.setItem('orderQueue', JSON.stringify(orderQueue));
const saveLocalOrderQueue = (orderQueue, log) => {
try {
localStorage.setItem('orderQueue', JSON.stringify(orderQueue));
}
catch (error) {
log === null || log === void 0 ? void 0 : log({
type: 'Error',
level: 'Critical',
event: error,
workflowType: 'OrderItems',
workflowInstance: 'save-local-order-queue',
});
}
};
const pushLocalOrderQueue = (task) => {
const pushLocalOrderQueue = (task, log) => {
const orderQueue = getLocalOrderQueue();
const index = orderQueue.queue.push(task);
saveLocalOrderQueue(orderQueue);
saveLocalOrderQueue(orderQueue, log);
return index;
};
const popLocalOrderQueue = (index = 0) => {
const orderQueue = getLocalOrderQueue();
const popLocalOrderQueue = (index = 0, log = undefined) => {
const orderQueue = getLocalOrderQueue(log);
const task = orderQueue.queue[index];

@@ -58,7 +80,7 @@ if (!task) {

orderQueue.queue.splice(index, 1);
saveLocalOrderQueue(orderQueue);
saveLocalOrderQueue(orderQueue, log);
return task;
};
const updateLocalQueueItemIds = ({ fakeUniqueId, uniqueId, }) => {
const orderQueue = getLocalOrderQueue();
const updateLocalQueueItemIds = ({ fakeUniqueId, uniqueId }, log) => {
const orderQueue = getLocalOrderQueue(log);
orderQueue.queue = orderQueue.queue.map((task) => {

@@ -77,3 +99,3 @@ if (task.type !== 'update_mutation') {

});
saveLocalOrderQueue(orderQueue);
saveLocalOrderQueue(orderQueue, log);
};

@@ -154,6 +176,8 @@

function createUseAddItems({ useMutateAddItems, useOrderForm, }) {
function createUseAddItems({ useMutateAddItems, useOrderForm, useLogger, }) {
const useAddItems = (fakeUniqueIdMapRef) => {
var _a;
const { setOrderForm } = useOrderForm();
const mutate = useMutateAddItems();
const { log } = (_a = useLogger === null || useLogger === void 0 ? void 0 : useLogger()) !== null && _a !== void 0 ? _a : {};
const addItemTask = useCallback(({ mutationInputItems, mutationInputMarketingData, orderFormItems, salesChannel, allowedOutdatedData, }) => ({

@@ -187,3 +211,3 @@ execute: async () => {

uniqueId: updatedItem.uniqueId,
});
}, log);
fakeUniqueIdMapRef.current[fakeUniqueId] = updatedItem.uniqueId;

@@ -229,3 +253,3 @@ });

},
}), [fakeUniqueIdMapRef, mutate, setOrderForm]);
}), [fakeUniqueIdMapRef, log, mutate, setOrderForm]);
return addItemTask;

@@ -394,3 +418,3 @@ };

const enqueueTask = useCallback((task) => enqueue(task.execute, task.id).then((orderForm) => {
popLocalOrderQueue();
popLocalOrderQueue(0, log);
if (queueStatusRef.current === 'Fulfilled') {

@@ -413,6 +437,6 @@ setOrderForm(orderForm);

if (error && error.code === TASK_CANCELLED_CODE) {
popLocalOrderQueue(error.index);
popLocalOrderQueue(error.index, log);
return;
}
popLocalOrderQueue();
popLocalOrderQueue(0, log);
log({

@@ -452,2 +476,3 @@ type: 'Error',

const { orderForm, setOrderForm } = useOrderForm();
const { log } = useLogger();
const fakeUniqueIdMapRef = useFakeUniqueIdMap({ useOrderQueue });

@@ -516,3 +541,3 @@ const enqueueTask = useEnqueueTask({

if (quantity > 0) {
const localQueue = getLocalOrderQueue().queue;
const localQueue = getLocalOrderQueue(log).queue;
let previousTaskIndex = -1;

@@ -577,3 +602,3 @@ const originalId = id;

orderFormItems: currentOrderFormItems,
});
}, log);
enqueueTask(updateItemsTask({

@@ -585,3 +610,3 @@ items: mutationVariables.orderItems,

}));
}, [enqueueTask, setOrderForm, updateItemsTask]);
}, [enqueueTask, log, setOrderForm, updateItemsTask]);
/**

@@ -643,3 +668,3 @@ * Add the items to the order form.

orderFormItems,
});
}, log);
enqueueTask(addItemsTask({

@@ -652,3 +677,3 @@ mutationInputItems,

}));
}, [addItemsTask, enqueueTask, setOrderForm, updateQuantity]);
}, [addItemsTask, enqueueTask, log, setOrderForm, updateQuantity]);
const addItem = useCallback((items, marketingData, salesChannel) => {

@@ -666,3 +691,3 @@ return addItems(items, { marketingData, salesChannel });

useEffect(() => {
const localOrderQueue = getLocalOrderQueue();
const localOrderQueue = getLocalOrderQueue(log);
localOrderQueue.queue.forEach((task) => {

@@ -687,3 +712,3 @@ if (task.type === 'add_mutation') {

});
}, [addItemsTask, enqueueTask, updateItemsTask]);
}, [addItemsTask, enqueueTask, log, updateItemsTask]);
return (React.createElement(OrderItemsContext.Provider, { value: value }, children));

@@ -690,0 +715,0 @@ };

/*!
* @vtex/order-items v0.6.1
* @vtex/order-items v0.6.2
* (c) VTEX

@@ -55,3 +55,3 @@ * Released under the MIT License.

};
const getLocalOrderQueue = () => {
const getLocalOrderQueue = (log) => {
var _a;

@@ -66,17 +66,39 @@ let queue = null;

if (!queue) {
localStorage.setItem('orderQueue', JSON.stringify(DEFAULT_LOCAL_ORDER_QUEUE));
try {
localStorage.setItem('orderQueue', JSON.stringify(DEFAULT_LOCAL_ORDER_QUEUE));
}
catch (error) {
log === null || log === void 0 ? void 0 : log({
type: 'Error',
level: 'Critical',
event: error,
workflowType: 'OrderItems',
workflowInstance: 'get-local-order-queue',
});
}
}
return queue !== null && queue !== void 0 ? queue : DEFAULT_LOCAL_ORDER_QUEUE;
};
const saveLocalOrderQueue = (orderQueue) => {
localStorage.setItem('orderQueue', JSON.stringify(orderQueue));
const saveLocalOrderQueue = (orderQueue, log) => {
try {
localStorage.setItem('orderQueue', JSON.stringify(orderQueue));
}
catch (error) {
log === null || log === void 0 ? void 0 : log({
type: 'Error',
level: 'Critical',
event: error,
workflowType: 'OrderItems',
workflowInstance: 'save-local-order-queue',
});
}
};
const pushLocalOrderQueue = (task) => {
const pushLocalOrderQueue = (task, log) => {
const orderQueue = getLocalOrderQueue();
const index = orderQueue.queue.push(task);
saveLocalOrderQueue(orderQueue);
saveLocalOrderQueue(orderQueue, log);
return index;
};
const popLocalOrderQueue = (index = 0) => {
const orderQueue = getLocalOrderQueue();
const popLocalOrderQueue = (index = 0, log = undefined) => {
const orderQueue = getLocalOrderQueue(log);
const task = orderQueue.queue[index];

@@ -87,7 +109,7 @@ if (!task) {

orderQueue.queue.splice(index, 1);
saveLocalOrderQueue(orderQueue);
saveLocalOrderQueue(orderQueue, log);
return task;
};
const updateLocalQueueItemIds = ({ fakeUniqueId, uniqueId, }) => {
const orderQueue = getLocalOrderQueue();
const updateLocalQueueItemIds = ({ fakeUniqueId, uniqueId }, log) => {
const orderQueue = getLocalOrderQueue(log);
orderQueue.queue = orderQueue.queue.map((task) => {

@@ -106,3 +128,3 @@ if (task.type !== 'update_mutation') {

});
saveLocalOrderQueue(orderQueue);
saveLocalOrderQueue(orderQueue, log);
};

@@ -183,6 +205,8 @@

function createUseAddItems({ useMutateAddItems, useOrderForm, }) {
function createUseAddItems({ useMutateAddItems, useOrderForm, useLogger, }) {
const useAddItems = (fakeUniqueIdMapRef) => {
var _a;
const { setOrderForm } = useOrderForm();
const mutate = useMutateAddItems();
const { log } = (_a = useLogger === null || useLogger === void 0 ? void 0 : useLogger()) !== null && _a !== void 0 ? _a : {};
const addItemTask = React.useCallback(({ mutationInputItems, mutationInputMarketingData, orderFormItems, salesChannel, allowedOutdatedData, }) => ({

@@ -216,3 +240,3 @@ execute: async () => {

uniqueId: updatedItem.uniqueId,
});
}, log);
fakeUniqueIdMapRef.current[fakeUniqueId] = updatedItem.uniqueId;

@@ -258,3 +282,3 @@ });

},
}), [fakeUniqueIdMapRef, mutate, setOrderForm]);
}), [fakeUniqueIdMapRef, log, mutate, setOrderForm]);
return addItemTask;

@@ -423,3 +447,3 @@ };

const enqueueTask = React.useCallback((task) => enqueue(task.execute, task.id).then((orderForm) => {
popLocalOrderQueue();
popLocalOrderQueue(0, log);
if (queueStatusRef.current === 'Fulfilled') {

@@ -442,6 +466,6 @@ setOrderForm(orderForm);

if (error && error.code === orderManager.TASK_CANCELLED_CODE) {
popLocalOrderQueue(error.index);
popLocalOrderQueue(error.index, log);
return;
}
popLocalOrderQueue();
popLocalOrderQueue(0, log);
log({

@@ -481,2 +505,3 @@ type: 'Error',

const { orderForm, setOrderForm } = useOrderForm();
const { log } = useLogger();
const fakeUniqueIdMapRef = useFakeUniqueIdMap({ useOrderQueue });

@@ -545,3 +570,3 @@ const enqueueTask = useEnqueueTask({

if (quantity > 0) {
const localQueue = getLocalOrderQueue().queue;
const localQueue = getLocalOrderQueue(log).queue;
let previousTaskIndex = -1;

@@ -606,3 +631,3 @@ const originalId = id;

orderFormItems: currentOrderFormItems,
});
}, log);
enqueueTask(updateItemsTask({

@@ -614,3 +639,3 @@ items: mutationVariables.orderItems,

}));
}, [enqueueTask, setOrderForm, updateItemsTask]);
}, [enqueueTask, log, setOrderForm, updateItemsTask]);
/**

@@ -672,3 +697,3 @@ * Add the items to the order form.

orderFormItems,
});
}, log);
enqueueTask(addItemsTask({

@@ -681,3 +706,3 @@ mutationInputItems,

}));
}, [addItemsTask, enqueueTask, setOrderForm, updateQuantity]);
}, [addItemsTask, enqueueTask, log, setOrderForm, updateQuantity]);
const addItem = React.useCallback((items, marketingData, salesChannel) => {

@@ -695,3 +720,3 @@ return addItems(items, { marketingData, salesChannel });

React.useEffect(() => {
const localOrderQueue = getLocalOrderQueue();
const localOrderQueue = getLocalOrderQueue(log);
localOrderQueue.queue.forEach((task) => {

@@ -716,3 +741,3 @@ if (task.type === 'add_mutation') {

});
}, [addItemsTask, enqueueTask, updateItemsTask]);
}, [addItemsTask, enqueueTask, log, updateItemsTask]);
return (React__default['default'].createElement(OrderItemsContext.Provider, { value: value }, children));

@@ -719,0 +744,0 @@ };

{
"name": "@vtex/order-items",
"version": "0.6.1",
"version": "0.6.2",
"description": "",

@@ -5,0 +5,0 @@ "cdn": "dist/index.umd.js",

@@ -14,2 +14,3 @@ import { useCallback } from 'react'

import { isSameItem } from '../utils'
import type { UseLogger } from './logger'

@@ -28,2 +29,3 @@ interface AddItemData<O extends OrderForm> {

useOrderForm: () => OrderFormContext<O>
useLogger?: UseLogger
}

@@ -34,2 +36,3 @@

useOrderForm,
useLogger,
}: CreateAddItemsParams<O>) {

@@ -41,2 +44,3 @@ const useAddItems = (

const mutate = useMutateAddItems()
const { log } = useLogger?.() ?? {}

@@ -88,6 +92,9 @@ const addItemTask = useCallback(

// this item with it's fake `uniqueId`
updateLocalQueueItemIds({
fakeUniqueId,
uniqueId: updatedItem.uniqueId,
})
updateLocalQueueItemIds(
{
fakeUniqueId,
uniqueId: updatedItem.uniqueId,
},
log
)
fakeUniqueIdMapRef.current[fakeUniqueId] = updatedItem.uniqueId

@@ -147,3 +154,3 @@ })

}),
[fakeUniqueIdMapRef, mutate, setOrderForm]
[fakeUniqueIdMapRef, log, mutate, setOrderForm]
)

@@ -150,0 +157,0 @@

import type { Item, OrderFormItemInput, MarketingData } from '../typings'
import type { LogFn } from './logger'

@@ -43,11 +44,17 @@ export type LocalOrderTaskType = 'add_mutation' | 'update_mutation'

type GetLocalOrderQueue = () => LocalOrderQueue
type PushLocalOrderQueueFn = (task: LocalOrderTask) => number
type PopLocalOrderQueueFn = (index?: number) => LocalOrderTask | undefined
type UpdateLocalQueueItemIdsFn = (args: {
fakeUniqueId: string
uniqueId: string
}) => void
type GetLocalOrderQueue = (log?: LogFn) => LocalOrderQueue
type PushLocalOrderQueueFn = (task: LocalOrderTask, log?: LogFn) => number
type PopLocalOrderQueueFn = (
index?: number,
log?: LogFn
) => LocalOrderTask | undefined
type UpdateLocalQueueItemIdsFn = (
args: {
fakeUniqueId: string
uniqueId: string
},
log?: LogFn
) => void
export const getLocalOrderQueue: GetLocalOrderQueue = () => {
export const getLocalOrderQueue: GetLocalOrderQueue = (log) => {
let queue = null

@@ -62,6 +69,16 @@

if (!queue) {
localStorage.setItem(
'orderQueue',
JSON.stringify(DEFAULT_LOCAL_ORDER_QUEUE)
)
try {
localStorage.setItem(
'orderQueue',
JSON.stringify(DEFAULT_LOCAL_ORDER_QUEUE)
)
} catch (error) {
log?.({
type: 'Error',
level: 'Critical',
event: error,
workflowType: 'OrderItems',
workflowInstance: 'get-local-order-queue',
})
}
}

@@ -72,7 +89,17 @@

const saveLocalOrderQueue = (orderQueue: LocalOrderQueue) => {
localStorage.setItem('orderQueue', JSON.stringify(orderQueue))
const saveLocalOrderQueue = (orderQueue: LocalOrderQueue, log?: LogFn) => {
try {
localStorage.setItem('orderQueue', JSON.stringify(orderQueue))
} catch (error) {
log?.({
type: 'Error',
level: 'Critical',
event: error,
workflowType: 'OrderItems',
workflowInstance: 'save-local-order-queue',
})
}
}
export const pushLocalOrderQueue: PushLocalOrderQueueFn = (task) => {
export const pushLocalOrderQueue: PushLocalOrderQueueFn = (task, log) => {
const orderQueue = getLocalOrderQueue()

@@ -82,3 +109,3 @@

saveLocalOrderQueue(orderQueue)
saveLocalOrderQueue(orderQueue, log)

@@ -88,4 +115,7 @@ return index

export const popLocalOrderQueue: PopLocalOrderQueueFn = (index = 0) => {
const orderQueue = getLocalOrderQueue()
export const popLocalOrderQueue: PopLocalOrderQueueFn = (
index = 0,
log = undefined
) => {
const orderQueue = getLocalOrderQueue(log)

@@ -100,3 +130,3 @@ const task = orderQueue.queue[index]

saveLocalOrderQueue(orderQueue)
saveLocalOrderQueue(orderQueue, log)

@@ -106,7 +136,7 @@ return task

export const updateLocalQueueItemIds: UpdateLocalQueueItemIdsFn = ({
fakeUniqueId,
uniqueId,
}) => {
const orderQueue = getLocalOrderQueue()
export const updateLocalQueueItemIds: UpdateLocalQueueItemIdsFn = (
{ fakeUniqueId, uniqueId },
log
) => {
const orderQueue = getLocalOrderQueue(log)

@@ -132,3 +162,3 @@ orderQueue.queue = orderQueue.queue.map((task) => {

saveLocalOrderQueue(orderQueue)
saveLocalOrderQueue(orderQueue, log)
}
interface LogParams {
type: 'Error'
level: 'Critical'
event: any
event: unknown
workflowType: 'OrderItems'
workflowInstance: 'enqueue-task-error'
workflowInstance: string
}
type LogFn = (params: LogParams) => void
export type LogFn = (params: LogParams) => void
export type UseLogger = () => { log: LogFn }
import type { OrderFormContext } from '@vtex/order-manager';
import type { AddItemsMutationVariables } from './localOrderQueue';
import type { FakeUniqueIdMap, Item, MarketingData, OrderForm, OrderFormItemInput } from '../typings';
import type { UseLogger } from './logger';
interface AddItemData<O extends OrderForm> {

@@ -12,4 +13,5 @@ data?: O;

useOrderForm: () => OrderFormContext<O>;
useLogger?: UseLogger;
}
export declare function createUseAddItems<O extends OrderForm>({ useMutateAddItems, useOrderForm, }: CreateAddItemsParams<O>): (fakeUniqueIdMapRef: React.MutableRefObject<FakeUniqueIdMap>) => ({ mutationInputItems, mutationInputMarketingData, orderFormItems, salesChannel, allowedOutdatedData, }: {
export declare function createUseAddItems<O extends OrderForm>({ useMutateAddItems, useOrderForm, useLogger, }: CreateAddItemsParams<O>): (fakeUniqueIdMapRef: React.MutableRefObject<FakeUniqueIdMap>) => ({ mutationInputItems, mutationInputMarketingData, orderFormItems, salesChannel, allowedOutdatedData, }: {
mutationInputItems: OrderFormItemInput[];

@@ -16,0 +18,0 @@ mutationInputMarketingData?: Partial<MarketingData> | undefined;

import type { Item, OrderFormItemInput, MarketingData } from '../typings';
import type { LogFn } from './logger';
export declare type LocalOrderTaskType = 'add_mutation' | 'update_mutation';

@@ -34,9 +35,9 @@ export declare type UpdateQuantityInput = {

}
declare type GetLocalOrderQueue = () => LocalOrderQueue;
declare type PushLocalOrderQueueFn = (task: LocalOrderTask) => number;
declare type PopLocalOrderQueueFn = (index?: number) => LocalOrderTask | undefined;
declare type GetLocalOrderQueue = (log?: LogFn) => LocalOrderQueue;
declare type PushLocalOrderQueueFn = (task: LocalOrderTask, log?: LogFn) => number;
declare type PopLocalOrderQueueFn = (index?: number, log?: LogFn) => LocalOrderTask | undefined;
declare type UpdateLocalQueueItemIdsFn = (args: {
fakeUniqueId: string;
uniqueId: string;
}) => void;
}, log?: LogFn) => void;
export declare const getLocalOrderQueue: GetLocalOrderQueue;

@@ -43,0 +44,0 @@ export declare const pushLocalOrderQueue: PushLocalOrderQueueFn;

interface LogParams {
type: 'Error';
level: 'Critical';
event: any;
event: unknown;
workflowType: 'OrderItems';
workflowInstance: 'enqueue-task-error';
workflowInstance: string;
}
declare type LogFn = (params: LogParams) => void;
export declare type LogFn = (params: LogParams) => void;
export declare type UseLogger = () => {

@@ -10,0 +10,0 @@ log: LogFn;

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

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

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