From d9a4a0177ce33a4adb284a13588fa25550693f48 Mon Sep 17 00:00:00 2001 From: Hiroshi Urabe Date: Sat, 14 May 2022 18:25:51 +0900 Subject: [PATCH 1/3] convert file extension in block.json --- packages/scripts/config/webpack.config.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/scripts/config/webpack.config.js b/packages/scripts/config/webpack.config.js index d03e6fe18646f2..bfb4b9be070bf7 100644 --- a/packages/scripts/config/webpack.config.js +++ b/packages/scripts/config/webpack.config.js @@ -235,6 +235,24 @@ const config = { from: copyWebpackPatterns, context: process.env.WP_SRC_DIRECTORY, noErrorOnMissing: true, + transform( content, absoluteFrom ) { + if ( basename( absoluteFrom ) === 'block.json' ) { + const blockJson = JSON.parse( content.toString() ); + [ 'viewScript', 'script', 'editorScript' ].forEach( + ( key ) => { + if ( blockJson[ key ] ) { + blockJson[ key ] = blockJson[ + key + ].replace( /\.(j|t)sx?$/, '.js' ); + } + } + ); + + return JSON.stringify( blockJson, null, 2 ); + } + + return content; + }, }, ], } ), From 49194e2106b42327cd6ce1b1c92fc2c2a5013765 Mon Sep 17 00:00:00 2001 From: Hiroshi Urabe Date: Sat, 21 May 2022 21:09:08 +0900 Subject: [PATCH 2/3] support for multiple entries. --- packages/scripts/config/webpack.config.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/packages/scripts/config/webpack.config.js b/packages/scripts/config/webpack.config.js index bfb4b9be070bf7..c293d720fb6328 100644 --- a/packages/scripts/config/webpack.config.js +++ b/packages/scripts/config/webpack.config.js @@ -236,14 +236,24 @@ const config = { context: process.env.WP_SRC_DIRECTORY, noErrorOnMissing: true, transform( content, absoluteFrom ) { + const convertExtension = ( path ) => { + return path.replace( /\.(j|t)sx?$/, '.js' ); + }; + if ( basename( absoluteFrom ) === 'block.json' ) { const blockJson = JSON.parse( content.toString() ); [ 'viewScript', 'script', 'editorScript' ].forEach( ( key ) => { - if ( blockJson[ key ] ) { - blockJson[ key ] = blockJson[ - key - ].replace( /\.(j|t)sx?$/, '.js' ); + if ( Array.isArray( blockJson[ key ] ) ) { + blockJson[ key ] = blockJson[ key ].map( + convertExtension + ); + } else if ( + typeof blockJson[ key ] === 'string' + ) { + blockJson[ key ] = convertExtension( + blockJson[ key ] + ); } } ); From e768ee28fd492b71404d81bc3922c7a0d0237752 Mon Sep 17 00:00:00 2001 From: Hiroshi Urabe Date: Sat, 21 May 2022 23:59:48 +0900 Subject: [PATCH 3/3] add changelog. --- packages/scripts/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/scripts/CHANGELOG.md b/packages/scripts/CHANGELOG.md index 45e0edb0064695..e2b5da6df08821 100644 --- a/packages/scripts/CHANGELOG.md +++ b/packages/scripts/CHANGELOG.md @@ -5,6 +5,7 @@ ### New Feature - Enable by default code formatting for JSON files in the `format` command ([#40994](https://github.com/WordPress/gutenberg/pull/40994)). You can opt-out of this behavior by providing a custom file matcher, example: `wp-scripts format src/**/*.js`. +- Support tsx files in `viewScript`, `script`, `editorScript` ([#41068](https://github.com/WordPress/gutenberg/pull/41068)). ## 23.0.0 (2022-05-04)