[HN Gopher] Show HN: Ultra-lightweight chunker library with emoj...
       ___________________________________________________________________
        
       Show HN: Ultra-lightweight chunker library with emoji support
        
       I kept rewriting the same array.slice(i, i + n) logic in every
       project. Eventually, I decided to stop and just make a utility.
       Chonkify is a small (~870B), zero-dependency JS/TS library for
       chunking any kind of data:  - Works with Array, String, Buffer,
       Set, Map, Array-like, TypedArray  - Handles AsyncIterable (great
       for batching streams)  - Unicode-safe (correctly handles grapheme
       clusters, emoji, etc.)  - ESM-first, TypeScript-ready  I mostly
       made it for myself, but figured others might find it useful too.
       Would love feedback!
        
       Author : Beardier
       Score  : 17 points
       Date   : 2025-06-03 16:50 UTC (6 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | gavmor wrote:
       | No src/, only a minified index.js dist?
        
         | Beardier wrote:
         | I did it primarily for my needs. But the idea is good, I'll add
         | it today!
        
       | happytoexplain wrote:
       | Cool! One thought:
       | 
       | >Correctly handles Unicode emoji and complex symbols
       | 
       | I'm no JS/TS expert, but this sounds like it could be a case of
       | making something behave like an inexperienced dev would expect at
       | the cost of making it behave unexpectedly to an experienced dev.
       | 
       | JS strings are sequences of UTF16 code points, and that's part of
       | their public API (e.g. 'split'), right? That's JS's choice (or
       | mistake, depending on your feelings). So I would expect 'chonk'
       | to treat strings as what they are. And then add a flag or
       | separate method ('chonkGraphemes') instead.
       | 
       | But maybe this kind of "helpfulness" is normal in 3rd party JS
       | APIs?
        
         | Beardier wrote:
         | Hi! Great idea -- overall, all the edge cases are handled
         | really well. That said, I think it would be good to add a
         | config for the available processing options (similar to how
         | it's done in markdown-it, for example) to better support
         | expected behavior. I'll give it some thought and work on
         | implementing it!
        
       ___________________________________________________________________
       (page generated 2025-06-03 23:02 UTC)