Before

…lines 1–1008 unchanged (1008 lines)
1009 }
1010 target?.addEventListener?.(type, listener, options);
1011 return () => {
1012 target?.removeEventListener?.(type, listener, options);
1013 };
1014}
1015
1016export const normalizeEOL = (str: string) => {
1017 return str.replace(/\r?\n|\r/g, "\n");
1018};
1019

After

…lines 1–1009 unchanged (1009 lines)
1010 target?.addEventListener?.(type, listener, options);
1011 return () => {
1012 target?.removeEventListener?.(type, listener, options);
1013 };
1014}
1015
1016const average = (a: number, b: number) => (a + b) / 2;
1017export function getSvgPathFromStroke(points: number[][], closed = true) {
1018 const len = points.length;
1019
1020 if (len < 4) {
1021 return ``;
1022 }
1023
1024 let a = points[0];
1025 let b = points[1];
1026 const c = points[2];
1027
1028 let result = `M${a[0].toFixed(2)},${a[1].toFixed(2)} Q${b[0].toFixed(
1029 2,
1030 )},${b[1].toFixed(2)} ${average(b[0], c[0]).toFixed(2)},${average(
1031 b[1],
1032 c[1],
1033 ).toFixed(2)} T`;
1034
1035 for (let i = 2, max = len - 1; i < max; i++) {
1036 a = points[i];
1037 b = points[i + 1];
1038 result += `${average(a[0], b[0]).toFixed(2)},${average(a[1], b[1]).toFixed(
1039 2,
1040 )} `;
1041 }
1042
1043 if (closed) {
1044 result += "Z";
1045 }
1046
1047 return result;
1048}
1049
1050export const normalizeEOL = (str: string) => {
1051 return str.replace(/\r?\n|\r/g, "\n");
1052};
1053

Before

program
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "COLOR_PALETTE"
} "}"
from "from"
string
" "\""
string_fragment "./colors"
" "\""
; ";"
import_statement (+27 nodes collapsed)
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "FontFamilyValues"
, ","
import_specifier
identifier "FontString"
} "}"
from "from"
string
" "\""
string_fragment "./element/types"
" "\""
; ";"
import_statement (+27 nodes collapsed)
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "ResolutionType"
} "}"
from "from"
string
" "\""
string_fragment "./utility-types"
" "\""
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "mockDateTime"
type_annotation
: ":"
union_type
predefined_type
string "string"
| "|"
literal_type
null "null"
= "="
null "null"
; ";"
export_statement (+28 nodes collapsed)
export_statement (+219 nodes collapsed)
export_statement (+46 nodes collapsed)
export_statement (+53 nodes collapsed)
export_statement (+93 nodes collapsed)
export_statement (+67 nodes collapsed)
export_statement (+126 nodes collapsed)
export_statement (+88 nodes collapsed)
comment "/** returns fontSize+fontFamily string for assignment to DOM"...
export_statement (+68 nodes collapsed)
export_statement (+239 nodes collapsed)
comment "// throttle callback to execute once per animation frame"
export_statement (+433 nodes collapsed)
comment "/**\n * Exponential ease-out method\n *\n * @param {number} k -"...
export_statement (+42 nodes collapsed)
lexical_declaration (+55 nodes collapsed)
comment "/**\n * Animates values from `fromValues` to `toValues` using"...
export_statement (+684 nodes collapsed)
comment "// https://github.com/lodash/lodash/blob/es/chunk.js"
export_statement (+165 nodes collapsed)
export_statement (+90 nodes collapsed)
export_statement (+49 nodes collapsed)
export_statement (+38 nodes collapsed)
export_statement (+247 nodes collapsed)
export_statement (+27 nodes collapsed)
export_statement (+24 nodes collapsed)
export_statement (+21 nodes collapsed)
export_statement (+151 nodes collapsed)
export_statement (+149 nodes collapsed)
export_statement (+149 nodes collapsed)
export_statement (+43 nodes collapsed)
lexical_declaration (+39 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "RS_RTL_CHARS"
= "="
string
" "\""
escape_sequence "\\u0591"
string_fragment "-"
escape_sequence "\\u07FF"
escape_sequence "\\uFB1D"
string_fragment "-"
escape_sequence "\\uFDFD"
escape_sequence "\\uFE70"
string_fragment "-"
escape_sequence "\\uFEFC"
" "\""
; ";"
lexical_declaration (+26 nodes collapsed)
comment "/**\n * Checks whether first directional character is RTL. Me"...
export_statement (+28 nodes collapsed)
export_statement (+70 nodes collapsed)
comment "/** use as a rejectionHandler to mute filesystem Abort error"...
export_statement (+59 nodes collapsed)
export_statement (+188 nodes collapsed)
export_statement (+196 nodes collapsed)
export_statement (+105 nodes collapsed)
export_statement (+83 nodes collapsed)
export_statement (+122 nodes collapsed)
comment "//https://stackoverflow.com/a/9462382/8418"
export_statement (+220 nodes collapsed)
export_statement (+45 nodes collapsed)
comment "// Adapted from https://github.com/Modernizr/Modernizr/blob/"...
export_statement (+158 nodes collapsed)
export_statement (+156 nodes collapsed)
export_statement (+79 nodes collapsed)
export_statement (+43 nodes collapsed)
export_statement (+83 nodes collapsed)
export_statement (+33 nodes collapsed)
comment "/**\n * Transforms array of objects containing `id` attribute"...
export_statement (+122 nodes collapsed)
export_statement (+120 nodes collapsed)
export_statement (+29 nodes collapsed)
export_statement (+63 nodes collapsed)
export_statement (+188 nodes collapsed)
export_statement (+59 nodes collapsed)
export_statement (+60 nodes collapsed)
export_statement (+24 nodes collapsed)
export_statement (+90 nodes collapsed)
export_statement (+106 nodes collapsed)
comment "/** use as a fallback after identity check (for perf reasons"...
lexical_declaration (+89 nodes collapsed)
comment "/**\n * Returns whether object/array is shallow equal.\n * Con"...
export_statement (+551 nodes collapsed)
comment "// taken from Radix UI"
comment "// https://github.com/radix-ui/primitives/blob/main/packages"...
export_statement (+135 nodes collapsed)
comment "/**\n * supply `null` as message if non-never value is valid,"...
export_statement (+95 nodes collapsed)
comment "/**\n * Memoizes on values of `opts` object (strict equality)"...
export_statement (+284 nodes collapsed)
comment "/** Checks if value is inside given collection. Useful for t"...
export_statement (+140 nodes collapsed)
export_statement (+43 nodes collapsed)
export_statement (+52 nodes collapsed)
export_statement (+76 nodes collapsed)
comment "// Window"
export_statement (+77 nodes collapsed)
export_statement (+64 nodes collapsed)
comment "// Document"
export_statement (+72 nodes collapsed)
export_statement (+59 nodes collapsed)
comment "// FontFaceSet (document.fonts)"
export_statement (+72 nodes collapsed)
comment "// HTMLElement / mix"
export_statement (+100 nodes collapsed)
comment "// implem"
export_statement (+164 nodes collapsed)
export_statement (+43 nodes collapsed)

After

program
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "COLOR_PALETTE"
} "}"
from "from"
string
" "\""
string_fragment "./colors"
" "\""
; ";"
import_statement (+27 nodes collapsed)
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "FontFamilyValues"
, ","
import_specifier
identifier "FontString"
} "}"
from "from"
string
" "\""
string_fragment "./element/types"
" "\""
; ";"
import_statement (+27 nodes collapsed)
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "ResolutionType"
} "}"
from "from"
string
" "\""
string_fragment "./utility-types"
" "\""
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "mockDateTime"
type_annotation
: ":"
union_type
predefined_type
string "string"
| "|"
literal_type
null "null"
= "="
null "null"
; ";"
export_statement (+28 nodes collapsed)
export_statement (+219 nodes collapsed)
export_statement (+46 nodes collapsed)
export_statement (+53 nodes collapsed)
export_statement (+93 nodes collapsed)
export_statement (+67 nodes collapsed)
export_statement (+126 nodes collapsed)
export_statement (+88 nodes collapsed)
comment "/** returns fontSize+fontFamily string for assignment to DOM"...
export_statement (+68 nodes collapsed)
export_statement (+239 nodes collapsed)
comment "// throttle callback to execute once per animation frame"
export_statement (+433 nodes collapsed)
comment "/**\n * Exponential ease-out method\n *\n * @param {number} k -"...
export_statement (+42 nodes collapsed)
lexical_declaration (+55 nodes collapsed)
comment "/**\n * Animates values from `fromValues` to `toValues` using"...
export_statement (+684 nodes collapsed)
comment "// https://github.com/lodash/lodash/blob/es/chunk.js"
export_statement (+165 nodes collapsed)
export_statement (+90 nodes collapsed)
export_statement (+49 nodes collapsed)
export_statement (+38 nodes collapsed)
export_statement (+247 nodes collapsed)
export_statement (+27 nodes collapsed)
export_statement (+24 nodes collapsed)
export_statement (+21 nodes collapsed)
export_statement (+151 nodes collapsed)
export_statement (+149 nodes collapsed)
export_statement (+149 nodes collapsed)
export_statement (+43 nodes collapsed)
lexical_declaration (+39 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "RS_RTL_CHARS"
= "="
string
" "\""
escape_sequence "\\u0591"
string_fragment "-"
escape_sequence "\\u07FF"
escape_sequence "\\uFB1D"
string_fragment "-"
escape_sequence "\\uFDFD"
escape_sequence "\\uFE70"
string_fragment "-"
escape_sequence "\\uFEFC"
" "\""
; ";"
lexical_declaration (+26 nodes collapsed)
comment "/**\n * Checks whether first directional character is RTL. Me"...
export_statement (+28 nodes collapsed)
export_statement (+70 nodes collapsed)
comment "/** use as a rejectionHandler to mute filesystem Abort error"...
export_statement (+59 nodes collapsed)
export_statement (+188 nodes collapsed)
export_statement (+196 nodes collapsed)
export_statement (+105 nodes collapsed)
export_statement (+83 nodes collapsed)
export_statement (+122 nodes collapsed)
comment "//https://stackoverflow.com/a/9462382/8418"
export_statement (+220 nodes collapsed)
export_statement (+45 nodes collapsed)
comment "// Adapted from https://github.com/Modernizr/Modernizr/blob/"...
export_statement (+158 nodes collapsed)
export_statement (+156 nodes collapsed)
export_statement (+79 nodes collapsed)
export_statement (+43 nodes collapsed)
export_statement (+83 nodes collapsed)
export_statement (+33 nodes collapsed)
comment "/**\n * Transforms array of objects containing `id` attribute"...
export_statement (+122 nodes collapsed)
export_statement (+120 nodes collapsed)
export_statement (+29 nodes collapsed)
export_statement (+63 nodes collapsed)
export_statement (+188 nodes collapsed)
export_statement (+59 nodes collapsed)
export_statement (+60 nodes collapsed)
export_statement (+24 nodes collapsed)
export_statement (+90 nodes collapsed)
export_statement (+106 nodes collapsed)
comment "/** use as a fallback after identity check (for perf reasons"...
lexical_declaration (+89 nodes collapsed)
comment "/**\n * Returns whether object/array is shallow equal.\n * Con"...
export_statement (+551 nodes collapsed)
comment "// taken from Radix UI"
comment "// https://github.com/radix-ui/primitives/blob/main/packages"...
export_statement (+135 nodes collapsed)
comment "/**\n * supply `null` as message if non-never value is valid,"...
export_statement (+95 nodes collapsed)
comment "/**\n * Memoizes on values of `opts` object (strict equality)"...
export_statement (+284 nodes collapsed)
comment "/** Checks if value is inside given collection. Useful for t"...
export_statement (+140 nodes collapsed)
export_statement (+43 nodes collapsed)
export_statement (+52 nodes collapsed)
export_statement (+76 nodes collapsed)
comment "// Window"
export_statement (+77 nodes collapsed)
export_statement (+64 nodes collapsed)
comment "// Document"
export_statement (+72 nodes collapsed)
export_statement (+59 nodes collapsed)
comment "// FontFaceSet (document.fonts)"
export_statement (+72 nodes collapsed)
comment "// HTMLElement / mix"
export_statement (+100 nodes collapsed)
comment "// implem"
export_statement (+164 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "average"
= "="
arrow_function
formal_parameters
( "("
required_parameter
identifier "a"
type_annotation
: ":"
predefined_type
number "number"
, ","
required_parameter
identifier "b"
type_annotation
: ":"
predefined_type
number "number"
) ")"
=> "=>"
binary_expression
parenthesized_expression
( "("
binary_expression
identifier "a"
+ "+"
identifier "b"
) ")"
/ "/"
number "2"
; ";"
export_statement
export "export"
function_declaration
function "function"
identifier "getSvgPathFromStroke"
formal_parameters
( "("
required_parameter
identifier "points"
type_annotation
: ":"
array_type
array_type
predefined_type
number "number"
[ "["
] "]"
[ "["
] "]"
, ","
required_parameter
identifier "closed"
= "="
true "true"
) ")"
statement_block
{ "{"
lexical_declaration
const "const"
variable_declarator
identifier "len"
= "="
member_expression
identifier "points"
. "."
property_identifier "length"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "len"
< "<"
number "4"
) ")"
statement_block
{ "{"
return_statement
return "return"
template_string
` "`"
` "`"
; ";"
} "}"
lexical_declaration
let "let"
variable_declarator
identifier "a"
= "="
subscript_expression
identifier "points"
[ "["
number "0"
] "]"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "b"
= "="
subscript_expression
identifier "points"
[ "["
number "1"
] "]"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "c"
= "="
subscript_expression
identifier "points"
[ "["
number "2"
] "]"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "result"
= "="
template_string
` "`"
string_fragment "M"
template_substitution
${ "${"
call_expression
member_expression
subscript_expression
identifier "a"
[ "["
number "0"
] "]"
. "."
property_identifier "toFixed"
arguments
( "("
number "2"
) ")"
} "}"
string_fragment ","
template_substitution
${ "${"
call_expression
member_expression
subscript_expression
identifier "a"
[ "["
number "1"
] "]"
. "."
property_identifier "toFixed"
arguments
( "("
number "2"
) ")"
} "}"
string_fragment " Q"
template_substitution
${ "${"
call_expression
member_expression
subscript_expression
identifier "b"
[ "["
number "0"
] "]"
. "."
property_identifier "toFixed"
arguments
( "("
number "2"
, ","
) ")"
} "}"
string_fragment ","
template_substitution
${ "${"
call_expression
member_expression
subscript_expression
identifier "b"
[ "["
number "1"
] "]"
. "."
property_identifier "toFixed"
arguments
( "("
number "2"
) ")"
} "}"
string_fragment " "
template_substitution
${ "${"
call_expression
member_expression
call_expression
identifier "average"
arguments
( "("
subscript_expression
identifier "b"
[ "["
number "0"
] "]"
, ","
subscript_expression
identifier "c"
[ "["
number "0"
] "]"
) ")"
. "."
property_identifier "toFixed"
arguments
( "("
number "2"
) ")"
} "}"
string_fragment ","
template_substitution
${ "${"
call_expression
member_expression
call_expression
identifier "average"
arguments
( "("
subscript_expression
identifier "b"
[ "["
number "1"
] "]"
, ","
subscript_expression
identifier "c"
[ "["
number "1"
] "]"
, ","
) ")"
. "."
property_identifier "toFixed"
arguments
( "("
number "2"
) ")"
} "}"
string_fragment " T"
` "`"
; ";"
for_statement
for "for"
( "("
lexical_declaration
let "let"
variable_declarator
identifier "i"
= "="
number "2"
, ","
variable_declarator
identifier "max"
= "="
binary_expression
identifier "len"
- "-"
number "1"
; ";"
binary_expression
identifier "i"
< "<"
identifier "max"
; ";"
update_expression
identifier "i"
++ "++"
) ")"
statement_block
{ "{"
expression_statement
assignment_expression
identifier "a"
= "="
subscript_expression
identifier "points"
[ "["
identifier "i"
] "]"
; ";"
expression_statement
assignment_expression
identifier "b"
= "="
subscript_expression
identifier "points"
[ "["
binary_expression
identifier "i"
+ "+"
number "1"
] "]"
; ";"
expression_statement
augmented_assignment_expression
identifier "result"
+= "+="
template_string
` "`"
template_substitution
${ "${"
call_expression
member_expression
call_expression
identifier "average"
arguments
( "("
subscript_expression
identifier "a"
[ "["
number "0"
] "]"
, ","
subscript_expression
identifier "b"
[ "["
number "0"
] "]"
) ")"
. "."
property_identifier "toFixed"
arguments
( "("
number "2"
) ")"
} "}"
string_fragment ","
template_substitution
${ "${"
call_expression
member_expression
call_expression
identifier "average"
arguments
( "("
subscript_expression
identifier "a"
[ "["
number "1"
] "]"
, ","
subscript_expression
identifier "b"
[ "["
number "1"
] "]"
) ")"
. "."
property_identifier "toFixed"
arguments
( "("
number "2"
, ","
) ")"
} "}"
string_fragment " "
` "`"
; ";"
} "}"
if_statement
if "if"
parenthesized_expression
( "("
identifier "closed"
) ")"
statement_block
{ "{"
expression_statement
augmented_assignment_expression
identifier "result"
+= "+="
string
" "\""
string_fragment "Z"
" "\""
; ";"
} "}"
return_statement
return "return"
identifier "result"
; ";"
} "}"
export_statement (+43 nodes collapsed)