tslib
bundlejs
Our great sponsors
tslib | bundlejs | |
---|---|---|
4 | 32 | |
1,223 | 708 | |
1.2% | - | |
6.5 | 6.8 | |
5 days ago | 3 months ago | |
TypeScript | TypeScript | |
BSD Zero Clause License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tslib
-
Htmx changes license to Zero-Clause BSD
It's appropriate for software designed for use cases where an attribution requirement would be inconvenient or otherwise undesirable. For example, https://github.com/microsoft/tslib uses it, because that library is automatically included in any TypeScript program that uses downleveling, so if it had an attribution requirement then that requirement would apply to every program written in TypeScript, which nobody wants. (GCC and LLVM do something similar with their special runtime-library exceptions to the GPL and Apache License, respectively, but tslib lives in a separate repository from the rest of TypeScript and so could easily just get a separate license.)
-
String Literals in JavaScript: Should I Use Double-quotes or Single-quotes?
Looking at some popular JavaScript projects on GitHub, I noted that react, moment, and express all use single quotes for strings. However, another popular project, tslib, uses double quotes 🙄. So, while it would seem that single quotes is more common, this metric is not entirely conclusive.
-
https://np.reddit.com/r/learnjavascript/comments/o61djh/es6_what_is_the_difference_between_import_as/h2raxp0/
Things get a little interesting if you're using CommonJS interoperability, in which case our second import becomes something like const view2 = __importDefault(require("./view2")).default. This helper function checks to see if the imported file is an ES module and effectively namespaces the module under the default property if not. You can see TypeScript's implementation of this here.
-
Optimizing bundle size with TSLib helper functions
You may just copy them from tslib. It's 0BSD-licensed which doesn't even require attribution; but having the link somewhere in your comments is at least polite 🙂
bundlejs
- Bundlejs: Package Bundle Size Checker
-
200 Web-Based, Must-Try Web Design and Development Tools
Package Size Checker
-
ESM & CJS: The subtle shift in bundlejs' behaviour
I was closing out some long lived issues over on bundlejs, when issue #50 reminded me of the ongoing debate about how bundlejs should handle the ESM and CJS packages.
-
TANStack Query
Still, I'm not really sure about its dependencies: it lists react and @tanstack/react-query (as opposed to @tanstack/query-core) and bundlejs reports 124KB gzipped. Also, while using it, you still need to refer to their react docs (that documentation is really good and has a lot of examples) but not everyone will be thrilled about checking a react documentation when they're using an angular package.
-
Jest not recommended to be used in Node.js due to instanceOf operator issues
It's somewhere in between.
React as a lib and architecture _is_ platform-agnostic. The core logic is defined in the `react-reconciler` package. It contains all the implementation of rendering components, diffing trees, managing state, and running effects, as well as all the "Suspense" implementation.
However, the way `react-reconciler` works is that it's built _into_ each platform-specific renderer implementation. So, the size of `react-dom` is actually the size of `react-reconciler` + all the DOM-specific behavior.
A quick check of https://bundlejs.com/?q=react-reconciler suggests it's about 100K minified. https://bundlejs.com/?q=react-dom is 138K, so that tells me that the DOM-specific logic is 38K.
-
React Hook Form vs Formik
React Hook Form has no dependencies and a small bundle size. It has a gzipped bundle size of 12.12KB, according to bundlejs.
-
What are some of the best new tools of 2022!?
These are shameless plugs, but https://bundlejs.com and https://inthistweet.app. I built both tools specifically because I didn't find any other tools that solved the problems I kept running into.
-
How much space do packages end up taking in production build?
Try https://bundlejs.com/ to see
-
bundlejs: An online esbuild-based bundler + npm package size checker
bundlejs (pronounced bundle js) is a quick and easy way to treeshake, bundle, minify, and compress (in either gzip or brotli) your typescript, javascript, jsx and npm projects, while receiving the total bundles' file size.
-
Beginner's Thread / Easy Questions (May 2022)
Don't know of any but was going thru Adam Wathan's twits and replies. Found, https://github.com/okikio/bundle Looks medium sized.
What are some alternatives?
tsyringe - Lightweight dependency injection container for JavaScript/TypeScript
ponyfill - 🦄 Like polyfill but with pony pureness
XToolSet - Typed import, and export XLSX spreadsheet to JS / TS. Template-based create, render, and export data into excel files.
esbuild-runner - ⚡️ Super-fast on-the-fly transpilation of modern JS, TypeScript and JSX using esbuild
ts-transform-import-path-rewrite - TS AST transformer to rewrite import path
bundlesize - Keep your bundle size in check
ESLint - Find and fix problems in your JavaScript code.
sharedworker - A small spec. compliant polyfill for SharedWorkers, it acts as a drop in replacement for normal Workers.
ts_injector - Simple and lightweight injector for typescript projects.
pretty-bytes - Convert bytes to a human readable string: 1337 → 1.34 kB
typescript-eslint - :sparkles: Monorepo for all the tooling which enables ESLint to support TypeScript
Microbundle - 📦 Zero-configuration bundler for tiny modules.