https://github.com/legend80s/is-minified-performant
Checks if JS code is minified or uglified performantly.
https://github.com/legend80s/is-minified-performant
Last synced: 3 months ago
JSON representation
Checks if JS code is minified or uglified performantly.
- Host: GitHub
- URL: https://github.com/legend80s/is-minified-performant
- Owner: legend80s
- License: mit
- Created: 2021-11-11T16:53:24.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-06-02T16:58:08.000Z (almost 3 years ago)
- Last Synced: 2025-02-17T11:46:49.681Z (4 months ago)
- Language: JavaScript
- Size: 84 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
is-minified-performant 🚀

Checks if JS code is minified or uglified performantly.
Usage
```javascript
import { isMinified } from 'is-minified-performant';
``````javascript
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
``````javascript
const source1 = `
function main(foo = '') {
}
const bar = 1;
`;isMinified(source) // false
```How It Works
Use "Duck Typing" to detect whether source code is minified.
- no space before `return`
- no space before `if`
- no space before `===`
- no space before `==`
- no space before `!==`
- no space before `!=`
- no space before `=`
- no space before `var`> 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](https://en.wikipedia.org/wiki/Duck_typing)Why the Package
I tried [is-uglified](https://github.com/RaoHai/is-uglified) which uses acorn parse, [is-minified](https://www.npmjs.com/package/is-minified) using RegExp, and [is-minified-code](https://www.npmjs.com/package/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
The speed of checking minified source code **17 times** the second.
The speed of checking un-minified source code **1.4 times** the second.
> Use [[email protected]](https://unpkg.com/[email protected]/umd/react.development.js) and [[email protected]](https://unpkg.com/[email protected]/umd/react.production.min.js) as the targeting test source code.
`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
````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
```