Babel syntax plugin that enables parsing of trailing commas in function parameters and function calls
npx @tessl/cli install tessl/npm-babel-plugin-syntax-trailing-function-commas@6.22.0Babel syntax plugin that enables parsing of trailing commas in function parameters and function calls. This is a syntax-only plugin that allows the Babel parser to recognize ES2017 trailing function comma syntax without transforming the code. This allows developers to write cleaner, more maintainable code by supporting trailing commas in function contexts, which simplifies diffs when adding or removing function parameters.
npm install --save-dev babel-plugin-syntax-trailing-function-commasThis plugin is consumed by Babel's plugin system and does not require direct imports in your code. The plugin itself exports a factory function:
// Direct access to plugin (for advanced usage)
import syntaxTrailingFunctionCommas from "babel-plugin-syntax-trailing-function-commas";For CommonJS:
const syntaxTrailingFunctionCommas = require("babel-plugin-syntax-trailing-function-commas");{
"plugins": ["syntax-trailing-function-commas"]
}babel --plugins syntax-trailing-function-commas script.jsrequire("babel-core").transform("code", {
plugins: ["syntax-trailing-function-commas"]
});Once enabled, the plugin allows parsing of trailing commas in various contexts:
// Function declarations
function clownPuppiesEverywhere(
param1,
param2, // <- Trailing comma now allowed
) {
return 'magic';
}
// Function calls
clownPuppiesEverywhere(
'foo',
'bar', // <- Trailing comma now allowed
);
// Arrow functions
const arrow = (
a,
b, // <- Trailing comma now allowed
) => a + b;
// Constructor calls
new Date(
2023,
11,
25, // <- Trailing comma now allowed
);The main export is a factory function that returns a Babel plugin configuration object.
/**
* Creates a Babel plugin that enables parsing of trailing function commas
* @returns {Object} Babel plugin configuration object
*/
export default function(): BabelPluginConfig;
interface BabelPluginConfig {
/** Hook to manipulate parser options */
manipulateOptions(opts: any, parserOpts: ParserOptions): void;
}
interface ParserOptions {
/** Array of parser plugins to enable */
plugins: string[];
}The plugin works by adding the trailingFunctionCommas parser option to Babel's parser configuration.
/**
* Babel plugin hook that modifies parser options to enable trailing function comma parsing
* @param opts - Babel transformation options (unused by this plugin)
* @param parserOpts - Parser options object that will be modified by adding "trailingFunctionCommas" to the plugins array
*/
manipulateOptions(opts: any, parserOpts: ParserOptions): void;The manipulateOptions method:
"trailingFunctionCommas" to the parserOpts.plugins arrayinterface BabelPluginConfig {
/** Hook called during Babel's option processing phase */
manipulateOptions(opts: any, parserOpts: ParserOptions): void;
}
interface ParserOptions {
/** Array of parser plugin names to enable specific syntax features */
plugins: string[];
}