foliojs / fontkit

An advanced font engine for Node and the browser
1.45k stars 213 forks source link

Drop node dependencies #281

Closed devongovett closed 2 years ago

devongovett commented 2 years ago

Requires https://github.com/foliojs/restructure/pull/48

This removes all node-specific dependencies from fontkit. This means usages of Buffer have been replaced with Uint8Array/TextEncoder/TextDecoder. In addition, streams have been removed. This was only used for encoding subsets. Now you call subset.encode() rather than subset.encodeStream() and get back a Uint8Array. The streaming API didn't really offer much benefit anyway. iconv-lite has also been dropped.

There are actually 4 different builds: CommonJS and ESM for Node, as well as both for the browser as well. The difference is that the Node build includes the fs related functions open and openSync, whereas the browser version does not.

Due to breaking changes, this will be released in a major version bump.