mailparser

158 releases measured. Default branch at ccf75ba1, 2026-10-19, 4 files.

Source lines
1,339
+17.3% in a year
Maintainability index
48.7
-0.8 in a year
Mean CC per function
3.89
Functions with CC > 20
3
of 114
Size

Lines of code, comments and blank lines left out

Maintainability index

Mean over functions, weighted by their lines. Higher is better

Cyclomatic complexity per function

Lower is better

Hard to maintain

Share of functions, and of function code, past the usual limits. Lower is better

Least maintainable functions now

Function Location MI CC Lines
processChunk lib/mail-parser.js:988 21.4 41 135
<anonymous> lib/mail-parser.js:469 27.7 37 91
processNode lib/mail-parser.js:849 32.4 25 70
createNode lib/mail-parser.js:748 32.7 19 73
exceedsHtmlNestingDepth lib/mail-parser.js:154 37.9 16 48
exports lib/simple-parser.js:5 40.9 9 46
textToHtml lib/mail-parser.js:1401 42.1 7 43
constructor lib/mail-parser.js:280 42.5 3 39
decodeAddresses lib/mail-parser.js:702 42.7 13 35
findLinks lib/mail-parser.js:1362 47.5 8 25
rfc2231ParamNames lib/mail-parser.js:89 49.4 7 23
parsePriority lib/mail-parser.js:661 50.1 9 23
reader lib/simple-parser.js:53 50.4 4 23
processHeaders lib/mail-parser.js:467 50.4 2 27
getTextContent lib/mail-parser.js:845 50.6 4 22
Every measured release 158
Release Date Files Source lines Functions MI Mean CC P90 CC Max CC CC > 10 CC > 20
v3.9.47 2026-10-19 4 1,339 114 48.7 3.89 8 41 6 3
v3.9.46 2026-10-18 4 1,339 114 48.7 3.89 8 41 6 3
v3.9.45 2026-10-18 4 1,339 114 48.7 3.89 8 41 6 3
v3.9.44 2026-10-18 4 1,339 114 48.7 3.89 8 41 6 3
v3.9.43 2026-10-18 4 1,339 114 48.7 3.89 8 41 6 3
v3.9.42 2026-10-18 4 1,339 114 48.7 3.89 8 41 6 3
v3.9.41 2026-10-18 4 1,339 114 48.7 3.89 8 41 6 3
v3.9.40 2026-10-16 4 1,339 114 48.7 3.89 8 41 6 3
v3.9.39 2026-10-14 4 1,272 112 48.9 3.76 8 41 6 3
v3.9.38 2026-10-10 4 1,272 112 48.9 3.76 8 41 6 3
v3.9.37 2026-10-08 4 1,272 112 48.9 3.76 8 41 6 3
v3.9.36 2026-10-05 4 1,272 112 48.9 3.76 8 41 6 3
v3.9.35 2026-10-04 4 1,272 112 48.9 3.76 8 41 6 3
v3.9.34 2026-10-03 4 1,272 112 48.9 3.76 8 41 6 3
v3.9.33 2026-10-01 4 1,272 112 48.9 3.76 8 41 6 3
v3.9.32 2026-09-30 4 1,266 112 49.1 3.75 8 40 6 3
v3.9.31 2026-09-28 4 1,266 112 49.1 3.75 8 40 6 3
v3.9.30 2026-09-28 4 1,266 112 49.1 3.75 8 40 6 3
v3.9.29 2026-09-27 4 1,210 109 49.2 3.64 8 38 5 3
v3.9.28 2026-09-15 4 1,210 109 49.2 3.64 8 38 5 3
v3.9.27 2026-09-15 4 1,210 109 49.2 3.64 8 38 5 3
v3.9.26 2026-09-12 4 1,210 109 49.2 3.64 8 38 5 3
v3.9.25 2026-09-11 4 1,210 109 49.2 3.64 8 38 5 3
v3.9.24 2026-09-10 4 1,210 109 49.2 3.64 8 38 5 3
v3.9.23 2026-09-07 4 1,210 109 49.2 3.64 8 38 5 3
v3.9.22 2026-09-06 4 1,210 109 49.2 3.64 8 38 5 3
v3.9.21 2026-09-06 4 1,210 109 49.2 3.64 8 38 5 3
v3.9.20 2026-09-01 4 1,210 109 49.2 3.64 8 38 5 3
v3.9.19 2026-08-31 4 1,210 109 49.2 3.64 8 38 5 3
v3.9.18 2026-08-31 4 1,210 109 49.2 3.64 8 38 5 3
v3.9.17 2026-08-27 4 1,210 109 49.2 3.64 8 38 5 3
v3.9.16 2026-08-24 4 1,210 109 49.2 3.64 8 38 5 3
v3.9.15 2026-08-07 4 1,162 107 49.2 3.51 7 38 5 3
v3.9.14 2026-07-05 4 1,162 107 49.2 3.51 7 38 5 3
v3.9.13 2026-07-05 4 1,162 107 49.2 3.51 7 38 5 3
v3.9.12 2026-06-25 4 1,162 107 49.2 3.51 7 38 5 3
v3.9.11 2026-06-19 4 1,162 107 49.2 3.51 7 38 5 3
v3.9.10 2026-06-15 4 1,162 107 49.2 3.51 7 38 5 3
v3.9.9 2026-05-29 4 1,162 107 49.2 3.51 7 38 5 3
v3.9.8 2026-04-08 4 1,162 107 49.2 3.51 7 38 5 3
v3.9.7 2026-04-08 4 1,162 107 49.2 3.51 7 38 5 3
v3.9.6 2026-03-25 4 1,162 107 49.2 3.51 7 38 5 3
v3.9.5 2026-03-23 4 1,162 107 49.2 3.51 7 38 5 3
v3.9.4 2026-03-09 4 1,162 107 49.2 3.51 7 38 5 3
v3.9.3 2026-01-28 4 1,144 106 49.5 3.48 7 38 5 3
v3.9.2 2026-01-28 4 1,142 106 49.5 3.48 7 38 5 3
v3.9.1 2025-12-11 4 1,142 106 49.5 3.48 7 38 5 3
v3.9.0 2025-11-05 4 1,142 106 49.5 3.48 7 38 5 3
v3.7.5 2025-10-09 4 1,142 106 49.5 3.48 7 38 5 3
v3.7.4 2025-06-29 4 1,136 105 49.5 3.50 7 38 5 3
v3.7.3 2025-05-20 4 1,136 105 49.5 3.50 7 38 5 3
v3.7.2 2024-11-29 4 1,136 105 49.5 3.50 7 38 5 3
v3.7.1 2024-04-25 4 1,136 105 49.5 3.50 7 38 5 3
v3.7.0 2024-04-11 4 1,136 105 49.5 3.50 7 38 5 3
v3.6.9 2024-02-29 4 1,133 105 49.6 3.50 7 37 5 3
v3.6.8 2024-02-29 4 1,133 105 49.6 3.50 7 37 5 3
v3.6.7 2024-02-01 4 1,131 105 49.7 3.49 7 37 5 3
v3.6.6 2024-01-04 4 1,131 105 49.7 3.49 7 37 5 3
v3.6.5 2023-07-01 4 1,131 105 49.7 3.49 7 37 5 3
v3.6.4 2023-03-03 4 1,131 105 49.7 3.48 7 37 5 3
v3.6.3 2022-12-29 4 1,129 105 49.7 3.48 7 37 5 3
v3.6.2 2022-12-15 4 1,123 105 49.7 3.46 7 37 5 3
v3.6.1 2022-12-14 4 1,123 105 49.7 3.46 7 37 5 3
v3.6.0 2022-12-08 4 1,123 105 49.7 3.46 7 37 5 3
v3.5.0 2022-04-28 4 1,123 105 49.7 3.46 7 37 5 3
v3.4.0 2021-10-11 4 1,123 105 49.7 3.46 7 37 5 3
v3.3.3 2021-10-03 4 1,127 105 49.6 3.47 7 37 5 3
v3.3.2 2021-10-01 4 1,122 105 49.8 3.46 7 37 5 3
v3.3.1 2021-09-10 4 1,121 105 49.8 3.46 7 37 5 3
v3.3.0 2021-08-04 4 1,121 105 49.8 3.46 7 37 5 3
v3.2.0 2021-04-02 4 1,120 105 49.8 3.43 7 36 5 3
v3.1.0 2021-02-17 4 1,119 105 49.9 3.42 7 35 5 3
v3.0.1 2020-11-30 4 1,112 105 50.1 3.38 7 35 5 2
v3.0.0 2020-09-07 4 1,112 105 50.1 3.38 7 35 5 2
v2.8.1 2020-08-07 4 1,114 105 50.1 3.37 7 37 4 2
v2.8.0 2020-07-22 4 1,114 105 50.1 3.37 7 37 4 2
v2.7.7 2019-12-06 4 1,111 105 50.2 3.36 7 36 4 2
v2.7.6 2019-11-05 4 1,101 105 50.4 3.32 7 36 4 2
v2.7.5 2019-10-29 4 1,101 105 50.4 3.32 7 36 4 2
v2.7.4 2019-10-28 4 1,095 105 50.6 3.30 7 34 4 2
v2.7.3 2019-10-28 4 1,050 101 50.3 3.35 7 34 4 2
v2.7.2 2019-10-28 4 1,053 101 50.2 3.39 7 34 4 3
v2.7.1 2019-05-07 4 1,027 97 50.1 3.43 7 34 4 3
v2.7.0 2019-05-01 4 1,027 97 50.1 3.43 7 34 4 3
v2.6.0 2019-03-27 4 962 86 49.3 3.64 7 34 4 3
v2.5.0 2019-03-15 4 962 86 49.3 3.64 7 34 4 3
v2.4.3 2018-11-16 4 933 83 49.5 3.67 7 34 4 3
v2.4.2 2018-11-13 4 933 83 49.5 3.66 7 34 4 3
v2.4.1 2018-11-13 4 929 83 49.6 3.64 7 34 4 3
v2.4.0 2018-10-23 4 929 83 49.6 3.64 7 34 4 3
v2.3.4 2018-09-02 4 913 83 50.0 3.55 7 34 4 3
v2.3.3 2018-08-22 4 909 83 50.1 3.55 7 34 4 3
v2.3.2 2018-07-24 4 909 83 50.1 3.54 7 34 4 3
v2.3.1 2018-07-24 4 909 83 50.1 3.54 7 34 4 3
v2.3.0 2018-07-24 4 909 83 50.1 3.54 7 34 4 3
v2.2.0 2018-02-08 5 922 83 50.2 3.55 7 34 4 3
v2.1.0 2017-10-03 5 922 83 50.2 3.55 7 34 4 3
v2.0.5 2017-05-03 5 820 82 51.1 3.49 7 34 4 3
v2.0.4 2017-04-17 5 820 81 50.9 3.52 7 34 4 3
v2.0.3 2017-04-07 5 820 81 50.9 3.51 7 34 4 3
v2.0.2 2017-02-22 5 820 81 50.9 3.51 7 34 4 3
v2.0.1 2017-02-03 5 819 81 51.0 3.49 7 34 4 2
v2.0.0 2017-02-02 5 819 81 51.0 3.49 7 34 4 2
v0.6.2 2017-01-22 3 1,277 60 42.4 7.35 20 41 13 6
v0.6.1 2016-07-04 3 1,272 60 42.5 7.35 20 41 13 6
v0.6.0 2016-06-02 3 1,272 60 42.5 7.35 20 41 13 6
v0.5.3 2015-11-02 3 1,262 60 42.8 7.30 20 41 13 6
v0.5.2 2015-07-20 3 1,262 60 42.8 7.30 20 41 13 6
v0.5.1 2015-04-30 3 1,259 60 42.8 7.23 20 41 13 6
v0.5.0 2015-04-11 3 1,253 60 42.8 7.22 20 41 13 6
v0.4.9 2015-02-25 3 1,253 60 42.8 7.22 20 41 13 6
v0.4.8 2015-01-14 3 1,214 58 42.6 7.28 22 42 13 6
v0.4.7 2015-01-04 3 1,214 58 42.6 7.28 22 42 13 6
v0.4.6 2014-08-21 3 1,209 58 42.8 7.24 22 41 13 6
v0.4.5 2014-08-07 3 1,209 58 42.8 7.22 22 41 13 6
v0.4.4 2014-06-03 3 1,209 58 42.8 7.22 22 41 13 6
v0.4.2 2014-04-12 3 1,137 53 42.6 7.66 21 41 13 6
v0.4.1 2014-01-20 3 1,122 53 42.9 7.55 20 41 13 5
v0.4.0 2013-12-30 3 1,116 53 43.1 7.49 20 39 13 5
v0.3.6 2013-05-17 3 1,097 53 43.3 7.42 19 39 13 5
v0.3.5 2013-05-10 3 1,096 53 43.3 7.40 19 39 13 5
v0.3.4 2013-03-11 3 1,092 53 43.4 7.38 19 39 13 5
v0.3.3 2013-03-08 3 1,083 53 43.6 7.28 19 36 13 5
v0.3.2 2013-03-08 3 1,086 53 43.6 7.28 19 36 13 5
v0.3.1 2013-03-06 3 1,076 53 43.9 7.21 19 33 13 5
v0.3.0 2013-02-28 3 1,076 53 43.9 7.21 19 33 13 5
v0.2.33 2013-02-14 3 1,067 51 43.0 7.14 19 33 11 5
v0.2.32 2013-02-14 3 1,066 51 43.0 7.14 19 33 11 5
v0.2.31 2012-11-07 3 1,063 51 43.1 7.10 19 33 11 5
v0.2.30 2012-09-24 3 1,063 51 43.1 7.10 19 33 11 5
v0.2.29 2012-09-22 3 1,056 51 43.2 7.06 19 33 11 4
v0.2.28 2012-09-04 3 1,055 51 43.2 7.06 19 33 11 4
v0.2.26 2012-05-04 3 1,055 50 43.1 7.20 19 33 11 4
v0.2.25 2012-05-04 3 1,042 49 43.0 7.24 19 33 11 4
v0.2.24 2012-04-14 3 1,033 48 42.9 7.33 19 33 11 4
v0.2.23 2012-04-13 3 1,031 48 43.0 7.31 19 33 11 4
v0.2.22 2012-02-21 3 1,030 47 42.8 7.45 19 33 11 4
v0.2.21 2012-01-24 4 976 42 42.5 7.83 19 33 10 4
v0.2.19 2012-01-16 4 971 42 42.5 7.81 19 33 10 4
v0.2.18 2012-01-13 4 967 42 42.6 7.79 19 32 10 4
v0.2.17 2012-01-13 4 963 42 42.6 7.76 19 32 10 4
v0.2.15 2012-01-12 3 928 41 42.5 7.66 19 32 9 4
v0.2.14 2012-01-11 3 918 41 42.8 7.66 19 32 9 4
v0.2.13 2012-01-09 3 919 41 42.8 7.66 19 32 9 4
v0.2.12 2012-01-09 3 913 41 42.9 7.61 19 32 9 4
v0.2.11 2012-01-09 3 913 41 42.9 7.61 19 32 9 4
v0.2.10 2012-01-09 3 885 41 43.8 7.32 19 26 9 4
v0.2.9 2012-01-09 3 885 41 43.8 7.29 18 26 9 4
v0.2.8 2012-01-08 3 869 40 43.7 7.20 18 26 9 4
v0.2.7 2012-01-08 3 867 40 43.8 7.05 18 26 9 4
v0.2.6 2012-01-06 3 863 40 43.8 6.98 18 26 9 4
v0.2.4 2012-01-05 3 843 38 43.5 7.13 22 26 8 4
v0.2.3 2012-01-04 3 838 38 43.5 7.05 22 26 8 4
v0.2.2 2012-01-04 3 838 38 43.5 7.05 22 26 8 4
v0.2.0 2012-01-04 3 830 38 43.5 6.97 22 26 8 4
v0.1.3 2012-01-04 4 948 71 45.7 4.52 9 58 6 2
v0.1.2 2011-09-19 4 915 67 45.3 4.61 10 59 5 2
v0.1.1 2011-09-14 4 890 66 45.2 4.61 10 59 5 2
How the numbers are made

Library source only: lib/, src/, workers/, bin/ and top-level source files. Tests, examples, tooling, type declarations and generated or minified files are left out.

Source lines are lines carrying code, with blank lines and comments dropped.

Cyclomatic complexity (CC) counts the independent paths through a function: 1 plus every if, loop, case, catch, ternary, && / || / ??, optional chain and default parameter. Above 10 a function is commonly considered hard to test, above 20 hard to understand.

Maintainability index (MI) is computed per function as max(0, (171 - 5.2 ln(Halstead volume) - 0.23 CC - 16.2 ln(lines)) * 100 / 171), the 0 to 100 scale Visual Studio uses, where below 20 is poor. The repository figure weights each function by its lines. Code outside any function (lookup tables, schemas, declarations) counts toward size only. MI is driven mostly by size, so read it as a trend, not a grade.

A move from JavaScript to TypeScript adds type annotations to every function, which raises the Halstead volume and lowers MI without the logic changing. Expect a step at that release.

Measured Mon, 19 Oct 2026 19:28:19 GMT.