Skip to content

Commit

Permalink
πŸ”€ Merge branch 'track-fixes'
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcelWaldvogel committed Oct 31, 2021
2 parents fa9dd0e + a17cbf8 commit bd2ef80
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ This is to make testing for presence easier without having to pre-fill all possi

- Searching for `vcard` on [NPM](https://npmjs.org) results in mostly vCard generators or converters to/from other formats. Notable exceptions:
- [vcard4](https://github.com/kelseykm/vcard4) is a vCard 4.0 generator which also includes parsing capabilities.
Trying to create type annotations for `vcard4` turned out to be hard. The resulting types for the parser would be so lax as not to help when writing a program processing it further, requiring runtime type verification in the application. Also, their design decision to transform arrays with a single member into requires every access to verify the field's structure. Furthermore, it has some (easily fixable) issues with its RFC 6350 compliance (lack of support for multiple vCards in a single file, not supporting lines folded with tabs, lack of property group support, or incomplete unescaping rules) and the IETF's general [Robustness principle](https://en.wikipedia.org/wiki/Robustness_principle) (i.e., not accepting bare newlines).
Trying to create type annotations for `vcard4` turned out to be hard. The resulting types for the parser would be so lax as not to help when writing a program processing it further, requiring runtime type verification in the application. Also, their design decision to transform arrays with a single member into requires every access to verify the field's structure. Furthermore, it has some (easily fixable) issues with its RFC 6350 compliance (lack of support for multiple vCards in a single file, lack of property group support, or incomplete unescaping rules) and the IETF's general [Robustness principle](https://en.wikipedia.org/wiki/Robustness_principle) (i.e., not accepting bare newlines).
- [vdata-parser](https://github.com/floriangosse/vdata-parser) is a generic vCard/vCalendar parser, handling multiple cards in a single file.
Similar to `vcard4` above, it does not seem amenable to reasonably tight types and mixes elements and arrays. Furthermore, it is unaware of the expected parameter/property structure and does not handle escaped data.

Expand Down

0 comments on commit bd2ef80

Please sign in to comment.