
Product
Introducing Webhook Events for Alert Changes
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.
truncate-evenly
Advanced tools
Truncates items (typically strings) in the array using a best-effort approach, to fit the sum length of the result to maxSumLength.
The function doesn't make an attempt to work as fast as possible (so better use it for relatively small arrays only). Instead, it optimizes the quality of the result and the simplicity of the approach.
maxSumLength. See unit tests for details.appendEllipsis is passed, it will be called on the truncated elements to
append the "ellipsis" marker. This marker won't count towards the sum length
of the result though.length and slice properties (strings,
sub-arrays, buffers or your custom objects).maxIterations to limit the number of the inner iteration.
This acts as a circuit breaker in case of some unknown bug in the algorithm.const entriesIn = ["123456789", "12", "1234567890123456789"];
const entriesOut = truncateEvenly(entriesIn, 12, (s) => s + "…");
expect(entriesOut).toMatchInlineSnapshot(`
[
"12345…",
"12",
"12345…",
]
`);
A good illustration on how the algorithm works step by step, getting closer and closer to the desired maximum length, is below:
expect(
truncateTestHelper(12, {
a: "1234567890123456789",
b: "123456789",
c: "12",
})
).toMatchInlineSnapshot(`
"0) a=1234567890123456789 b=123456789 c=12
1) a=123456789 b=123456789 c=12
2) a=12345 b=12345 c=12
3) a=12345… b=12345… c=12 <-- RESULT"
`);
FAQs
Truncate strings in an array to the maximum total length evenly.
The npm package truncate-evenly receives a total of 322 weekly downloads. As such, truncate-evenly popularity was classified as not popular.
We found that truncate-evenly demonstrated a not healthy version release cadence and project activity because the last version was released 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.

Product
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.

Security News
ENISA has become a CVE Program Root, giving the EU a central authority for coordinating vulnerability reporting, disclosure, and cross-border response.

Product
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.