Urgent.News

What's breaking now, across thousands of outlets.

Tech

Reject Unsafe Integer Quantities Before Summing an Order Import

An order importer can reject negative quantities and still lose the exact count. JavaScript's ordinary numbers have a safe integer range. A numeric value can be an integer without being a safe integer, and converting a large decimal string to a number may lose precision before warehouse validation runs. For an interface that accepts positive whole product units, define that contract at the…

When importing order data, it is essential to validate and safeguard against unsafe integer quantities during the summation process. JavaScript's ordinary numbers have a limited safe integer range, and converting large decimal strings to numbers can result in precision loss before warehouse validation occurs. To ensure proper handling of product units, it is advisable to define a clear contract at the interface level.

A standalone JavaScript example demonstrates how to accept safe positive numbers or canonical decimal strings while rejecting whitespace, signs, fractional units, and leading zeros. This specific set of string rules is a deliberate interface choice and not a universal warehouse standard.

The provided code includes a `quantity` function that validates individual values, ensuring they are positive whole numbers. It also contains a `totalUnits` function that iterates through an array of values, calculating the total sum while checking for safe integer boundaries at each step. If the total exceeds the safe integer range, a `RangeError` is thrown.

The example showcases various test cases, including valid inputs (e.g., `12`, `9007199254740991`) and invalid inputs (e.g., `0`, `-1`, `1.5`, `NaN`, `Infinity`, `true`, `null`, `01`, `2`, `+2`, `2.0`, `1e3`, `9007199254740993`). The assertions verify the expected behavior for both valid and invalid values.

Additionally, the code demonstrates how a JSON number that has already lost precision can be parsed and rejected as an invalid quantity. It highlights the importance of preserving exact values and avoiding silent conversions beyond the safe integer range.

A crucial point to note is that this function only validates the individual quantities and the total sum. It does not guarantee the availability of the requested quantity, authorize allocations, or differentiate between cartons and individual units. Those are separate checks that should be performed according to the specific requirements of the integration.

It is important to understand that this example is not intended to be deployed as company software. Instead, it serves as a demonstration of a boundary check and should not be considered production-ready code. The real-world implementation would require integration with the YX Fulfillment system, which includes store and order-data handovers. Any such integration should agree on quantity types and rejection behavior beforehand to ensure smooth operations.

This example provides a general guideline for handling safe integer quantities in order imports. It emphasizes the need for proper validation and boundary checks to prevent overflow issues and ensure data integrity. By following these practices, developers can create more robust systems that handle large numeric values while maintaining the integrity of the order processing workflow.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Jira vs Notion vs Trello for Project Management 2026: Pick by Workflow, Not by Feature Count

Jira vs Notion vs Trello for Project Management 2026: Pick by Workflow, Not by Feature Count The quick answer: choose Jira if your team runs structured agile software development and wants the deepest…

  • Jira excels for structured agile software development with deep Scrum and Kanban tooling
  • Notion offers an all-in-one workspace with customizable databases and AI features
  • Trello's simple Kanban interface makes it ideal for small teams and personal projects

Hash Generator: When sha256sum -c Says FAILED but the Tarball Is Fine

A vendor sent us a signed build of their SDK last month. Version 2.4.1, one tarball, one checksums.txt . Straightforward.

  • sha256sum -c reports FAILED checksum despite fine tarball
  • Windows-generated checksums.txt uses ^M instead of LF line endings
  • Binary hashing and encoding normalization confirm tarball integrity

More from Saturday 7 November →