Security News
RubyGems.org Adds New Maintainer Role
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
@pinelab/vendure-order-client
Advanced tools
A tiny, framework agnostic client for managing active orders and checkout with Vendure.
A typed, extensible, framework-agnostic client for managing active orders and checkout with Vendure. This package aims to do most of the logic related to active order and checkout management, so that you can focus on presentation with your favorite framework.
item-added
, customer-added
. See Events for moreIt uses the framework agnostic, and very tiny packages
This package should only be used client side, i.e. for fetching an active order, adding to cart, adding shipping details etc. Handling catalog data, like fetching products and collections, should be handled by your SSR/SSG middleware, like Nuxt, Next.js, Astro or <insert your favorite framework here>
import { VendureOrderClient } from 'vendure-order-client';
const client = new VendureOrderClient(
'http://localhost:3050/shop-api',
'your-channel-token'
);
await client.addItemToOrder('some-id', 1);
// Make this reactive with one of Nanostores' integrations
const total = client.activeOrder.totalWithTax;
You can easily include your own GraphQL fields in the active order mutations and queries. Let's say you have a custom field referralCode
on an order:
import { VendureOrderClient } from 'vendure-order-client';
// Make sure the fragment name is 'AdditionalOrderFields'
const referralCodeFragment = gql`
{
fragment
AdditionalOrderFields
on
Order {
referralCode
}
}
`;
interface OrderWithReferralCode {
referralCode: string;
}
const client = new VendureOrderClient<OrderWithReferralCode>(
'http://localhost:3050/shop-api',
'your-channel-token',
referralCodeFragment
);
await client.addItemToOrder('some-id', 1);
// Typescript will now know you also have `referralCode` available
const referralCode = client.activeOrder.referralCode;
You can easily add your own queries and mutations by extending this client:
import { Id, VendureOrderClient } from 'vendure-order-client';
import { gql } from 'graphql-request';
class MyOrderClient extends VendureOrderClient {
/**
* Some custom query
*/
async myOwnQuery(): Promise<any> {
return await this.rawRequest<any>(gql`
query {
someCustomQuery {
id
name
}
}
`);
}
}
This client uses a global eventbus, so that you can, for example, show a notification when an item is added to cart.
import { VendureOrderClient, VendureOrderEvents } from 'vendure-order-client';
function showNotification(type: string, e: VendureOrderEvents['item-added']) {
console.log(type); // 'item-added'
this.snackbar.showNotification(`${e.quantity} item added to cart`);
}
// Events are all typed. Import `VendureOrderEvents` to see all available events
client.eventBus.on('item-added', showNotification);
await client.addItemToOrder('some-id', 1); // Shows notification '1 item added to cart'
// Don't forget to unsubscribe on component destroy
client.eventBus.off('item-added', showNotification);
// Checkout VendureOrderEvents for all available events
import { VendureOrderEvents } from 'vendure-order-client';
FAQs
A tiny, framework agnostic client for managing active orders and checkout with Vendure.
We found that @pinelab/vendure-order-client demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.
Security News
Research
Socket's threat research team has detected five malicious npm packages targeting Roblox developers, deploying malware to steal credentials and personal data.