npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@a-2-c-2-anpm/ducimus-vero-explicabo

v1.0.0

Published

<!-- prettier-ignore-start --> [![npm version](https://badge.fury.io/js/@a-2-c-2-anpm/ducimus-vero-explicabo.svg)](https://badge.fury.io/js/@a-2-c-2-anpm/ducimus-vero-explicabo) [![npm downloads](https://img.shields.io/npm/dm/@a-2-c-2-anpm/ducimus-vero-ex

Downloads

7

Maintainers

tranduc345zztranduc345zz

Keywords

rm -rfhasOwnPropertyduplex3dbddexecuteutil.inspectroutingfind-upoptionprocessreactdropconfigajaxObservablesstreams2zodpreprocessorjQuerytsratees-shim APIframerequalitystringifierextensionCSSrdsFloat64ArrayperformancemimeweakmapawesomesaucefeedlocalargumentexecloggerastfullwidtheslintconfigjoiregexpspeedchaipathkinesisfindLastassertdataViewtypescriptmime-dbdatacore-jsforEachconsumeYAMLchannelvestgdprECMAScript 2017limitmake dirES2017variablesObject.valueseast-asian-widthES2022assertionfull-widthparentsamazonvpcdirectorychromiumregular expressionworkspace:*errorbrowserslistdom-testing-librarycallboundassertsarraybufferfnmatchmatchesnameJSON-SchemaJSONlanguageRxJS[[Prototype]]unicodeieTypeBoxgraphqlhasOwndebugcachefrombusyWebSocketsartArray.prototype.flatReactiveExtensionsdragMicrosoftmatchstarterargstrimEndtoobjectrssshareddomsesnegative zerothreelastconcatMapURLSearchParamsdebuggerpnpm9superagentflagstouchECMAScript 2019Uint8Arrayassignfunction.lengthlibphonenumberdiffestreerandomprotogetpyyamlwaitoffsetes8validgitignorecontainsRFC-6455a11ytaphas-owninstalloncesortasyncECMAScript 6cloudfrontterminaltransforminternalmomentcharacterReflect.getPrototypeOf@@toStringTagcommandgetPrototypeOfjavascripttestpatcharrayeventDispatcherspinnerfullUint32Arraytesterdatedayjsrobustxmlparsingrapideventssymbolsfastcopyweaksetdeep-copyfast-deep-copyqsarktypecloudtrailboundtoStringTaghttpsObject.fromEntriessafewaapiECMAScript 5i18nquotetranspilerreact-testing-librarykoreaninternal slotsource mapfunctionalemitSymbol.toStringTagpackagesenvironmentsoutputsettingsmkdirpeventEmitterxhrimmercloudformationUint16ArrayprototypeString.prototype.trimES6ES2020inconfigurabledependency managergetOwnPropertyDescriptorobjectfindLastIndextslibArray.prototype.flatMaparraysbinaryECMAScript 2015jsonbannerpolyfillregular-expressionimportexportthrottleES2016typedpipevisualaccessibilitystringifymkdirsearch0byteLengthstylessetCSSStyleDeclarationbinariesvalueArrayBuffernopeReactiveXtostringtagesECMAScript 2023regextypedarrayreact-hook-formpluginidentifierstimetrimRightES8jsxpositiveECMAScript 7enderpromise__proto__linktypeerrorpropertysyntaxcollectiongraphql-clientwhatwgsimpledbhashparentspringfunctionimmutableArray.prototype.flattencharacterstoolsprotobufemojitoSortedurluuidreducergesturessymbolenvhooksebsawslengthmovebluebirdfpsfast-copymonorepodeep-cloneoptimiststdlibmergematchAllglobalscolumnforkcolumnssequenceredactkeyfast-deep-cloneargvwarningfastes7inspectlistenersPushmetadatawritablehigher-orderformArrayBuffer.prototype.sliceloggingavabatchisswftaskdotenvchildFunction.prototype.namereduceobjlruqueuegetintrinsicruntimepropertiesSymbolpackage managerremoveslicetypeofES2021optimizeridpropwordwrapindicatorio-tshtmlcirculartrimLeftshelldeterministicglacierpreserve-symlinksformatsidequeryignorereadfilterIteratorcommand-linedeleteatomcloudsearchObject.definePropertyinstallerdefinefetchenvironmentmobiledescriptorsemrglobchinesesyntaxerrorfigletwalkfast-cloneawaitdataviewlook-upjasminetakees5whichnumberFloat32Arrayl10nArraybundlerECMAScript 2021requestcryptomochaes2018computed-typestyped arraymakeaccessorautoscalingapiecmascripttapeTypedArraytypehardlinksspecjshintyamlsharedarraybufferflattenenumerablefixed-widthlimitedjsdiffbrowserlistmap.gitignoreintrinsicstyled-componentsRegExp.prototype.flagslinewrappostcsspostcss-pluginreusequeueMicrotaskpackage.jsonincludesworkercall-bound256elasticachewordbreakObservablejsdomstableWebSocketansischeme-validationES2018ObjectprivateelbdirES7private dataiterationcollection.es6ES5cjkreduxserializationserializerangeerror-0ES2023animationasterisksttynpmspawntc39flatloadingtermxtermshamstructuredCloneglobalupvaluesquerystringgroupphonejapanesecss-in-jsshimSetinputfindupautoprefixeres6importsetPrototypeOfisConcatSpreadablefindreact-hooksutilcensorTypeScriptidlesubprocesssortedexpressreadablestreamutility$.extendthroatfile systemviewgetternegativelocationvarssqskeysfsserializer

Readme

npm version npm downloads

es-compat

Check JavaScript code compatibility with target browsers and Node.js versions

Checks that the language features used in your code/bundles are supported by your browserslist targets.

Tools

Rationale

You might not need a transpiler or polyfills.

Or, you may be transpiling your own code but not prebuilt 3rd-party libraries - leaving you open to breakages when they use new language features.

ESLint supports targeting a specific ECMAScript version, and eslint-plugin-es-x allows forbidding individual language features. However when building applications, what we target are particular browser/runtime versions. This project lets you check compatibility by specifying those targets directly via a browserslist. It will figure out which individual features you can use, by looking up those targets in the MDN compatibility dataset.

Usage scenario examples

If you're not using a transpiler, run the tool/linter on your source code to ensure you're not using language features that aren't supported in your application's supported browsers.

If you transpile your own code but not 3rd party libraries, run the tool/linter on your output bundles to ensure they're not using language features that aren't supported in your application's supported browsers.

Scope

ECMAScript language features only; this includes syntax, built-ins, and methods.

It doesn't check browser/runtime-specific APIs (see eslint-plugin-compat), or CSS (see doiuse).

ECMAScript version coverage

1 Excluding features not statically detectable: revised Function.prototype.toString, stable Array.prototype.sort, well-formed JSON.stringify.

2 Excluding Symbol.prototype.description; as a debug feature, it's not worth the false positives that arise due to its name and not being a method.

3 ES2015 (ES6) is out of scope; it's been supported by evergreen browsers for many years. Assisting you to continue supporting IE11 is not a goal of this tool.

4 ES5 is out of scope; it's over 10 years old and supported even in IE10.

Browser compatibility data

We use a pinned version of @mdn/browser-compat-data, because their SemVer policy allows for breaking changes to the data structure even in minor and patch releases. If you need to use more up to date data, use the overrides facility of package.json to specify a later version - but be aware that it might break.

Limitations

Because JavaScript is untyped, detection of some features' usage (namely prototype methods) through static analysis requires some assumptions to be made. This shouldn't be a problem as long as you avoid creating your own methods having the same names, or write code in an unusual way to deliberately evade detection.

Support can only be checked for the browsers and runtimes covered by the MDN compatibility dataset.

The MDN compatibility dataset has very good feature coverage of the top ~6 desktop and mobile browsers, and Node.js (much more than kangax/compat-table). In case of missing data for a feature (support unknown, or unknown in which version support was added), we currently assume support.

Contributing

Contributions and feedback welcome. Please see the GitHub issues or create one, as appropriate.

Related

* Thanks to these projects in particular (and many others) for making this project possible.