30 open-source projects similar to rich-harris/magic-string, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Magic String alternative.
This project is a source map implementation library used for generating, parsing, and consuming source maps. It provides the functional components necessary to link transformed or minified code back to original source files, acting as a tool for code transformation debugging. The library includes a source map composer for building trees of code snippets that automatically produce output strings and mappings. It also functions as a source map merger, providing mechanisms to chain and merge multiple maps to resolve multi-step code transformations across different build stages. The project cove
Metro is a JavaScript bundler designed for React Native environments. It functions as a system for resolving dependencies, transforming source code, and packaging JavaScript and assets into bundles for execution. The project includes a development bundler server that hosts assets via HTTP and provides hot module replacement. It features a module resolver that handles platform-specific file extensions and a source code transformer that converts code into tree structures for optimization and minification. The toolset covers programmatic bundle generation, source map creation, and file system c
This is a collection of official extensions for the Rollup bundling process. These plugins serve as module transformers, resolution managers, and bundle optimizers designed to modify how JavaScript modules are processed, resolved, and optimized. The suite provides specialized capabilities for modern web transpilation, converting TypeScript, JSX, Flow, and GraphQL into compatible JavaScript. It distinguishes itself through extensive non-JavaScript asset integration, allowing the import of JSON, YAML, CSV, and image files as JavaScript modules or data URIs, and providing support for bundling We
The browserify-handbook is a comprehensive documentation guide for Browserify, a CommonJS module bundler and JavaScript build tool. It explains how to compile Node.js style modules into single JavaScript files for execution within web browsers. The guide covers the generation of universal module definition bundles that function across Node, AMD, and browser environments. It also details the use of browser-compatible polyfills for Node.js built-in modules to ensure cross-platform compatibility. The manual describes capabilities for source code transformation, frontend build automation, and we
Browserify is a build utility that enables the use of CommonJS module patterns within client-side JavaScript applications. It functions as a dependency manager and module bundler, tracing recursive import calls to package multiple source files and their dependencies into a single, optimized file for execution in web browser environments. The project distinguishes itself by providing a comprehensive compatibility layer that allows server-side code to run in the browser. It achieves this by injecting environment shims and replacing system-level globals with browser-compatible equivalents. Throu
This project is a CommonJS module bundler and resolver designed to combine interdependent JavaScript files into a single script for execution in web browsers. It functions as a Node.js JavaScript bundler that emulates server-side core modules and resolves dependencies to ensure compatibility between server-side logic and browser environments. The system features an extensible bundling pipeline and a browser-side module resolver. It provides a plugin architecture for transforming source code and a source map generator to correlate bundled output back to original files for debugging. The proje
Connect-assets is a Node.js asset pipeline and frontend build tool designed to manage the compilation, minification, and serving of scripts and stylesheets. It functions as a static asset bundler that resolves dependency graphs to concatenate source files into optimized bundles, reducing the number of network requests required for page delivery. The tool distinguishes itself by integrating directly into the development lifecycle through middleware that intercepts HTTP requests to compile and serve assets on demand. For production environments, it provides a command-line interface to precompil
arxiv-latex-cleaner is a utility designed to prepare LaTeX projects for submission to the arXiv preprint server. It functions as a document sanitizer and source cleaner, removing private comments, metadata, and sensitive information from LaTeX files. The tool optimizes document size by eliminating unused files and compressing graphics to meet strict upload limits. It further handles the externalization of complex drawing environments, replacing raw source code with references to pre-compiled image or PDF files to hide simulation data. The system performs source-to-source transformations to r
Stylus is a CSS preprocessor that transforms a dynamic language into standard CSS. It utilizes a compilation workflow to enable the use of variables, nesting, and arithmetic, which are then rendered into stylesheets for use in frontend asset pipelines. The project is distinguished by a flexible syntax that allows for indentation-based styling, meaning curly braces, colons, and semicolons can be omitted. It further differentiates itself through a JavaScript-driven plugin pipeline and the ability to extend the native syntax with custom JavaScript functions for complex logic. Its capability sur
This project is a high-performance library for converting raw text into tokens and IDs for machine learning models. It functions as a fast text encoder and a text preprocessing pipeline designed to transform strings into numerical representations with high throughput for research and production. The library includes a subword tokenizer trainer used to analyze text datasets and create custom vocabularies using algorithms such as byte-pair encoding and wordpiece. It provides capabilities for subword vocabulary training and text alignment, allowing character offsets to be tracked during normaliz
clean-css is a Node.js CSS optimizer that functions as a minifier, bundler, and source map generator. It reduces stylesheet file sizes by removing whitespace and comments while optimizing colors and units to improve page load times. The tool features a plugin-driven pipeline that allows for custom optimization transformations and the preservation of specific code fragments via marker-based exclusions. It includes browser compatibility targeting to ensure optimized styles remain functional across specified browser versions. The project provides capabilities for bundling multiple stylesheets i
UglifyJS2 is a suite of tools designed for parsing, beautifying, mangling, and minifying JavaScript code. It functions by converting source code into an abstract syntax tree to enable programmatic analysis and transformation, and it includes a dedicated generator for creating associated source maps. The project optimizes web production builds by compressing script logic and removing unreachable code. It utilizes name mangling to shorten variable and property names and implements a beautifier to reconstruct compressed scripts into a human-readable layout. The toolset covers broad capability a
swift-syntax is a library for parsing, manipulating, and generating Swift source code. It provides a source-accurate abstract syntax tree representation of Swift code, acting as a parser, transformer, and code generator. The project serves as the infrastructure for Swift macro development, enabling the expansion and transformation of source code during compilation. It is used to build compiler tooling for static analysis, formatting, and automated refactoring. The system covers a broad range of source analysis capabilities, including the ability to convert source code into structured trees f
This project is a suite of abstract syntax tree transformation tools designed to automate the migration of source code to newer versions of React. It provides a set of scripts that programmatically modify code structures to replace deprecated APIs and component patterns with modern equivalents. The toolkit specializes in converting class components into functional components using arrow functions and prop destructuring. It also includes utilities for modernizing JSX syntax, updating deprecated lifecycle methods to stable versions, and migrating legacy string-based references to callback refs.
React DevTools is a set of web browser developer tools integrated into Chrome and Firefox. It functions as a component inspector and UI debugger designed to visualize the component hierarchy and analyze the runtime behavior of React applications. The project includes a performance profiler used to detect unnecessary component re-renders and improve rendering efficiency. It also provides utilities for mapping virtual component trees to the physical DOM and linking rendered UI elements directly to their corresponding source code files and line numbers. The toolset covers component hierarchy vi
Optimize-js is a JavaScript parsing optimizer designed to reduce the time browsers spend pre-parsing scripts to improve initial execution speed. It transforms source code to minimize the overhead associated with browser parsing. The project implements a technique that wraps function calls in parentheses to bypass initial pre-parsing and reduce double-parsing overhead. To maintain the utility of the transformed code, it includes a source map generator that links the optimized output back to the original source. The toolset also includes performance benchmarking capabilities to measure the exa
JavaParser is a library that parses Java source code up to version 12 into an Abstract Syntax Tree (AST), enabling programmatic analysis, transformation, and generation of Java code. It serves as a parser, code analyzer, code generator, comment parser, and symbol resolver, providing a unified toolkit for working with Java source at the AST level. The library distinguishes itself through several integrated capabilities that go beyond basic parsing. It includes a symbol resolution engine that resolves type and symbol references across files for accurate semantic analysis, and an error-recovery
Codemod is a set of software tools for performing structural source code transformations. It functions as an automated codebase migration tool that utilizes abstract syntax tree manipulations rather than simple regular expressions to execute large-scale refactors across multiple files. The project distinguishes itself through an interactive transformation interface that provides colored diffs, allowing users to manually review, accept, or modify each match. It also supports a distributed refactoring workflow, which enables the segmentation of a codebase into assigned work blocks to divide mig
pulldown-cmark is a pull-parsing library that transforms Markdown text into a stream of events based on the CommonMark specification. It functions as an event-based processor that represents document structure as an iterator of events rather than a concrete syntax tree, serving as both a parser and a renderer to convert Markdown into HTML strings. The library is designed for memory efficiency by processing text as a stream to minimize resource usage. It supports programmatic document transformation, allowing users to map or filter the event stream before final rendering. The project includes
Less.js is a CSS preprocessor and compilation engine that transforms a dynamic stylesheet language into standard CSS for web browser rendering. It functions as a tool to compile extended styling syntax, providing variables, mixins, and functions to create maintainable stylesheets. The project includes a source map generator that creates mapping files to link compiled CSS output back to the original source code for debugging. It allows for the integration of custom plugins and functions to automate the generation of final stylesheets within a build process. The engine supports the compilation
ndb is a suite of development tools for Node.js that provides runtime inspection, performance profiling, and process management. It functions as a debugger that connects Node.js execution environments to the Chrome browser debugging interface for visual state management and breakpoint control. The tool is distinguished by its ability to detect and attach to spawned child processes, maintaining debugging visibility across multiple process boundaries. It also integrates a source editor that allows users to modify code directly within the debugging interface and save those changes to disk during
UglifyJS is a tool for JavaScript code minification, AST manipulation, and source beautification. Its primary purpose is to reduce the file size of JavaScript source code by removing whitespace and shortening variable names to optimize frontend build assets. The project differentiates itself through its ability to programmatically analyze and transform code using abstract syntax trees. It performs constant folding analysis and conditional compilation to eliminate unreachable or redundant code, and it employs a multi-pass compression pipeline to maximize total file size reduction. The tool pr
Spotless is a multi-language formatting orchestrator and Gradle plugin that automates code styling across various programming languages within a single build pipeline. It functions as a coordinator for multiple third-party formatters, a code style linting tool, and a system for inserting and updating standardized license headers. The project distinguishes itself through git-integrated style enforcement, using pre-push hooks and git references to apply formatting only to modified files or lines. It supports shared build configurations, allowing formatting rules to be distributed and loaded acr
This project is an AST-based code optimizer and compressor for modern ECMAScript, JSX, and TypeScript source code. It functions as a JavaScript minifier that uses the Babel toolchain to reduce file size by removing unnecessary characters and whitespace while preserving program logic. The tool is distinguished by its ability to process experimental language proposals and transform modern syntax into browser-compatible versions. It provides specialized handling for React JSX transpilation and strips type annotations from TypeScript files to produce compressed production assets. The system cove
This project is a JavaScript optimizer, minifier, module bundler, transpiler, and static analysis tool. It provides a compilation pipeline designed to shrink file sizes and improve runtime performance. The system utilizes a multi-pass compilation process to perform dead code elimination, global name mangling, and static type inference. It identifies unreachable functions and unused variables to reduce the final output size and detects potential runtime errors without executing the code. The tool manages assets through dependency resolution, code chunking, and bundle management. It ensures co
csso is a CSS minifier and optimizer that reduces stylesheet file sizes through structural analysis and algebraic transformations. It functions as an abstract syntax tree processor, converting styles into a structured tree to perform deep analysis and semantic-preserving code transformations while maintaining the original visual presentation. The project distinguishes itself through usage-aware optimization, analyzing external HTML markup and class identifiers to prune unused styles and reorganize rules based on actual document usage. It also performs structural refactoring by identifying and
TeaVM is a Java bytecode transpiler and browser-based JVM runtime that converts compiled Java class files into JavaScript or WebAssembly. It functions as a compiler and build pipeline tool that enables applications written in various JVM languages to execute natively within a web browser. The project distinguishes itself by transforming bytecode directly into optimized web formats without requiring the original source code. It includes a WebAssembly bytecode compiler for high-performance execution and a specialized emulation system to handle asynchronous multithreading within the single-threa
Recast is a JavaScript AST parser and printer designed for automated code refactoring. It converts source code into abstract syntax trees that can be modified and then printed back into source code. The project focuses on formatting-preserving transformations, storing original whitespace and indentation metadata within syntax tree nodes to reconstruct code without losing its original layout. It also generates character-level source maps to maintain precise correspondences between original input and transformed output. The toolkit includes utilities for syntax tree manipulation using a visito
ClojureScript is a Lisp-based compiler and runtime that translates Clojure source code into JavaScript. It enables functional programming across different JavaScript engines and platforms, allowing developers to build user interfaces and applications for web browsers and server environments. The project provides a read-eval-print loop for executing code live within a browser or server for immediate feedback. This facilitates an interactive development workflow where code can be written and tested in real time without restarting the application. The system covers a broad capability surface, i
Kotlin Jupyter is an interactive computing environment that enables the execution of Kotlin code within Jupyter notebooks. It functions as a kernel for the Java Virtual Machine, providing a platform for data analysis, rapid prototyping, and scientific computing research. The system manages the evaluation of code snippets by compiling them dynamically at runtime, allowing for real-time interaction and variable inspection. The project distinguishes itself through a sophisticated code transformation pipeline that intercepts and modifies user input to support custom syntax and automated logic. It