JSPM

is-minified-performant

1.0.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 428
  • Score
    100M100P100Q98444F
  • License MIT

Checks if JS code is minified or uglified performantly.

Package Exports

  • is-minified-performant

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (is-minified-performant) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

is-minified-performant 🚀

Checks if JS code is minified or uglified performantly.

Usage

import { isMinified } from 'is-minified-performant';
const source2 = `!function(e){function t(r){if(n[r])return n[r].exports;for(var i=[],o=0;o<256;++o)i[o]=(o+256).toString(16).substr(1);e.exports=r}};`;

isMinified(source) // true
const source1 = `
function main(foo = '') {
}
const bar = 1;
`;

isMinified(source) // false

How It Works

Use "Duck Typing" to detect whether source code is minified.

Duck typing in computer programming is an application of the duck test—"If it walks like a duck and it quacks like a duck, then it must be a duck"—In duck typing, an object's suitability is determined by the presence of certain methods and properties, rather than the type of the object itself.

From wiki/Duck_typing

  • no space before return
  • no space before and after if or else
  • no space before and after =
  • no space before and after var

Why the Package

I tried is-uglified which uses acorn parse, is-minified using RegExp, and is-minified-code using RegExp and sort, and finally found "Duck Typing" is the most performant 🚀 and efficient detect method and the correctness not lower than the above ones.

Benchmark Results

1 Check react.development.js not be minified. npm run benchmark-not-minified:

is-minified-performant#isMinified x 35,459 ops/sec ±0.97% (87 runs sampled)
is-uglified#isCodeUglified x 163 ops/sec ±3.73% (77 runs sampled)
is-minified#isMinifiedUsingRegexp x 25,229 ops/sec ±3.10% (84 runs sampled)
is-minified-code#isMinifiedUsingRegexpAndMedian x 881 ops/sec ±2.40% (81 runs sampled)

Check react.development.js not minified: the fastest is is-minified-performant#isMinified

This package's checking un-minified source code speed 1.4 times the second.

2 Check react.production.min.js is be minified. npm run benchmark-minified:

is-minified-performant#isMinified x 4,270,443 ops/sec ±1.58% (89 runs sampled)
is-uglified#isCodeUglified x 412 ops/sec ±5.71% (76 runs sampled)
is-minified#isMinifiedUsingRegexp x 240,459 ops/sec ±1.90% (88 runs sampled)
is-minified-code#isMinifiedUsingRegexpAndMedian x 81,651 ops/sec ±2.14% (87 runs sampled)

Check react.production.min.js minified: the fastest is is-minified-performant#isMinified

This package's checking minified source code speed 17 times the second.