🐠 Babel is a compiler for writing next generation JavaScript.

Overview

babel

The compiler for writing next generation JavaScript.

Gitpod ready-to-code

v7 npm Downloads v6 npm Downloads

GitHub CI Status Coverage Status Slack Status Follow on Twitter

Supporting Babel

Backers on Open Collective Sponsors on Open Collective Business Strategy Status

Babel (pronounced "babble") is a community-driven project used by many companies and projects, and is maintained by a group of volunteers. If you'd like to help support the future of the project, please consider:

Sponsors

Our top sponsors are shown below! [Become a sponsor]

Intro

Babel is a tool that helps you write code in the latest version of JavaScript. When your supported environments don't support certain features natively, Babel will help you compile those features down to a supported version.

In

// ES2020 nullish coalescing
function greet(input) {
  return input ?? "Hello world";
}

Out

function greet(input) {
  return input != null ? input : "Hello world";
}

Try it out at our REPL.

FAQ

Who maintains Babel?

Mostly a handful of volunteers, funded by you! Please check out our team page!

Is there a Babel song?

I'm so glad you asked: Hallelujah —— In Praise of Babel by @angus-c, audio version by @swyx. Tweet us your recordings!

Looking for support?

For questions and support please join our Slack Community (you can sign up here for an invite), ask a question on Stack Overflow, or ping us on Twitter.

Where are the docs?

Check out our website: babeljs.io, and report issues/features at babel/website.

Want to report a bug or request a feature?

Please read through our CONTRIBUTING.md and fill out the issue template at babel/issues!

Want to contribute to Babel?

Check out:

Some resources:

How is the repo structured?

The Babel repo is managed as a monorepo that is composed of many npm packages.

License

MIT

Comments
  • Name suggestions

    Name suggestions

    • ~~esnext~~
    • ~~2015to5~~ (Over my dead body)
    • ~~20xx~~
    • jsnext
    • JS.next
    • ESEdge
    • JSEdge
    • Autobot
    • Rosetta
    • Babel
    • Transformer
    • TransformerJS
    • RewindJS
    • nextjs
    • JSworks
    • JSkit
    • next2now
    • HighFive
    • milljs
    • espro
    • estro
    • next.js
    • forward.js
    • riches
    • Continuum
    • Looper
    • McFly
    • Biff
    • TwelveMonkeys
    • T-800
    • Retcon
    • Backporter
    • Nostradamus
    • JSOfTheFuture
    • Jarvis
    • ESX
    • ECzMA
    • OnRamp
    • Crossfade
    • agile.js
    • rapid.js
    • es.js
    • pileup
    • Transmogrify
    • Alchemy
    • AC tranSlater
    • eslang
    • Tardis
    • TimeLord
    • DumbifyJS
    • FastForward
    • FlashForward
    • Obamacare.js
    • Fest
    • Nest
    • Pest
    • Jet
    • Switch
    • FringeJS
    • ExceedJS
    • VantageJS
    • oracle.js
    • modern
    • prophecy
    • sybill
    • erised
    • thestral
    • firenze
    • vanga (not vagina)
    • proximus
    • posterus
    • nuance
    • retro
    • rasputin
    • Wells
    • Herbert
    • dat
    • Tomorrow
    • Ambitus
    • Prometheus
    • silverbullet
    • magicbullet
    • Xto5
    • XtoY
    • StarJS (*JS)
    • Downcast
    • Pimp My JS
    • Harmony
    • strawman
    • Uplift
    • Evolve
    • Pythia
    • NotTerrible
    • LobotomizeJS
    • Affinity
    • Concord
    outdated 
    opened by sebmck 217
  • undefined is not a function(evaluation 'object.getOwnPropertyDescriptors(arguments[i])')

    undefined is not a function(evaluation 'object.getOwnPropertyDescriptors(arguments[i])')

    https://github.com/facebook/react-native/issues/23092

    Unfortunately this exact same issue strikes again with the release of Babel v7.5.0.

    These are the Babel related dependencies I am having:

        "@babel/core": "7.4.5",
        "@babel/plugin-proposal-class-properties": "7.4.4",
        "@babel/plugin-proposal-decorators": "7.4.4",
        "@babel/plugin-transform-flow-strip-types": "7.4.4",
        "@babel/preset-flow": "7.0.0",
        "babel-eslint": "10.0.2",
        "babel-jest": "24.8.0",
        "metro-react-native-babel-preset": "0.54.1",
    

    With the package-lock.json I generated a few days ago everything's fine with npm install, but if I try to do it without the lockfile the error appears. Judging from my lockfile's diff I can say that a few secondary Babel dependencies were updated to v7.5.0 without the lockfile (eg. @babel/generator, @babel/helper-create-class-features-plugin) so am pretty sure this is a Babel issue again.

    Priority: High i: bug Has PR i: regression outdated 
    opened by gsklee 91
  • 6.0

    6.0

    Foreword: None of this is really set in stone. Feel free to argue and discuss. This is kinda a long issue so I added some gifs, I hear developers love that kind of stuff. This post is also a bit rough, figured it's better to get it out there ASAP, I'll improve it as more feedback is collected. Thanks everyone for your (potential) participation!

    What is 6.0 going to look like?

    No internal transformers. None. Zero. Zilch.

    This will be coupled with the removal of the following options:

    • whitelist
    • blacklist
    • optional
    • loose
    • stage

    All of these options are redundant when you're manually specifying transformers.

    This dramatically reduces complexity in the transformer options. Right now there's way too many ways to change the state of a transformer. This will reduce friction and make it easier to reason about what's actually enabled.

    There's also a major problem with including very experimental syntax/transformers in core. If a big change was made to their semantics it would be a breaking change and would require a major version bump of Babel. In the interest of stability and being reactive to changes in the standardisation process, it makes sense to version them independently.

    When?

    idk

    idk whenever

    Where will all the current builtin transformers go?

    Into userland plugins.

    Wont this make it harder to use 6.x like we use 5.x?

    Nope! 6.0 will also introduce the concept of presets. These are modules distributed via npm that specify a set of options (plugins etc) that will be merged into your main configuration.

    Recommended

    This means that the current ES6 to ES5 configuration would be distributed on npm via the babel-preset-es2015 package. It would have the index.js of:

    module.exports = {
      plugins: [
        require("babel-plugin-arrow-functions"),
        require("babel-plugin-classes"),
        ...
      ]
    };
    

    To use this you'd just specify the following in your .babelrc:

    {
      "plugins": ["preset-es2015"]
    }
    

    Community-specific

    These can be even more specific. For example, the React community may have an official preset called babel-preset-react that will have the following index.js:

    module.exports = {
      plugins: [
        require("babel-plugin-jsx"), // enables jsx syntax
        require("babel-plugin-flow"), // enables flow syntax
    
        require("babel-plugin-react-jsx"), // transforms jsx to flow
        require("babel-plugin-flow-comments"), // transforms type annotations to flow
      ]
    };
    

    Just like the es2015 preset, this could be enabled with the following .babelrc:

    {
      "plugins": ["preset-es2015", "preset-react"]
    }
    

    Isn't this a dramatic shift in focus?

    Nope, this is a part of the long term vision for Babel and everything has been leading up to this (cue dramatic music). I bought this up in #568 back in January where I said:

    Ideally I'd like for 6to5 to be a more general JavaScript of the future transpiler. 6to5 already supports Flow/JSX as well as experimental ES7 features so the name isn't even representative of the project in it's current state although it is in how it's widely used.

    A JavaScript transpiler based on future standards and specifications, whether ECMAScript or not, I think is an extremely noble goal. I think there's a large use case for 6to5 beyond just ES6. Having an interopable platform to base code transformations on I think is a very powerful idea. This may mean exposing a very feature-rich core that contains transforms or even exposing a public API.

    What about syntax extensions?

    I'll be holding out on allowing arbitrary syntax extensions for the timebeing. If we're going to do them at all, we're going to do them right. No point half assing a very critical and fragile piece such as syntax extension.

    But if there's no syntax extensions then how would existing transformer that enable special syntax work?

    So, the syntax would be implemented in the Babel parser Babylon, the "syntax plugins" would just toggle some parser options via an API. So the actual parser code would still live in Babylon. It's a neat solution until we support syntax extensions properly.

    What else is coming?

    Plugin options (#1833)

    Plugin options are something that sorely needed.

    Specifying options

    These can be specified via a multidimensional array. For example, say you have a babel-plugin-pancakes plugin, you could specify options to it like so:

    .babelrc

    {
      "plugins": [["pancakes", { "syrup": "maple" }]]
    }
    

    But how would you specify options for plugins defined in a preset? One possible way is to specify them in the options to a preset, so if you had a preset like:

    node_modules/babel-preset-breakfast/index.js

    module.exports = {
      plugins: [require("babel-plugin-pancakes")]
    };
    

    Then you could specify the options for babel-plugin-pancakes like so:

    .babelrc

    {
      "plugins": [["preset-breakfast", {
        "pancakes": { "syrup": true }
      }]]
    }
    

    Accessing them from a plugin

    export default function ({ Plugin }) {
      return new Plugin("pancakes", {
        visitor: {
          ObjectExpression(node, parent, scope, state) {
            if (state.options.syrup !== "maple") {
              throw this.errorWithNode("No objects allowed unless I get maple syrup >:(");
            }
          }
        }
      });
    }
    

    Swappable parser

    Add a parser option to allow use of another Babel AST compatible parser.

    Plugin hooks (#1485)

    There's currently no good way to perform initialisation of a plugin. Currently you can use the Program visitor to kinda simulate this, but those callbacks are only called once the traversal has already started. The introduce of a init and post method to a Plugin will make this make nicer:

    export default function ({ Plugin }) {
      return new Plugin("pancakes", {
        init(state) {
          // initialise
        },
    
        post(state) {
          // teardown
        }
      });
    }
    

    Way to provide the entire dependency graph to Babel

    Another thing that I want to provide is a way to give Babel your entire dependency graph. This will allow cross file transformations. It'll allow us to catch more bugs (such as importing something from another module that wasn't exported).

    This also allows us to simplify code (thus making it more performant) with access to other files. For example, we can drop the module interop output if we know that a file imported is ES6.

    Minification plugins

    I believe we can do minification better (if not equivalent) as UglifyJS. With the potential type information available this has the potential to lead to huge wins. I've already written quite a few plugins already and I believe with some time investment and the help of community plugins we can have a kickass minification pipeline.

    Optimisation plugins

    Babel plugins put a lot of potential for optimisations on the table. These optimisations fall into two categories:

    Unreliable transformations

    These transformations modify JavaScript semantics, they're pretty dangerous and fairly irresponsible. If you're a small devshop or independent developer it's probably way too risky to do this but if you're a largish tech company then you can weigh the risks and it may come out in favor of doing these sorts of transforms. The engine can't infer these kind of changes, you have to tell it that you don't care.

    Want to assume all function expressions are constant value types and hoist them? Do it via a plugin.

    Want to turn all function expressions that don't use this or arguments into arrow functions? Do it via a plugin. (Arrow functions are currently faster than normal functions in Firefox and likely all other browsers in the future)

    Want to manually inline functions, removing the overhead of adding a frame to the call stack, potentially improving perf even if the function has been JIT inlined? Do it via a plugin.

    Want to lazy load modules, assuming that the order they're imported doesn't matter as they're side effect free? Do it via a plugin.

    You can kinda see how these assumptions can lead to fairly large wins. You just have to decide whether or not it's a good idea to do them.

    Reliable transformations

    These are transformations that can be done with 100% confidence. These can be performed without possibly breaking any code. With Flow integration and access to the dependency graph a lot of code can be statically inferrable.

    But don't engines already do these? Different engines do different things. Some optimisations are too heavy for JITs to do but we have a bit more leeway since we're preprocessing offline. We also potentially have access to more information than engines (type annotations) and so can do some smarter things.

    Debugging

    Better debugging information will be absolutley necessary as Babel grows in complexity. A particular useful feature for userland would the ability to tell exactly what transforms are breaking or slowing down your build will be critical in this modulrisation.

    Performance

    5.x performance has improved drastically since 4.x. It could be better though. Performance will never stop being an issue.

    If there's one part of Babel that is quite slow due to the overhead of JavaScript, there's the potential to provide two implementations of it. A fast version implemented via a native module that's used in Node and a pure JavaScript one that can be used in the browser. If parts of Babel get implemented as native modules there will always be a pure JavaScript version available.

    See issue #1486 for related performance discussion.

    Async API

    Why?

    This will allow an RPC with a long running server such as Flow. This will allow access to a large amount of type info. This will also allow IO to be done.

    What about integrations that only allow a synchronous API?

    A synchronous API will still be available for those limited integrations. If you attempt to use the synchronous API with plugins that have async visitors then an error will be thrown. Most of the systems that Babel has to integrate with are already async so this shouldn't be a concern for 90% of developers.

    Anything else?

    Probably forgetting something, I'll add more to this issue as I remember and feedback is collected.


    cc everyone

    opened by sebmck 90
  • Default to sourceType:script when parsing files.

    Default to sourceType:script when parsing files.

    | Q                       | A | ------------------------ | --- | Fixed Issues? | Fixes #6242 | Patch: Bug Fix? | | Major: Breaking Change? | Y | Minor: New Feature? | | Tests Added + Pass? | Yes | Documentation PR | | Any Dependency Changes? | | License | MIT

    Alright, let's have this discussion since #6242 never really took off, and most of my TODOs in there have landed.

    I am of the opinion that Babel 7 should parse .js files using the script parse goal, and .mjs files with the module parse goal. In Babel 6, and 7 up to present, the default has been module. I also want to make clear that you can still easily set sourceType:module in your Babel config to keep the current behavior, but the important question here is the default, because it influences many other parts of Babel's transformations.

    There are a few primary issues surrounding using module as the default:

    • Many perfectly valid Script files will fail to parse. This means that users attempting to run Babel on things in node_modules for instance will fail to parse.
    • Defaulting to module means Babel converts top-level this to undefined and injects use strict, which can break when run against arbitrary files
    • When performing transformations, Babel needs to know whether to inject import or require, and it does so based on the sourceType. Defaulting to module means we may inject import into valid CommonJS modules, breaking them.
    • When writing files to disk with babel-cli we'd ideally add .mjs to files that are modules, and .js to scripts. If we default to module then we'd potentially output .mjs extensions on CommonJS files.

    These issues become more problematic when you consider that people are more frequently running Babel across arbitrary node_modules dependencies. Realistically this pattern is only going to increase in frequency for forseeable future.

    Node now follows this same pattern, with .js meaning CommonJS and .mjs meaning ESM. There is potential for a field to land in package.json that would allow toggling this behavior, and once that lands we could for instance consider a sourceType: packageMode option or something, but even with that the default in Node will remain .js for CommonJS.

    Given all of this, it seems like it would be in the best interest of Babel to follow that same pattern, by requiring users to either use .mjs or opt into specific ESM behavior in their Babel configuration.

    PR: Spec Compliance :eyeglasses: PR: Breaking Change :boom: outdated 
    opened by loganfsmyth 87
  • Project scope and future

    Project scope and future

    6to5 has gone a long way in a few short months, since then I've learnt a lot of about maintaining an open source project as well as discovered what I see as shortcomings in the current ecosystem and environment.

    There are a lot of complaints about 6to5 not being "future proof". Many are under the assumption that 6to5 will be a stopgap solution until ES6 is supported. I don't agree. I believe that there are things that 6to5 can expand upon to not only become future proof but to potentially influence future standards. 6to5 will always be necessary if you want next generation features, whether this is JSX, ES6, ES7, whatever, support and features can be added more quickly to 6to5 than it can in browsers and environments mainly because 6to5 only has to operate on a subset of the constraints placed on vendors.

    Future

    Ideally I'd like for 6to5 to be a more general JavaScript of the future transpiler. 6to5 already supports Flow/JSX as well as experimental ES7 features so the name isn't even representative of the project in it's current state although it is in how it's widely used.

    A JavaScript transpiler based on future standards and specifications, whether ECMAScript or not, I think is an extremely noble goal. I think there's a large use case for 6to5 beyond just ES6. Having an interopable platform to base code transformations on I think is a very powerful idea. This may mean exposing a very feature-rich core that contains transforms or even exposing a public API.

    Some of the decisions will need to be extremely calculated in order to provide a concise and specific goal. I'm well aware of the technical challenges associated with this, feature creep, maintenance etc. I'm not going to put a timeline on any of this. It could be in 3, 6, 12 months, the time is ultimately arbitrary, I'm looking for more general feedback on the concept rather than when it'll be appropriate.

    What now?

    Please let me know your thoughts, I'm extremely eager to get as much community feedback as possible. I have thoughts on how to go about doing a lot of this, including a modular parser etc that I'll elaborate on if necessary. Thanks to everyone who decides to leave feedback and criticism!

    /cc @thejameskyle @eventualbuddha @stefanpenner @gaearon @AluisioASG @ocombe @amasad @timoxley @Dashed @monsanto

    outdated 
    opened by sebmck 78
  • Object.assign is undefined.

    Object.assign is undefined.

    In the line

    module.exports = Object.assign(exports["default"], exports);
    

    of a module converted to CJS, Object.assign causes an error. Most browsers (f.e. Chrome) don't support this yet. Can you please replace this with something that works? Thanks!

    outdated 
    opened by trusktr 75
  • How do we want to handle `.babelrc` lookup in 7.x

    How do we want to handle `.babelrc` lookup in 7.x

    Edit 2

    Most recent status: https://github.com/babel/babel/issues/6766#issuecomment-352225586

    Edit 1

    All below still applies, but also see more explanation in https://github.com/babel/babel/issues/6766#issuecomment-347966349

    Original:

    Not a fleshed out proposal, but filing for tracking and discussion.

    Currently if you have:

    .babelrc
    src/
      index.js
      utils/
        .babelrc
        other.js
    

    compiling index.js will use the root-level .babelrc, and other.js will use the src/utils/.babelrc. I assume this pattern was pulled from other utilities like ESLint, but not 100% sure.

    We're at the point now where this approach has become a problem for us because:

    1. Very few people seem to expect this behavior to begin with.
    2. People expect their project-level .babelrc file to also apply to things that live in node_modules. Babel 6 was terrible at figuring out how to handle node_modules because it always assumes things are strict mode, and always rewrites this, but a lot of those issues aren't as big in Babel 7, or at least ideally won't be, because we plan to have better handling of the sourceType: script vs sourceType: module distinction. This kind of works now, but see point (3).
    3. If people publish packages to npm and include .babelrc files in their packages, or more troublingly, use the babel key in package.json (which you can't really get around publishing), users trying to use Webpack or anything like it to compile node_modules get extremely confusing errors about not being able to find plugins and presets referenced in those files. See https://github.com/facebookincubator/create-react-app/issues/1125 for a massive list of users that want to compile node_modules, but would absolutely be bitten by this issue.

    So where does that leave us? The simplest thing I can think for us to do would be to change up Babel's API to, by default, accept a root directory as an argument where it would search for the config, defaulting to the working directory.

    We're already at a point where I've thought about adding an argument for root directory to resolve the filename relative to, so that should be uncontroversial. Actually changing config resolution is a bigger question.

    It would be pretty easy for us to allow users to opt for the old behavior, so I think my proposal would probably be to add this new root-dir config resolution logic and make it the default, but keep the old behavior around as an opt in. So where now we have

    babelrc: boolean
    

    to toggle config resolution off and on, I could imagine us doing

    babelrc: true | "root" => Look for config in root directory
    babelrc: "relative" => Look for config, starting from compiled file, working upward
    babelrc: false => Skip search entirely.
    

    instead.

    The primary loss of functionality here is that if users do want to use .babelrc files inside nested folders to change Babel configs based on path, they don't have an easy way to do it anymore. I don't however have a good grasp of how many users that might be. It seems like we may want to consider https://github.com/babel/babel/issues/5451 as something to be included in this effort if we do want to change, which might end up blocked on https://github.com/babel/babel/issues/6765.

    Priority: High outdated 
    opened by loganfsmyth 73
  •  ReferenceError regeneratorRuntime is not defined

    ReferenceError regeneratorRuntime is not defined

    I'm building an SSR template, and when I use @babebl/register and then execute webpack (config), the system reported an error. I tried @babel/polyfill and @babel/plugin-transform-runtime, but none of them worked.

    Input code

    index.js:

    require("ignore-styles");
    require("@babel/register")({
      ignore: [/\/(build|node_modules)\//],
      presets: ["@babel/preset-env", "@babel/preset-react"],
      plugins: ["@babel/plugin-syntax-dynamic-import", "dynamic-import-node"]
    });
    require("./server");
    

    server.js

    const config = require('../config/webpack.dev.config.js')
    const webpack = require('webpack')
    const express = require('express')
    const webpackDevMiddleware = require('webpack-dev-middleware') 
    const reactRouter = require('react-router')
    const StaticRouter = reactRouter.reactRouter;
    const app = express()
    const complier = webpack(config)
    const PORT = 8090
    ...
    app.use(webpackDevMiddleware(complier, {
      publicPath: config.output.publicPath
    }))
    
    app.listen(PORT , function() {
      console.log(`SSR running on port ${PORT }`);
    })
    

    webpack.dev.config.js

    const paths = require('./paths')
    const webpack = require('webpack')
    const htmlWebpackPlugin = require('html-webpack-plugin')
    
    module.exports = {
      entry: ['webpack-hot-middleware/client?reload=true', paths.appIndexJs],
      output: {
        path: paths.clientBuild,
        filename: '[name].bundle.js',
        chunkFilename: '[name].bundle.js',
        publicPath: paths.publicPath
      },
      devtool: 'eval-source-map',
      module: {
        rules: [
          {
            test: /\.(js|jsx)$/,
            exclude: /node_modules/,
            loader: 'babel-loader',
            options: {
              presets: [
                ['@babel/preset-env', { 
                  useBuiltIns: 'usage', 
                  corejs: "2",  
                  targets: {
                      browsers: ['last 2 versions', 'ie >= 9'],
                  },
                }],
                '@babel/preset-react'
              ]
            }
          }
        ]
      },
      resolve: {
        extensions: ['.js', '.jsx']
      },
      plugins: [
        new webpack.HotModuleReplacementPlugin(),
        new htmlWebpackPlugin({
          template: './client/index.html',
          filename: 'index.html'
        })
      ]
    }
    

    Error message

    image

    Environment

    • Babel version(s): 7.4.3
    • Node/npm version: [e.g. Node 10.15.3/npm 6.4.1]
    • OS: window 10

    Rep

    https://github.com/xuchenchenBoy/ssr (Please execute npm run dev:server and release notes in server.js)

    i: question outdated 
    opened by xuchenchenBoy 68
  • Update to `core-js@3`

    Update to `core-js@3`

    Current state:

    @babel/runtime

    • Added @babel/runtime-corejs3 package and corejs: 3 options to @babel/plugin-transform-runtime.
    • Added support of instance methods, fixes #8928.
    • Added flag proposals (in corejs: { version: 3, proposals: true } format) for support all proposals polyfills from core-js.
    • Used separate directories in runtime for core-js entry points with proposals and without.
    • Used get-iterator-method helper for getting iterators, fixes #2500.
    • As a cheap bonus, added support of IE8- (except some cases of regenerator).

    @babel/polyfill

    • Should be deprecated in favor of separate usage required features from core-js and regenerator-runtime with an informative message.

    @babel/preset-env

    • Uses for built-ins data from core-js-compat instead of compat-table since information from compat-table is not enough.
    • useBuilIns now requires direct setting of corejs version option, without it will be used 2 by default and shown deprecation warning.
    • Added support of minor core-js versions for simplify updating in the future.
    • For preventing some order-related problems, polyfills in the both core-js@3 plugins added on post stage in the order of core-js-compat data.
    • Divided plugins and polyfills parts of preset-env, instead of 2 internal plugins for adding polyfills, we have 6: usage and entry versions of plugins for core-js@2, core-js@3, regenerator-runtime.
    • Added support samsung target (for Samsung Internet) since core-js-compat and compat-table now contains mapping for this, fixes #6602.

    useBuilIns: entry with corejs: 3

    • No longer transforms @babel/polyfill.
    • Transforms all possible core-js entry points to import of related modules (based on data from core-js-compat).
    • Since of this, we no longer need shippedProposals / proposals flags with useBuilIns: entry.
    • Removes regenerator-runtime/runtime import where it's not required.

    useBuilIns: usage with corejs: 3

    • In addition to shippedProposals, added flag proposals (in corejs: { version: 3, proposals: true } format) for polyfill all proposals from core-js.
    • Fixed list of dependencies in built-in definitions.
    • Improved the way of determination method / built-in name and source of this method.
    • Adds import of required polyfills on MemberExpression, ObjectPattern, in operator.
    • Adds import of required polyfills on access to global object properties.
    • Adds import of all required common iterators on all syntax features which use iterators protocol (for-of, destructuring, spread, yield delegation, etc.).
    • Adds import of promises on syntax features which use promises (async functions/generators, dynamic import, etc.), fixes #9250, #7402, etc.

    core-js@2 stuff

    I didn't want to tough core-js@2-related stuff, however

    • Fixed some serious errors in definitions which breaks Object.getOwnPropertySymbols, Symbol.toStringTag logic, Promise#finally, Array#forEach, etc.
    • Array#flatMap and trim methods moved to stable features as a part of ES2019 and loaded by deprecated @babel/polyfill and @babel/preset-env with corejs: 2 option.

    2018.12.30 Explanation of the current situation:

    @babel/runtime

    Here we have no serious problems.

    • Added @babel/runtime-corejs3 package and corejs: 3 options to @babel/plugin-transform-runtime.
    • Added support of instance methods.
    • Used get-iterator-method helper for getting iterators, fixes #2500.
    • As a cheap bonus, added support of IE8- (except some cases of regenerator).

    Breaking changes

    @babel/runtime can be updated without any problems by adding @babel/runtime-corejs3 package. But not @babel/polyfill and @babel/preset-env.

    Updating @babel/polyfill to core-js@3 will break @babel/preset-env. @babel/preset-env with useBuiltIns transforms import of @babel/polyfill to import of required core-js modules. Most users don't add core-js dependency directly. In case of a minor update, even if @babel/polyfill dependency will be updated with @babel/preset-env, in the top level of node_modules we will have core-js@2, not core-js@3 because a serious part of dependencies depends on packages with core-js@2 in dependencies.

    Updating @babel/preset-env will cause the same problem. More other, @babel/preset-env transforms also imports of core-js. If someone has core-js@2 in dependencies, a minor update of @babel/preset-env will break it.

    Before babel@7 release, I proposed to deprecate @babel/polyfill in favor of separate inclusion of core-js and regenerator-runtime, but it was not done.

    So,

    Options for @babel/polyfill:

    • A major bump of @babel/polyfill.
    • Deprecation of @babel/polyfill package in favor recommendation of separate inclusion of required parts of core-js and babel-runtime.

    Options for @babel/preset-env:

    • A major bump of @babel/preset-env.
    • Adding an option with a version of core-js like in @babel/plugin-transform-runtime. I'm not a fan of this way, because in this case, we will use a deprecated version of core-js by default, will cause spaghetti in configs and the code base and will cause problems for other mentioned here changes, at least, see polyfilling of proposals section.
    • Deprecation of useBuiltIns option of @babel/preset-env in favor of creation plugin(s) / preset in the scope of core-js for polyfills only.

    @babel/preset-env

    Some of the improvements already added, some should be added.

    • compat-table is not enough for correct detection of environments where core-js modules required. More info about it you could find here. So I made core-js-compat package with required data which should be used here.
    • Built-ins definitions should be updated for include correct dependencies. Some parts of that were added before babel@7 release, some still not.
    • All syntax features that work with iterators should add common iterators, async functions / generators should add Promise with dependencies (#9250), etc.

    Polyfilling of proposals

    In the final babel@7 versions, from all polyfilling-related stuff was removed polyfilling of proposals. Seems that it was a mistake.

    New babel plugins for proposals will rely on new standard library features. And, with the current approach to polyfilling of proposals, it's too problematic.

    I can understand why polyfilling of proposals was removed from the default @babel/polyfill. But in this case, we should have added entry points which include proposals.

    Adding polyfills of proposals from core-js when the main part of polyfills loaded from @babel/polyfill is not a good solution because they could be loaded from another instance of core-js and it will cause problems.

    Removing proposals from runtime will kill usage of new proposal plugins which depends on new standard library features with the runtime. They should be available in helpers. Even import of required part of core-js without global namespace pollution is rocket science for a serious part of developers. Also, @babel/runtime-corejsx is not @babel/runtime-stable-corejsx-features.

    The same for @babel/preset-env, but not so critical.

    @babel/preset-env transforms core-js only to import of stable ES features. But the main core-js entry point also contains proposals and someone can expect some of them.

    runtime and preset-env inject polyfills based on feature detection, only when they are used, so I don't see any arguments why polyfilling of proposals was removed from those tools.

    The shippedProposals option of @babel/preset-env looks like something strange. We haven't any equal in core-js entry points, so I don't see what should be transformed. Implementing in browser definitely is not an indicator that it should be polyfilled, but non-implemented proposals should not. I don't think that it's something that should be supported.

    So, by my vision, the best approach is:

    • Deprecate @babel/polyfill in favor recommendation of separate inclusion of required parts of core-js and babel-runtime. If someone needs polyfills of proposals - he will use polyfills of proposals, not - not.
    • Deprecate transform of @babel/polyfill in @babel/preset-env.
    • Add to preset-env with useBuiltIns: entry (or a successor for polyfilling) transforms: core-js to all modules, core-js/es, core-js/proposals and core-js/web to related parts of core-js.
    • Allow runtime and preset-env inject proposals polyfills. Maybe - with an option for that, but option will make it harder.

    --------------------

    Before the next step, we should decide what should we do with @babel/polyfill, @babel/preset-env breaking changes and polyfilling of proposals. Thoughts?

    PR: New Feature :rocket: Priority: High PR: Needs Review pkg: preset-env pkg: polyfill outdated 
    opened by zloirock 63
  • Requires Babel “7.0.0-0” but was loaded with “6.26.3”

    Requires Babel “7.0.0-0” but was loaded with “6.26.3”

    Bug Report

    Current Behavior Keep getting this and I've tried a bunch of solutions around the forum. This is what I'm getting:

    error: bundling failed: Error: Requires Babel "^7.0.0-0", but was loaded with "6.26.3". 
    If you are sure you have a compatible version of @babel/core, it is likely that something in your build process is loading the wrong version. 
    Inspect the stack trace of this error to look for the first entry that doesn't mention "@babel/core" or "babel-core" to see what is calling Babel. (While processing preset: "C:\Users\Admin-ESS\Absent\node_modules\@babel\preset-env\lib\index.js")
    
    at throwVersionError (C:\Users\Admin-ESS\Absent\node_modules\@babel\preset-env\node_modules\@babel\helper-plugin-utils\lib\index.js:65:11) 
    at Object.assertVersion (C:\Users\Admin-ESS\Absent\node_modules\@babel\preset-env\node_modules\@babel\helper-plugin-utils\lib\index.js:13:11) 
    at _default (C:\Users\Admin-ESS\Absent\node_modules\@babel\preset-env\lib\index.js:150:7) 
    at C:\Users\Admin-ESS\Absent\node_modules\@babel\preset-env\node_modules\@babel\helper-plugin-utils\lib\index.js:19:12 
    at C:\Users\Admin-ESS\Absent\node_modules\metro\node_modules\babel-core\lib\transformation\file\options\option-manager.js:317:46 
    at Array.map () at OptionManager.resolvePresets (C:\Users\Admin-ESS\Absent\node_modules\metro\node_modules\babel-core\lib\transformation\file\options\option-manager.js:275:20) 
    at OptionManager.mergePresets (C:\Users\Admin-ESS\Absent\node_modules\metro\node_modules\babel-core\lib\transformation\file\options\option-manager.js:264:10)
    at OptionManager.mergeOptions (C:\Users\Admin-ESS\Absent\node_modules\metro\node_modules\babel-core\lib\transformation\file\options\option-manager.js:249:14) 
    at OptionManager.init (C:\Users\Admin-ESS\Absent\node_modules\metro\node_modules\babel-core\lib\transformation\file\options\option-manager.js:368:12) 
    at File.initOptions (C:\Users\Admin-ESS\Absent\node_modules\metro\node_modules\babel-core\lib\transformation\file\index.js:212:65) 
    at new File (C:\Users\Admin-ESS\Absent\node_modules\metro\node_modules\babel-core\lib\transformation\file\index.js:135:24) 
    at Pipeline.transform (C:\Users\Admin-ESS\Absent\node_modules\metro\node_modules\babel-core\lib\transformation\pipeline.js:46:16) 
    at Object.transform (C:\Users\Admin-ESS\Absent\node_modules\metro\src\transformer.js:135:5) 
    at Object.transformCode [as transform] (C:\Users\Admin-ESS\Absent\node_modules\metro\src\JSTransformer\worker\index.js:253:15) 
    at execMethod (C:\Users\Admin-ESS\Absent\node_modules\jest-worker\build\child.js:92:29) 
    at process.on (C:\Users\Admin-ESS\Absent\node_modules\jest-worker\build\child.js:42:7) 
    at process.emit (events.js:180:13) at emit (internal/child_process.js:783:12)
    

    And the problem is I'm not sure what am I suppose to look for here. Any pointers would be greatly appreciated :)

    Input Code This is what my package.json look like atm. not sure if theres any package there that accidentally rely on babel 6...

    {
      "name": "Absent",
      "version": "0.1.0",
      "private": true,
      "devDependencies": {
        "babel-preset-react-native-stage-0": "^1.0.1",
        "jest": "^23.5.0",
        "jest-react-native": "^18.0.0",
        "react-test-renderer": "16.3.1"
      },
      "scripts": {
        "start": "react-native start",
        "android": "react-native run-android",
        "ios": "react-native run-ios",
        "test": "jest"
      },
      "jest": {
        "preset": "react-native"
      },
      "dependencies": {
        "@babel/core": "^7.0.0-rc.1",
        "@babel/preset-env": "^7.0.0-rc.1",
        "@babel/preset-react": "^7.0.0-rc.1",
        "jail-monkey": "^1.0.0",
        "prop-types": "^15.6.2",
        "react": "16.3.1",
        "react-native": "^0.55.4",
        "react-native-device-info": "^0.22.4",
        "react-native-elements": "^0.19.1",
        "react-native-firebase": "^4.3.8",
        "react-native-modal": "^6.5.0",
        "react-native-router-flux": "^4.0.1",
        "react-native-size-matters": "^0.1.2",
        "react-native-vector-icons": "^5.0.0",
        "react-redux": "^5.0.7",
        "redux": "^4.0.0",
        "redux-thunk": "^2.3.0"
      },
      "rnpm": {
        "assets": [
          "./assets/fonts/"
        ]
      }
    }
    

    Expected behavior/code For it to give beginner-friendly pointer to what is there to look for specifically

    Babel Configuration (.babelrc, package.json, cli command) babelrc looks like this right now:

    {
      "presets": ["@babel/preset-env","@babel/preset-react"],
      "env": {
        "development": {
          "plugins": [
            "transform-react-jsx-source"
          ]
        }
      }
    }
    

    Environment

    • Node/npm version: Node v9.11.1/npm 5.8.0
    • OS: Windows 10
    outdated 
    opened by rayj10 61
  • Allow more flexible file-based configuration while preventing .babelrcs from breaking things

    Allow more flexible file-based configuration while preventing .babelrcs from breaking things

    | Q                       | A | ------------------------ | --- | Fixed Issues? | Fixes #6766 | Patch: Bug Fix? | | Major: Breaking Change? | Y | Minor: New Feature? | Y | Tests Added + Pass? | | Documentation PR | | Any Dependency Changes? | | License | MIT

    Alright! Let's do this. This is my proposal for fixing the issues spelled out in #6766. This PR does the following:

    When searching for .babelrc files for a given file, stop at package.json

    Currently, Babel will look all the way up the directory hierarchy. This change prevents config files outside of a given package from potentially breaking your project's builds, which has been a problem occasionally. Also potentially frustrating for projects that integrate Babel, because they often allow users can optionally create .babelrc files, and if they haven't created one, but have one in a parent folder, it might find a bad config.

    The downside here is that monorepos like

    .babelrc
    packages/
      one/
        package.json
        index.js
      two/
        package.json
        index.js
    

    will fail to find the .babelrc. I think that is acceptable because there are alternatives:

    1. Have each module have their own .babelrc doing { extends: "../../.babelrc" } to explicitly load the config from a parent directory.
    2. See the next point.

    Adds support for a babel.config.js file along the lines of what Webpack does

    This PR adds a root option (that defaults to the working directory), that defines the conceptual "root" of your project. This location is used to automatically search for the config file babel.config.js. Optionally instead the user can specify configFile: "./foo.js" or whatever they'd like.

    The file itself behaves just like a .babelrc.js file would, but is not loaded relative to the individual file being compiled, and thus has more flexibility in what files it applies to. For instance, if users are symlinking in node_modules or something, it is currently impossible for a .babelrc to configure their builds any way other than by hard-coding their config into webpack.config.js, which is not great.

    With our new support for overrides it's now easy for users to have a single babel.config.js which could define the full build process for their project, when used alongside env.

    Only search for a .babelrc for files inside the root (which defaults to cwd) (unless the user opts out)

    Specifically excluding node_modules folders. Given the path of the file being compiled, if the path relative to the root contains node_modules, do not attempt to search for .babelrc files. This essentially has the effect of making .babelrc files only useful by default in a "root" package, which is essentially how most people used them.

    This (potentially combined with the previous babel.config.js) allows users to safely do

    test: /\.js$/,
    loader: "babel-loader",
    

    without risking loading a .babelrc from a node_modules that was not intented to apply to the current project. There are still other edge cases to compiling node_modules, but this was a particularly dangerous edge case, especially for things like babel-register that don't have a nice rules list like Webpack does.

    To allow people to opt into .babelrc usage, potentially for local development, this PR allows Babel's babelrc option to be an array, so users could do

    test: /\.js$/,
    loader: "babel-loader",
    options: {
      babelrc: [
        ".",
        "../some-linked-package"
      ]
    }
    

    which would also attempt to load .babelrc files for anything within that package. Alternatively

    options: {
      babelrc: [
        ".",
        "node_modules/foo"
      ]
    }
    

    if there was a specific package you wanted to load a config for, and were confident in its installation location.

    What this PR does not do

    Part of the reason I personally had so much back and forth on this issue is because it wasn't necessarily obvious what root should actually be responsible for. For instance, if Babel is passed a file that is not in the root, should it compile it at all? As is hopefully clear, my answer there was yes.

    One core thing that this PR does is that it leaves it up to the individual callers of Babel to decide what files should actually be passed to Babel in the first place. Alongside that, if you configure Babel with a custom root or configFile or babelrc array, the user will have to decide if those need to be replicated between Babel callers, because they are top-level Babel options, not ones that can be included inside a config file (for obvious reasons).

    What is left

    This PR has no tests, and an unoptimized implementation of a lot of stuff. It will need more work before it can land, but I want to post it now to get a feel for what everyone thinks.

    PR: Breaking Change :boom: PR: New Feature :rocket: Priority: High outdated 
    opened by loganfsmyth 61
  • Improve SystemJS import setters by reducing size

    Improve SystemJS import setters by reducing size

    💻

    • [ ] Would you like to work on this feature?

    What problem are you trying to solve?

    Generated modules take up very big file size due to very large file names in setter functions.

    import { CancelToken } from "@web-atoms/core/dist/core/types";
    import DISingleton from "@web-atoms/core/dist/di/DISingleton";
    import { Inject } from "@web-atoms/core/dist/di/Inject";
    import BaseUrl, { BaseService, Get, Path, Queries, Query } from "@web-atoms/core/dist/services/http/RestService";
    

    Generated SystemJS output for setters is

    return {
    setters: [function(_webAtomsCoreDistCoreTypes) {
                CancelToken = _webAtomsCoreDistCoreTypes.CancelToken
            }
            , function(_webAtomsCoreDistDiDISingleton) {
                DISingleton = _webAtomsCoreDistDiDISingleton.default
            }
            , function(_webAtomsCoreDistDiInject) {
                Inject = _webAtomsCoreDistDiInject.Inject
            }
            , function(_webAtomsCoreDistServicesHttpRestService) {
                BaseUrl = _webAtomsCoreDistServicesHttpRestService.default;
                BaseService = _webAtomsCoreDistServicesHttpRestService.BaseService;
                Get = _webAtomsCoreDistServicesHttpRestService.Get;
                Path = _webAtomsCoreDistServicesHttpRestService.Path;
                Query = _webAtomsCoreDistServicesHttpRestService.Query
            }
       ........
    

    Names are too big and no way to reduce the size. It would be nice to generate following code,

    Describe the solution you'd like

    Generated SystemJS output for setters is

    return {
    setters: [(_v) => {
                CancelToken = _v.CancelToken
            }
            , (_v) => {
                DISingleton = _v.default
            }
            , (_v) => {
                Inject = _v.Inject
            }
            , (_v) => {
                BaseUrl = _v.default;
                BaseService = _v.BaseService;
                Get = _v.Get;
                Path = _v.Path;
                Query = _v.Query
            }
       ........
    

    Describe alternatives you've considered

    I don't know if any alternative exists.

    Documentation, Adoption, Migration Strategy

    No response

    i: enhancement 
    opened by ackava 3
  • Add `annexb: false` parser option to disable Annex B

    Add `annexb: false` parser option to disable Annex B

    | Q                       | A | ------------------------ | --- | Fixed Issues? | Ref https://github.com/babel/babel/issues/10986 | Patch: Bug Fix? | | Major: Breaking Change? | | Minor: New Feature? | | Tests Added + Pass? | Yes | Documentation PR Link | | Any Dependency Changes? | | License | MIT

    This PR adds a parser option to disable parsing of Annex B features. Annex B syntax is not portable and developers are discouraged from using it. Additionally, some valid JS code becomes invalid when Annex B is enabled (if(a<!--b) {}).

    It's a parser option and not a plugin because plugins are opt-in, while we currently parse Annex B by default so this can only be opt-out. I would like to make it a plugin in Babel 8.

    Note that @babel/parser doesn't validate regex syntax, so this PR does not affect the various Annex B regex extensions.

    PR: New Feature :rocket: pkg: parser PR: Needs Docs 
    opened by nicolo-ribaudo 1
  • [Bug]: using `--watch` parameter ignores plugins defined in `.babelrc.js`

    [Bug]: using `--watch` parameter ignores plugins defined in `.babelrc.js`

    💻

    • [ ] Would you like to work on a fix?

    How are you using Babel?

    @babel/cli

    Input code

    const x = ["Hello %NAME%"];
    

    Configuration file name

    .babelrc.js

    Configuration

    import some_plugin from './some_plugin';
    export default {
            presets: [
    		[
    			preset_env,
    			{
    				modules: 'amd',
    				targets: {
    					node: true
    				}
    			}
    		]
    	],
    	plugins: [some_plugin],
    }
    

    Current and expected behavior

    expected

    const x = ["Hello John"];
    

    current:

    const x = ["Hello %NAME%"];
    

    if I execute it without --watch it correctly replace string %NAME% with "John" string, but if I add --watch it doesn't. I use my own plugin, implementing ArrrayExpression method in visitor object, that simply loops over node.elements and if it's StringLiteral I replace %name% placeholder with actual name.

    Environment

    System: OS: Windows 10 10.0.22621 Binaries: Node: 18.6.0 - C:\Program Files\nodejs\node.EXE npm: 8.15.0 - C:\Program Files\nodejs\npm.CMD npmPackages: @babel/cli: ^7.19.3 => 7.19.3 @babel/core: ^7.20.5 => 7.19.3 @babel/preset-env: ^7.20.2 => 7.19.4

    Possible solution

    No response

    Additional context

    No response

    i: needs triage 
    opened by GabrielGorta 2
  • [Bug]: @bable/generator printer.js Cannot read property 'line' of undefined

    [Bug]: @bable/generator printer.js Cannot read property 'line' of undefined

    💻

    • [X] Would you like to work on a fix?

    How are you using Babel?

    babel-loader (webpack)

    Input code

    Note: I don't know how to output the AST when building the package, therefore I cannot help to recreate. All I know is that loc.start is undefined.

    Configuration file name

    No response

    Configuration

    Config via webpack:

          {
            test: /\.(js|jsx)?$/,
            use: {
              loader: 'babel-loader',
              options: {
                presets: ['@babel/preset-env', '@babel/preset-react'],
                plugins: [
                  require('@babel/plugin-external-helpers'),
                  require('@babel/plugin-proposal-object-rest-spread'),
                  require('fast-async'),
                  ['@babel/plugin-proposal-class-properties', { loose: true }],
                  ['@babel/plugin-proposal-private-methods', { loose: true }],
                  [
                    '@babel/plugin-proposal-private-property-in-object',
                    { loose: true },
                  ],
                ],
              },
            },
            include: path.resolve(__dirname, 'src'),
            exclude: [/node_modules/],
          }
    

    Current and expected behavior

    At some point loc.start is undefined.

    Babel is failing all our package builds once we move to 7.19+. The current resolution is to keep babel at ~7.18

    Module build failed
    TypeError: Cannot read property 'line' of undefined
        at Generator.printJoin ([.......]/node_modules/@babel/generator/lib/printer.js:421:114)
    
    

    Environment

    Config that fails the build:

        OS: Linux 5.14 Ubuntu 20.04.5 LTS (Focal Fossa)
      Binaries:
        Node: 14.19.1 - ~/.nvm/versions/node/v14.19.1/bin/node
        npm: 6.14.16 - ~/.nvm/versions/node/v14.19.1/bin/npm
      npmPackages:
        @babel/cli: ^7.18.0 => 7.19.3 
        @babel/core: ^7.18.0 => 7.20.5 
        @babel/generator: ^7.18.0 => 7.20.5 
        @babel/helpers: ^7.18.0 => 7.20.6 
        @babel/plugin-external-helpers: ^7.18.0 => 7.18.6 
        @babel/plugin-proposal-class-properties: ^7.18.0 => 7.18.6 
        @babel/plugin-proposal-object-rest-spread: ^7.18.0 => 7.20.2 
        @babel/plugin-transform-modules-commonjs: ^7.18.0 => 7.19.6 
        @babel/plugin-transform-regenerator: ^7.18.0 => 7.20.5 
        @babel/preset-env: ^7.18.0 => 7.20.2 
        @babel/preset-react: ^7.18.0 => 7.18.6 
        @babel/register: ^7.18.0 => 7.18.9 
        babel-loader: ^8.2.3 => 8.3.0 
        eslint: ^8.6.0 => 8.30.0 
        webpack: ^5.65.0 => 5.75.0 
    
    
    

    Config where the build is ok:

      System:
        OS: Linux 5.14 Ubuntu 20.04.5 LTS (Focal Fossa)
      Binaries:
        Node: 14.19.1 - ~/.nvm/versions/node/v14.19.1/bin/node
        npm: 6.14.16 - ~/.nvm/versions/node/v14.19.1/bin/npm
      npmPackages:
        @babel/cli: ~7.18.0 => 7.18.10 
        @babel/core: ~7.18.0 => 7.18.13 
        @babel/generator: ~7.18.0 => 7.18.13 
        @babel/helpers: ~7.18.0 => 7.18.9 
        @babel/plugin-external-helpers: ~7.18.0 => 7.18.6 
        @babel/plugin-proposal-class-properties: ~7.18.0 => 7.18.6 
        @babel/plugin-proposal-object-rest-spread: ~7.18.0 => 7.18.9 
        @babel/plugin-transform-modules-commonjs: ^7.18.0 => 7.19.6 
        @babel/plugin-transform-regenerator: ~7.18.0 => 7.18.6 
        @babel/preset-env: ^7.18.0 => 7.20.2 
        @babel/preset-react: ~7.18.0 => 7.18.6 
        @babel/register: ~7.18.0 => 7.18.9 
        babel-loader: ^8.2.3 => 8.3.0 
        eslint: ^8.6.0 => 8.29.0 
        webpack: ^5.65.0 => 5.75.0 
    
    

    Possible solution

    change:

    newlineOpts.nextNodeStartLine = nextNode.loc?.start.line || 0;
    

    to:

    newlineOpts.nextNodeStartLine = nextNode.loc?.start?.line || 0;
    

    in https://github.com/babel/babel/blob/v7.20.6/packages/babel-generator/src/printer.ts

    Additional context

    similar to https://github.com/babel/babel/pull/15033

    i: bug 
    opened by doles 3
  • It is necessary to return the --quiet parameter to the babel-cli settings

    It is necessary to return the --quiet parameter to the babel-cli settings

    💻

    • [ ] Would you like to work on this feature?

    What problem are you trying to solve?

    I use a custom plugin to collect statistics about the source code and use babel-cli for this, but along with useful information, I get the entire source code of the bundle in the console

    Describe the solution you'd like

    It would be just great if the --quiet option was returned to babel-cli so that it doesn't output the transformed code to the console.

    In such situations, the output of the module source code is absolutely useless

    Describe alternatives you've considered

    I can't imagine what the alternative might be yet

    Documentation, Adoption, Migration Strategy

    No response

    i: enhancement i: needs triage 
    opened by budarin 6
  • [babel 8] Remove `block` argument from `Scope#rename`

    [babel 8] Remove `block` argument from `Scope#rename`

    | Q                       | A | ------------------------ | --- | Fixed Issues? | | Patch: Bug Fix? | | Major: Breaking Change? | | Minor: New Feature? | | Tests Added + Pass? | Yes | Documentation PR Link | | Any Dependency Changes? | | License | MIT

    I noticed in https://github.com/babel/babel/pull/15287 that this param isn't actually used.

    babel-8-dev → main 
    opened by nicolo-ribaudo 1
Releases(v7.20.11)
  • v7.20.11(Dec 23, 2022)

    v7.20.11 (2022-12-23)

    :eyeglasses: Spec Compliance

    • babel-helper-module-transforms, babel-plugin-proposal-dynamic-import, babel-plugin-transform-modules-amd, babel-plugin-transform-modules-commonjs, babel-plugin-transform-modules-systemjs

    :bug: Bug Fix

    • babel-plugin-transform-block-scoping

    Committers: 2

    Source code(tar.gz)
    Source code(zip)
  • v7.20.10(Dec 23, 2022)

  • v7.20.9(Dec 23, 2022)

  • v7.20.8(Dec 22, 2022)

  • v7.20.7(Dec 22, 2022)

    v7.20.7 (2022-12-22)

    Thanks @wsypower for your first PR!

    :eyeglasses: Spec Compliance

    • babel-helper-member-expression-to-functions, babel-helper-replace-supers, babel-plugin-proposal-class-properties, babel-plugin-transform-classes
    • babel-helpers, babel-plugin-proposal-class-properties, babel-plugin-transform-classes, babel-plugin-transform-object-super

    :bug: Bug Fix

    • babel-parser, babel-plugin-transform-typescript
    • babel-traverse
    • babel-plugin-transform-typescript, babel-traverse
    • babel-plugin-transform-block-scoping
    • babel-plugin-proposal-async-generator-functions, babel-preset-env
    • babel-generator, babel-plugin-proposal-optional-chaining
    • babel-plugin-transform-react-jsx, babel-types
    • babel-core, babel-helpers, babel-plugin-transform-computed-properties, babel-runtime-corejs2, babel-runtime-corejs3, babel-runtime
    • babel-helper-member-expression-to-functions, babel-helper-replace-supers, babel-plugin-proposal-class-properties, babel-plugin-transform-classes
    • babel-generator

    :nail_care: Polish

    • babel-plugin-transform-block-scoping, babel-traverse

    :house: Internal

    • babel-helper-define-map, babel-plugin-transform-property-mutators
    • babel-core, babel-plugin-proposal-class-properties, babel-plugin-transform-block-scoping, babel-plugin-transform-classes, babel-plugin-transform-destructuring, babel-plugin-transform-parameters, babel-plugin-transform-regenerator, babel-plugin-transform-runtime, babel-preset-env, babel-traverse

    :running_woman: Performance

    Committers: 6

    Source code(tar.gz)
    Source code(zip)
  • v7.20.6(Nov 28, 2022)

  • v7.20.5(Nov 28, 2022)

    v7.20.5 (2022-11-28)

    Thanks @davydof and @SuperSodaSea for your first PRs!

    :eyeglasses: Spec Compliance

    • babel-helpers, babel-plugin-transform-destructuring, babel-plugin-transform-modules-commonjs, babel-preset-env, babel-runtime-corejs2, babel-runtime-corejs3, babel-runtime, babel-traverse
    • babel-cli, babel-helpers, babel-plugin-proposal-class-properties, babel-plugin-proposal-class-static-block, babel-plugin-transform-classes, babel-plugin-transform-runtime, babel-preset-env
      • #15182 fix: apply toPropertyKey when defining class members (@JLHwung)
    • babel-helper-create-class-features-plugin, babel-helpers, babel-plugin-proposal-decorators, babel-plugin-proposal-private-property-in-object, babel-preset-env, babel-runtime-corejs2, babel-runtime-corejs3, babel-runtime

    :bug: Bug Fix

    • babel-parser
    • babel-helper-wrap-function, babel-preset-env, babel-traverse
    • babel-plugin-transform-arrow-functions, babel-plugin-transform-parameters, babel-traverse
      • #15163 fix: Throw error when compiling super() in arrow functions with default / rest parameters (@SuperSodaSea)
    • babel-helpers, babel-node, babel-plugin-proposal-async-generator-functions, babel-plugin-transform-regenerator, babel-preset-env, babel-runtime-corejs2, babel-runtime-corejs3, babel-runtime
    • babel-helper-create-regexp-features-plugin
    • babel-parser, babel-types
    • babel-generator
    • babel-plugin-transform-block-scoping, babel-traverse

    :nail_care: Polish

    • babel-generator
    • babel-plugin-transform-block-scoping

    :house: Internal

    Committers: 6

    Source code(tar.gz)
    Source code(zip)
  • v7.20.4(Nov 8, 2022)

  • v7.20.2(Nov 4, 2022)

    v7.20.2 (2022-11-04)

    :bug: Bug Fix

    • babel-core, babel-helper-create-class-features-plugin, babel-helper-module-transforms, babel-helper-plugin-utils, babel-helper-simple-access, babel-node, babel-plugin-transform-block-scoping, babel-plugin-transform-classes, babel-plugin-transform-react-constant-elements, babel-preset-env, babel-standalone, babel-types
    • babel-plugin-transform-typescript
      • #15121 fix: tsSatisfiesExpression check with different duplicated @babel/types versions (@liuxingbaoyu)
    • babel-parser
    • babel-generator
    • babel-plugin-proposal-decorators, babel-plugin-proposal-object-rest-spread, babel-plugin-transform-jscript
      • #15113 fix: wrap anonymous class expression within statement (@JLHwung)
    • babel-plugin-transform-destructuring

    Committers: 3

    Source code(tar.gz)
    Source code(zip)
  • v7.20.1(Nov 1, 2022)

    v7.20.1 (2022-11-01)

    Thanks @ptomato for your first pull request!

    :bug: Bug Fix

    • babel-plugin-proposal-async-generator-functions
    • babel-plugin-proposal-class-properties, babel-traverse
    • babel-helpers, babel-plugin-proposal-duplicate-named-capturing-groups-regex, babel-plugin-transform-named-capturing-groups-regex
      • #15092 Support indices.groups when compiling named groups in regexps (@ptomato)
    • babel-parser
    • babel-helpers, babel-plugin-proposal-duplicate-named-capturing-groups-regex
      • #15090 Handle multiple named groups in wrapRegExp replace() (@ptomato)
    • babel-plugin-transform-async-to-generator, babel-plugin-transform-parameters, babel-preset-env

    :house: Internal

    Committers: 5

    Source code(tar.gz)
    Source code(zip)
  • v7.20.0(Oct 27, 2022)

    v7.20.0 (2022-10-27)

    Thanks @oceandrama for your first PR!

    :rocket: New Feature

    • babel-compat-data, babel-helper-compilation-targets, babel-preset-env
    • babel-plugin-syntax-typescript
    • babel-generator, babel-parser, babel-plugin-syntax-explicit-resource-management, babel-plugin-transform-block-scoping, babel-plugin-transform-destructuring, babel-standalone, babel-traverse, babel-types
      • #14968 Parse using declaration (explicit resource management) (@JLHwung)
    • babel-generator, babel-parser, babel-plugin-syntax-import-reflection, babel-standalone, babel-types
    • babel-generator, babel-helper-skip-transparent-expression-wrappers, babel-parser, babel-plugin-transform-typescript, babel-traverse, babel-types

    :bug: Bug Fix

    :house: Internal

    • babel-helpers, babel-node, babel-plugin-proposal-async-generator-functions, babel-plugin-transform-regenerator, babel-preset-env, babel-runtime-corejs2, babel-runtime-corejs3, babel-runtime

    Committers: 5

    Source code(tar.gz)
    Source code(zip)
  • v7.19.6(Oct 20, 2022)

    v7.19.6 (2022-10-20)

    Thanks @lomirus for your first PR!

    :eyeglasses: Spec Compliance

    • babel-plugin-proposal-decorators
      • #15059 Ensure non-static decorators are applied when a class is instantiated. (@JLHwung)

    :bug: Bug Fix

    • babel-parser
    • babel-plugin-transform-runtime, babel-runtime-corejs2, babel-runtime-corejs3
      • #15060 Ensure @babel/runtime-corejs3/core-js/*.js can be imported on Node.js 17+ (@JLHwung)
    • babel-preset-env, babel-traverse

    :nail_care: Polish

    • babel-generator, babel-plugin-transform-flow-comments

    :memo: Documentation

    • babel-standalone

    :house: Internal

    :running_woman: Performance

    • babel-core, babel-standalone

    Committers: 4

    Source code(tar.gz)
    Source code(zip)
  • v7.19.5(Oct 10, 2022)

  • v7.19.4(Oct 10, 2022)

    v7.19.4 (2022-10-10)

    :eyeglasses: Spec Compliance

    • babel-plugin-transform-block-scoping
    • babel-helpers, babel-plugin-proposal-destructuring-private, babel-plugin-proposal-object-rest-spread, babel-plugin-transform-destructuring

    :bug: Bug Fix

    • babel-plugin-transform-react-jsx-development, babel-plugin-transform-typescript, babel-types
    • babel-plugin-transform-destructuring, babel-plugin-transform-react-constant-elements, babel-traverse
    • babel-helper-string-parser, babel-parser, babel-types
    • babel-generator, babel-parser
    • babel-plugin-transform-destructuring

    :nail_care: Polish

    • babel-cli, babel-core, babel-generator, babel-helper-create-class-features-plugin, babel-helper-fixtures, babel-helper-simple-access, babel-helper-transform-fixture-test-runner, babel-helpers, babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression, babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining, babel-plugin-external-helpers, babel-plugin-proposal-async-do-expressions, babel-plugin-proposal-async-generator-functions, babel-plugin-proposal-class-properties, babel-plugin-proposal-class-static-block, babel-plugin-proposal-decorators, babel-plugin-proposal-destructuring-private, babel-plugin-proposal-do-expressions, babel-plugin-proposal-duplicate-named-capturing-groups-regex, babel-plugin-proposal-dynamic-import, babel-plugin-proposal-function-bind, babel-plugin-proposal-function-sent, babel-plugin-proposal-json-strings, babel-plugin-proposal-logical-assignment-operators, babel-plugin-proposal-nullish-coalescing-operator, babel-plugin-proposal-object-rest-spread, babel-plugin-proposal-optional-chaining, babel-plugin-proposal-partial-application, babel-plugin-proposal-pipeline-operator, babel-plugin-proposal-private-methods, babel-plugin-proposal-private-property-in-object, babel-plugin-proposal-record-and-tuple, babel-plugin-syntax-typescript, babel-plugin-transform-arrow-functions, babel-plugin-transform-async-to-generator, babel-plugin-transform-block-scoping, babel-plugin-transform-classes, babel-plugin-transform-computed-properties, babel-plugin-transform-destructuring, babel-plugin-transform-duplicate-keys, babel-plugin-transform-exponentiation-operator, babel-plugin-transform-flow-comments, babel-plugin-transform-flow-strip-types, babel-plugin-transform-for-of, babel-plugin-transform-function-name, babel-plugin-transform-jscript, babel-plugin-transform-modules-amd, babel-plugin-transform-modules-commonjs, babel-plugin-transform-modules-systemjs, babel-plugin-transform-modules-umd, babel-plugin-transform-new-target, babel-plugin-transform-object-super, babel-plugin-transform-parameters, babel-plugin-transform-proto-to-assign, babel-plugin-transform-react-constant-elements, babel-plugin-transform-react-inline-elements, babel-plugin-transform-react-jsx-development, babel-plugin-transform-react-jsx-self, babel-plugin-transform-react-jsx, babel-plugin-transform-react-pure-annotations, babel-plugin-transform-regenerator, babel-plugin-transform-runtime, babel-plugin-transform-shorthand-properties, babel-plugin-transform-spread, babel-plugin-transform-strict-mode, babel-plugin-transform-template-literals, babel-plugin-transform-typeof-symbol, babel-plugin-transform-typescript, babel-plugin-transform-unicode-escapes, babel-preset-env, babel-preset-react, babel-preset-typescript, babel-runtime-corejs2, babel-runtime-corejs3, babel-runtime, babel-traverse
    • babel-cli, babel-core, babel-generator, babel-helper-fixtures, babel-helper-transform-fixture-test-runner, babel-plugin-transform-destructuring, babel-plugin-transform-modules-commonjs, babel-traverse

    :house: Internal

    Committers: 5

    Source code(tar.gz)
    Source code(zip)
  • v7.19.3(Sep 27, 2022)

    v7.19.3 (2022-09-27)

    :bug: Bug Fix

    :nail_care: Polish

    :house: Internal

    • babel-helper-compilation-targets, babel-helper-transform-fixture-test-runner, babel-parser, babel-preset-env, babel-traverse

    :microscope: Output optimization

    • babel-plugin-transform-typescript

    Committers: 4

    Source code(tar.gz)
    Source code(zip)
  • v7.19.2(Sep 15, 2022)

  • v7.19.1(Sep 14, 2022)

    v7.19.1 (2022-09-14)

    Thanks @hegemonic for your first PR!

    :bug: Bug Fix

    • babel-core
    • babel-traverse
    • Other
      • #14872 Use the built-in class fields and private methods rules in ESLint 8 (@JLHwung)
    • babel-parser
    • babel-plugin-transform-typescript

    Committers: 5

    Source code(tar.gz)
    Source code(zip)
  • v7.19.0(Sep 5, 2022)

    v7.19.0 (2022-09-05)

    Blog post: https://babeljs.io/blog/2022/09/05/7.19.0

    Thanks @SukkaW for your first PR!

    :eyeglasses: Spec Compliance

    • babel-parser
      • #14666 Support private name in decorator member expression (@JLHwung)
    • babel-helpers, babel-plugin-proposal-async-generator-functions, babel-preset-env, babel-runtime-corejs2, babel-runtime-corejs3, babel-runtime

    :rocket: New Feature

    • babel-generator, babel-helpers, babel-parser, babel-plugin-proposal-decorators, babel-plugin-syntax-decorators, babel-runtime-corejs2, babel-runtime-corejs3, babel-runtime
    • babel-parser
    • babel-generator, babel-parser
    • babel-standalone
    • babel-helper-create-regexp-features-plugin, babel-helpers, babel-plugin-proposal-duplicate-named-capturing-groups-regex, babel-plugin-transform-named-capturing-groups-regex, babel-standalone

    :bug: Bug Fix

    • babel-helper-function-name, babel-helper-wrap-function, babel-plugin-transform-classes
      • #14897 Fix: class transform should not drop method definition when key contains non-BMP characters (@JLHwung)
    • babel-plugin-transform-typescript
    • babel-parser
    • babel-helper-builder-react-jsx
      • #14886 Fix helper-builder-react-jsx compat with Babel 7.9 (@JLHwung)

    :nail_care: Polish

    :memo: Documentation

    :house: Internal

    • babel-standalone
    • babel-core, babel-parser, babel-traverse

    Committers: 6

    Source code(tar.gz)
    Source code(zip)
  • v7.18.13(Aug 22, 2022)

    v7.18.13 (2022-08-22)

    Thanks @djpohly for your first PR!

    :bug: Bug Fix

    :nail_care: Polish

    • babel-traverse

    :house: Internal

    Committers: 5

    Source code(tar.gz)
    Source code(zip)
  • v7.18.12(Aug 5, 2022)

  • v7.18.11(Aug 4, 2022)

  • v7.18.10(Aug 2, 2022)

    v7.18.10 (2022-08-01)

    :rocket: New Feature

    • babel-helper-string-parser, babel-types

    :bug: Bug Fix

    • babel-parser
      • #14817 fix(parser): allow TS declare readonly fields with initializers (@Josh-Cena)
    • babel-helper-string-parser, babel-parser
    • babel-plugin-transform-typescript
    • babel-plugin-transform-react-jsx
    • babel-generator
    • babel-helper-wrap-function, babel-plugin-transform-async-to-generator, babel-traverse

    :house: Internal

    :microscope: Output optimization

    • babel-plugin-proposal-export-default-from

    Committers: 10

    Source code(tar.gz)
    Source code(zip)
  • v7.18.9(Jul 18, 2022)

    v7.18.9 (2022-07-18)

    :bug: Bug Fix

    • babel-plugin-transform-modules-systemjs, babel-types
    • babel-generator

    :nail_care: Polish

    :house: Internal

    • babel-core, babel-helper-remap-async-to-generator, babel-helpers, babel-parser, babel-plugin-transform-block-scoping, babel-preset-env
    • babel-helper-create-class-features-plugin, babel-helper-member-expression-to-functions, babel-helper-remap-async-to-generator, babel-helper-replace-supers, babel-helper-wrap-function, babel-helpers, babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining, babel-plugin-proposal-decorators, babel-plugin-proposal-object-rest-spread, babel-plugin-proposal-optional-chaining, babel-plugin-transform-block-scoping, babel-plugin-transform-classes, babel-traverse, babel-types

    :running_woman: Performance

    Committers: 5

    Source code(tar.gz)
    Source code(zip)
  • v7.18.8(Jul 8, 2022)

    v7.18.8 (2022-07-08)

    Thanks @dbacarel for your first PR!

    :eyeglasses: Spec Compliance

    • babel-parser, babel-types

    :bug: Bug Fix

    • babel-plugin-transform-parameters
    • babel-plugin-transform-classes
    • babel-plugin-transform-for-of, babel-plugin-transform-spread, babel-traverse, babel-types
    • babel-helper-module-transforms, babel-plugin-transform-modules-commonjs

    :memo: Documentation

    :house: Internal

    • babel-types
    • Other
      • #14720 fix: support compiling monorepo on single-core CPU machines (@JLHwung)
    • babel-helper-fixtures, babel-parser

    :microscope: Output optimization

    • babel-plugin-transform-typescript

    Committers: 7

    Source code(tar.gz)
    Source code(zip)
  • v7.18.7(Jun 28, 2022)

  • v7.18.6(Jun 27, 2022)

    v7.18.6 (2022-06-27)

    :eyeglasses: Spec Compliance

    • babel-parser
    • babel-generator, babel-parser, babel-preset-env, babel-template

    :bug: Bug Fix

    • babel-helper-remap-async-to-generator, babel-plugin-proposal-async-generator-functions
    • babel-plugin-transform-parameters
    • babel-core
    • babel-core, babel-helper-check-duplicate-nodes, babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression, babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining, babel-plugin-proposal-destructuring-private, babel-plugin-proposal-optional-chaining, babel-plugin-transform-runtime

    :house: Internal

    • babel-standalone
    • Other
    • babel-generator, babel-types
    • babel-code-frame, babel-core, babel-generator, babel-helper-annotate-as-pure, babel-helper-builder-binary-assignment-operator-visitor, babel-helper-builder-react-jsx, babel-helper-check-duplicate-nodes, babel-helper-compilation-targets, babel-helper-create-class-features-plugin, babel-helper-create-regexp-features-plugin, babel-helper-define-map, babel-helper-explode-assignable-expression, babel-helper-fixtures, babel-helper-function-name, babel-helper-hoist-variables, babel-helper-member-expression-to-functions, babel-helper-module-imports, babel-helper-module-transforms, babel-helper-optimise-call-expression, babel-helper-plugin-test-runner, babel-helper-plugin-utils, babel-helper-remap-async-to-generator, babel-helper-replace-supers, babel-helper-simple-access, babel-helper-split-export-declaration, babel-helper-transform-fixture-test-runner, babel-helper-validator-option, babel-helper-wrap-function, babel-helpers, babel-highlight, babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining, babel-plugin-external-helpers, babel-plugin-proposal-async-generator-functions, babel-plugin-proposal-class-static-block, babel-plugin-proposal-decorators, babel-plugin-proposal-destructuring-private, babel-plugin-proposal-function-bind, babel-plugin-proposal-function-sent, babel-plugin-proposal-json-strings, babel-plugin-proposal-object-rest-spread, babel-plugin-proposal-optional-chaining, babel-plugin-proposal-partial-application, babel-plugin-proposal-pipeline-operator, babel-plugin-proposal-private-property-in-object, babel-plugin-proposal-record-and-tuple, babel-plugin-syntax-typescript, babel-plugin-transform-block-scoped-functions, babel-plugin-transform-block-scoping, babel-plugin-transform-classes, babel-plugin-transform-computed-properties, babel-plugin-transform-destructuring, babel-plugin-transform-duplicate-keys, babel-plugin-transform-exponentiation-operator, babel-plugin-transform-flow-comments, babel-plugin-transform-flow-strip-types, babel-plugin-transform-for-of, babel-plugin-transform-function-name, babel-plugin-transform-modules-amd, babel-plugin-transform-modules-commonjs, babel-plugin-transform-modules-systemjs, babel-plugin-transform-modules-umd, babel-plugin-transform-object-super, babel-plugin-transform-parameters, babel-plugin-transform-property-mutators, babel-plugin-transform-proto-to-assign, babel-plugin-transform-react-constant-elements, babel-plugin-transform-react-display-name, babel-plugin-transform-react-inline-elements, babel-plugin-transform-react-jsx-compat, babel-plugin-transform-react-jsx-source, babel-plugin-transform-react-jsx, babel-plugin-transform-runtime, babel-plugin-transform-typescript, babel-plugin-transform-unicode-escapes, babel-preset-env, babel-preset-typescript, babel-standalone, babel-template, babel-traverse, babel-types
    • babel-core, babel-helper-transform-fixture-test-runner, babel-plugin-transform-destructuring

    Committers: 6

    Source code(tar.gz)
    Source code(zip)
  • v7.18.5(Jun 13, 2022)

    v7.18.5 (2022-06-13)

    Thanks @underfin and @vasicvuk for your first PRs!

    :bug: Bug Fix

    • babel-plugin-transform-new-target
    • babel-plugin-transform-modules-systemjs

    :memo: Documentation

    :house: Internal

    :running_woman: Performance

    • babel-traverse

    Committers: 7

    Source code(tar.gz)
    Source code(zip)
  • v7.18.4(May 29, 2022)

    v7.18.4 (2022-05-29)

    :eyeglasses: Spec Compliance

    • babel-types
      • #14591 fix: remove TSDeclareFunction from ExportDefaultDeclaration (@JLHwung)

    :bug: Bug Fix

    • babel-plugin-transform-typescript
    • babel-parser
    • babel-helper-check-duplicate-nodes, babel-parser

    :house: Internal

    • babel-plugin-transform-block-scoping, babel-plugin-transform-classes, babel-plugin-transform-modules-systemjs

    Committers: 3

    Source code(tar.gz)
    Source code(zip)
  • v7.18.3(May 25, 2022)

    v7.18.3 (2022-05-25)

    Thanks @jlowcs and @TysonMN for your first PRs!

    :bug: Bug Fix

    • babel-runtime-corejs2, babel-runtime-corejs3, babel-runtime
      • #14588 Restore es5 compatibility in @babel/runtime/regenerator (@jlowcs)

    Committers: 2

    Source code(tar.gz)
    Source code(zip)
  • v7.18.2(May 25, 2022)

    v7.18.2 (2022-05-25)

    :bug: Bug Fix

    • babel-plugin-transform-template-literals
      • #14582 fix: skip template literal transform for TSLiteralType (@JLHwung)
    • babel-helpers
    • babel-runtime-corejs2, babel-runtime-corejs3, babel-runtime
    • babel-helper-environment-visitor, babel-helper-replace-supers, babel-plugin-proposal-class-properties, babel-plugin-proposal-decorators, babel-traverse, babel-types
      • #14371 environmentVisitor should skip decorator expressions (@JLHwung)

    :memo: Documentation

    :house: Internal

    Committers: 4

    Source code(tar.gz)
    Source code(zip)
Owner
Babel
The community maintained compiler for next generation JavaScript, today.
Babel
🤹‍♀️ Fake data generation in Swift

EasyFake Fake data generation in Swift ❤️ Support my apps ❤️ Push Hero - pure Swift native macOS application to test push notifications PastePal - Pas

Khoa 54 Oct 8, 2022
🌟 JavaScript Style Guide, with linter & automatic code fixer

JavaScript Standard Style Sponsored by English • Español (Latinoamérica) • Français • Bahasa Indonesia • Italiano (Italian) • 日本語 (Japanese) • 한국어 (Ko

Standard JS 27.8k Dec 31, 2022
Find and fix problems in your JavaScript code.

ESLint Website | Configuring | Rules | Contributing | Reporting Bugs | Code of Conduct | Twitter | Mailing List | Chat Room ESLint is a tool for ident

ESLint 22k Jan 8, 2023
❤️ JavaScript/TypeScript linter (ESLint wrapper) with great defaults

JavaScript/TypeScript linter (ESLint wrapper) with great defaults Opinionated but configurable ESLint wrapper with lots of goodies included. Enforces

XO 7k Jan 9, 2023
Pipeable javascript. Quickly filter, map, and reduce from the terminal

Pipeable JavaScript - another utility like sed/awk/wc... but with JS! Quickly filter, map and reduce from the command line. Features a streaming API.

Daniel St. Jules 410 Dec 10, 2022
Pretty diff to html javascript cli (diff2html-cli)

diff2html-cli Diff to Html generates pretty HTML diffs from unified and git diff output in your terminal Table of Contents Features Online Example Dis

Rodrigo Fernandes 404 Dec 19, 2022
Discord bot template written with javascript, include slash.

Getting Started This Discord Template with Slash is an advanced, easy to setup, free, and unbranded Discord bot. Official Discord Server If you need h

null 8 Aug 22, 2021
🐠 Babel is a compiler for writing next generation JavaScript.

The compiler for writing next generation JavaScript. Supporting Babel Babel (pronounced "babble") is a community-driven project used by many companies

Babel 41.8k Jan 8, 2023
Babel-plugin-amd-checker - Module format checking plugin for Babel usable in both Node.js the web browser environments.

babel-plugin-amd-checker A Babel plugin to check the format of your modules when compiling your code using Babel. This plugin allows you to abort the

Ferdinand Prantl 1 Jan 6, 2022
Babel plugin and helper functions for interoperation between Node.js native ESM and Babel ESM

babel-plugin-node-cjs-interop and node-cjs-interop: fix the default import interoperability issue in Node.js The problem to solve Consider the followi

Masaki Hara 15 Nov 6, 2022
JIT Compiler is a open source online code compiler. You can run more than 40+ most popular programming languages in your browser just-in-time using jitcompiler.

JIT Compiler is a open source online code compiler. You can run more than 40+ most popular programming languages in your browser just-in-time using jitcompiler.

Rajkumar Dusad 36 Jan 5, 2023
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
Traceur is a JavaScript.next-to-JavaScript-of-today compiler

What is Traceur? Traceur is a JavaScript.next-to-JavaScript-of-today compiler that allows you to use features from the future today. Traceur supports

Google 8.2k Dec 31, 2022
The next generation Javascript WYSIWYG HTML Editor.

Froala Editor V3 Froala WYSIWYG HTML Editor is one of the most powerful JavaScript rich text editors ever. Slim - only add the plugins that you need (

Froala 5k Jan 1, 2023
A next-generation code testing stack for JavaScript.

Intern Software testing for humans ⚠️ This documentation is for the development version of Intern. For the current release version, go here. Intern is

Intern: next-gen JavaScript testing 4.4k Jan 7, 2023
hell.js 🚀 🚀 A JavaScript framework for the 🔥 next 🔥 generation. 🚀

hell.js ?? ?? A JavaScript framework for the ?? next ?? generation. ??

null 31 Oct 3, 2022
Transmute one JavaScript string into another by way of mutating its AST. Powered by babel and recast.

equivalent-exchange Transmute one JavaScript string into another by way of mutating its AST. Powered by babel and recast. Features Can parse code usin

Lily Scott 51 Jul 9, 2022