49 lines
1.2 KiB
Markdown

# [TrimKit](https://gitlab.com/explorigin/trimkit)
TrimKit is a set of DOM and API abstractions for the purpose of better Javascript minification. For
example:
if (a === undefined) { alert('Oops'); }
minifies down to:
if(a===void 0){alert('Oops')}
If we compare against undefined more than 3 times, we can save bytes by doing this:
function isUndefined(a) { return a === void 0; }
if (isUndefined(a)) { alert('Oops'); }
which minifies down to:
function b(a){return a===void 0}
if (b(a)){alert('Oops');}
With enough uses of common APIs, you can win back some bytes.
NOTE: TrimKit will help you obsess about Javascript file sizes but that does not always translate to
smaller files after you apply compression. Because files using have more entropy, small,
pre-compression gains can result in after compression losses. YMMV.
# Abstractions
* `undefined`
* `requestAnimationFrame`
* `Array.isArray`
* `Array.from`
* `Object.keys`
* `document`
* `typeof obj === 'function'`
* `typeof obj === 'string'`
* `typeof obj === 'number'`
* `null`
* `obj === undefined`
* `obj === null`
* `fn.apply(context, params)`
## Credit
Created by [Timothy Farrell](https://github.com/explorigin)