Product
Introducing Enhanced Alert Actions and Triage Functionality
Socket now supports four distinct alert actions instead of the previous two, and alert triaging allows users to override the actions taken for all individual alerts.
@esbuild/win32-ia32
Advanced tools
Package description
The @esbuild/win32-ia32 npm package is a binary distribution of esbuild for Windows (32-bit) systems. Esbuild is an extremely fast JavaScript bundler and minifier. It compiles TypeScript and JavaScript into code that can run in the browser, and it can bundle many files into a single output file. It's designed to be very fast and efficient.
Bundling JavaScript
This feature allows you to bundle multiple JavaScript files into a single file, which can be useful for reducing the number of HTTP requests needed to load a web page.
require('esbuild').build({
entryPoints: ['app.js'],
bundle: true,
outfile: 'out.js',
}).catch(() => process.exit(1))
Minifying JavaScript
This feature enables the minification of JavaScript code, which reduces file size by removing unnecessary characters without changing its functionality.
require('esbuild').build({
entryPoints: ['app.js'],
minify: true,
outfile: 'out.js',
}).catch(() => process.exit(1))
Transpiling TypeScript
This feature allows you to transpile TypeScript code into JavaScript, making it possible to use TypeScript's features while still targeting environments that only support JavaScript.
require('esbuild').build({
entryPoints: ['app.ts'],
outfile: 'out.js',
}).catch(() => process.exit(1))
Webpack is a powerful module bundler that can transform front-end assets like HTML, CSS, and JavaScript. It's more configurable than esbuild but generally slower due to its complexity and feature-rich nature.
Parcel is a web application bundler that offers a zero-configuration experience. It's known for its simplicity and speed, but esbuild typically outperforms it in terms of build times.
Rollup is another module bundler for JavaScript which is best known for its tree-shaking capabilities, allowing for the creation of smaller bundles. It's more focused on bundling for libraries and has a different scope compared to esbuild's focus on speed.
Terser is a JavaScript parser, mangler and compressor toolkit for ES6+. It's specifically focused on minification and is often used in conjunction with other bundling tools rather than as a standalone bundler like esbuild.
Changelog
0.19.12
The "preserve" JSX mode now preserves JSX text verbatim (#3605)
The JSX specification deliberately doesn't specify how JSX text is supposed to be interpreted and there is no canonical way to interpret JSX text. Two most popular interpretations are Babel and TypeScript. Yes they are different (esbuild deliberately follows TypeScript by the way).
Previously esbuild normalized text to the TypeScript interpretation when the "preserve" JSX mode is active. However, "preserve" should arguably reproduce the original JSX text verbatim so that whatever JSX transform runs after esbuild is free to interpret it however it wants. So with this release, esbuild will now pass JSX text through unmodified:
// Original code
let el =
<a href={'/'} title=''"'> some text
{foo}
more text </a>
// Old output (with --loader=jsx --jsx=preserve)
let el = <a href="/" title={`'"`}>
{" some text"}
{foo}
{"more text "}
</a>;
// New output (with --loader=jsx --jsx=preserve)
let el = <a href={"/"} title=''"'> some text
{foo}
more text </a>;
Allow JSX elements as JSX attribute values
JSX has an obscure feature where you can use JSX elements in attribute position without surrounding them with {...}
. It looks like this:
let el = <div data-ab=<><a/><b/></>/>;
I think I originally didn't implement it even though it's part of the JSX specification because it previously didn't work in TypeScript (and potentially also in Babel?). However, support for it was silently added in TypeScript 4.8 without me noticing and Babel has also since fixed their bugs regarding this feature. So I'm adding it to esbuild too now that I know it's widely supported.
Keep in mind that there is some ongoing discussion about removing this feature from JSX. I agree that the syntax seems out of place (it does away with the elegance of "JSX is basically just XML with {...}
escapes" for something arguably harder to read, which doesn't seem like a good trade-off), but it's in the specification and TypeScript and Babel both implement it so I'm going to have esbuild implement it too. However, I reserve the right to remove it from esbuild if it's ever removed from the specification in the future. So use it with caution.
Fix a bug with TypeScript type parsing (#3574)
This release fixes a bug with esbuild's TypeScript parser where a conditional type containing a union type that ends with an infer type that ends with a constraint could fail to parse. This was caused by the "don't parse a conditional type" flag not getting passed through the union type parser. Here's an example of valid TypeScript code that previously failed to parse correctly:
type InferUnion<T> = T extends { a: infer U extends number } | infer U extends number ? U : never
All esbuild versions published in the year 2022 (versions 0.16.13 through 0.19.11) can be found in CHANGELOG-2023.md.
All esbuild versions published in the year 2022 (versions 0.14.11 through 0.16.12) can be found in CHANGELOG-2022.md.
All esbuild versions published in the year 2021 (versions 0.8.29 through 0.14.10) can be found in CHANGELOG-2021.md.
All esbuild versions published in the year 2020 (versions 0.3.0 through 0.8.28) can be found in CHANGELOG-2020.md.
Readme
This is the Windows 32-bit binary for esbuild, a JavaScript bundler and minifier. See https://github.com/evanw/esbuild for details.
FAQs
The Windows 32-bit binary for esbuild, a JavaScript bundler.
The npm package @esbuild/win32-ia32 receives a total of 4,830,016 weekly downloads. As such, @esbuild/win32-ia32 popularity was classified as popular.
We found that @esbuild/win32-ia32 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports four distinct alert actions instead of the previous two, and alert triaging allows users to override the actions taken for all individual alerts.
Security News
Polyfill.io has been serving malware for months via its CDN, after the project's open source maintainer sold the service to a company based in China.
Security News
OpenSSF is warning open source maintainers to stay vigilant against reputation farming on GitHub, where users artificially inflate their status by manipulating interactions on closed issues and PRs.