Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(rspack-provider): support security.checkSyntax in Rspack #3685

Merged
merged 9 commits into from
May 24, 2023

Conversation

9aoy
Copy link
Contributor

@9aoy 9aoy commented May 15, 2023

Summary

related issue: web-infra-dev/rspack#3147

related issue: #3634

🤖 Generated by Copilot at 9848c5c

This pull request refactors the checkSyntax plugin to make it reusable across different builder packages. It moves the plugin and its dependencies from @modern-js/builder-webpack-provider to @modern-js/builder-shared, and updates the imports and types accordingly. It also adds the checkSyntax option to the security config for Rspack, which is a tool for building React Server Components. The option allows users to enable or disable the syntax analysis feature for the output files.

Details

🤖 Generated by Copilot at 9848c5c

  • Add checkSyntax plugin to support syntax checking for React Server Components (link, link, link, link, link, link, link, link, link, link, link, link, link, link, link, link, link, link, link, link, link, link, link, link, link)
  • Move checkSyntax plugin from packages/builder/builder-webpack-provider/src/webpackPlugins/CheckSyntaxPlugin to packages/builder/builder-shared/src/plugins/CheckSyntaxPlugin and update imports and types accordingly (link, link, link, link, link, link, link, link, link)
  • Add checkSyntax option to the default security config for Rspack in packages/builder/builder-rspack-provider/src/config/defaults.ts and apply the plugin to the default plugins for Rspack in packages/builder/builder-rspack-provider/src/shared/plugin.ts (link, link)
  • Update the type definition for the security config for Rspack in packages/builder/builder-rspack-provider/src/types/config/security.ts to import the shared security config from @modern-js/builder-shared (link)
  • Add dependencies for the checkSyntax plugin to the @modern-js/builder-shared package in packages/builder/builder-shared/package.json (link, link)
  • Modify the apply method of the checkSyntax plugin in packages/builder/builder-shared/src/plugins/CheckSyntaxPlugin/index.ts to make it compatible with both webpack and Rspack (link)
  • Export the checkSyntax plugin from the @modern-js/builder-shared package in packages/builder/builder-shared/src/plugins/index.ts (link)
  • Add a mock plugin for checkSyntax to the mockBuilderPlugins helper function in packages/builder/builder-shared/src/test-stub/helper.ts (link)
  • Make the security property of the shared normalized config type required in packages/builder/builder-shared/src/types/config/index.ts (link)
  • Add a new type definition for the checkSyntax option in packages/builder/builder-shared/src/types/config/security.ts and add the option to the shared security config interface (link, link)
  • Add the checkSyntax plugin to the plugins type in packages/builder/builder-shared/src/types/plugin.ts (link)
  • Remove dependencies for the checkSyntax plugin from the @modern-js/builder-webpack-provider package in packages/builder/builder-webpack-provider/package.json (link, link, link)

Related Issue

Checklist

  • I have added changeset via pnpm run change.
  • I have updated the documentation.
  • I have added tests to cover my changes.

@changeset-bot
Copy link

changeset-bot bot commented May 15, 2023

🦋 Changeset detected

Latest commit: a558145

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 208 packages
Name Type
@modern-js/builder-rspack-provider Patch
@modern-js/builder-shared Patch
@modern-js/builder Patch
@modern-js/doc-core Patch
@modern-js/builder-plugin-node-polyfill Patch
@modern-js/builder-plugin-stylus Patch
@modern-js/app-tools Patch
@e2e/builder Patch
@modern-js/core Patch
@modern-js/plugin-storybook Patch
@modern-js/plugin-swc Patch
@modern-js/builder-webpack-provider Patch
@modern-js/builder-plugin-esbuild Patch
@modern-js/builder-plugin-swc-base Patch
@modern-js/builder-plugin-swc Patch
@e2e/webpack-builder-image-compress Patch
@e2e/builder-plugin-import Patch
@e2e/webpack-builder-css-modules Patch
@modern-js/plugin-module-doc Patch
@modern-js/doc-tools Patch
@modern-js/builder-plugin-image-compress Patch
@modern-js/module-tools Patch
@modern-js/plugin-bff Patch
@modern-js/plugin-ssg Patch
@modern-js/plugin-tailwindcss Patch
@modern-js/plugin-garfish Patch
@modern-js/plugin-router-v5 Patch
@modern-js/runtime Patch
@modern-js/plugin-express Patch
@modern-js/plugin-koa Patch
@modern-js/plugin-polyfill Patch
@modern-js/plugin-server Patch
@modern-js/plugin-worker Patch
tests Patch
@integration-test/alias-set Patch
api-service-koa Patch
app-docmuent Patch
integration-dev-asset-prefix Patch
async-entry-test Patch
bff-express Patch
bff-koa Patch
integration-register-builder-plugins Patch
builder-rspack Patch
integration-clean-dist-path Patch
integration-copy-public-html Patch
composes-basic Patch
composes-external Patch
dev-module Patch
global-module Patch
prod-module Patch
css Patch
antd-less Patch
bad-nested-npm-import Patch
bad-npm-import Patch
base-import Patch
disable-source-map Patch
exclude-less Patch
exclude-sass Patch
import-common-css Patch
less-import Patch
less-inline-js Patch
less-npm-import Patch
multi-css Patch
multi-less Patch
multi-sass Patch
nested-npm-import Patch
npm-import Patch
integration-tailwindcss-v2 Patch
integration-tailwindcss-v3 Patch
twin-macro-v2 Patch
twin-macro-v3 Patch
css-modules Patch
integration-custom-render Patch
integration-custom-template Patch
dev-server Patch
legacy-esbuild-minify-js Patch
esbuild-transform-and-minify Patch
@cypress-test/garfish-dashboard-router-v6 Patch
@cypress-test/garfish-dashboard Patch
@cypress-test/garfish-main-router-v6 Patch
@cypress-test/garfish-main-rspack Patch
@cypress-test/garfish-main Patch
@cypress-test/garfish-table Patch
integration-config-async-config-test Patch
integration-basic-local-config Patch
integration-config-function-params Patch
integration-local-config-function Patch
tmp Patch
nonce Patch
routes Patch
file-based-router Patch
use-loader Patch
select-mul-entry-test Patch
select-one-entry-test Patch
server-config Patch
server-middleware Patch
server-hook-reqeust Patch
server-hook-response Patch
server-hook-router Patch
@integration-test/server-hook-reqeust Patch
server-prod Patch
ssg-fixtures-simple Patch
ssg-fixtures-web-server Patch
ssr-base-json-test Patch
ssr-base-test Patch
init Patch
ssr-streaming-test Patch
swc-minify-css Patch
swc-minify-js Patch
transform-fail Patch
tmp-dir Patch
worker-test Patch
integration-module-doc Patch
@modern-js/builder-doc Patch
@modern-js/doc-tools-doc Patch
@modern-js/main-doc Patch
@modern-js/module-tools-docs Patch
simple-doc-template Patch
i18n-doc Patch
doc-plugin Patch
simple-doc-production Patch
@modern-js/babel-preset-app Patch
@modern-js/babel-preset-base Patch
@modern-js/babel-preset-lib Patch
@modern-js/doc-plugin-auto-sidebar Patch
@modern-js/doc-plugin-medium-zoom Patch
@modern-js/plugin-changeset Patch
@modern-js/plugin-data-loader Patch
@modern-js/plugin-i18n Patch
@modern-js/plugin-lint Patch
@modern-js/plugin-proxy Patch
@modern-js/plugin-testing Patch
@modern-js/new-action Patch
@modern-js-app/eslint-config Patch
@modern-js/eslint-config Patch
@modern-js/tsconfig Patch
@modern-js/bff-core Patch
@modern-js/bff-runtime Patch
@modern-js/server-core Patch
@modern-js/create-request Patch
@modern-js/prod-server Patch
@modern-js/server Patch
@modern-js/server-utils Patch
@modern-js/plugin-module-babel Patch
@modern-js/plugin-module-banner Patch
@modern-js/plugin-module-import Patch
@modern-js/plugin-module-main-fields Patch
@modern-js/plugin-module-node-polyfill Patch
@modern-js/plugin-module-polyfill Patch
@modern-js/plugin-module-target Patch
@modern-js/monorepo-tools Patch
@modern-js/create Patch
@modern-js/e2e Patch
@modern-js/node-bundle-require Patch
@modern-js/plugin Patch
@modern-js/remark-container Patch
@modern-js/types Patch
@modern-js/upgrade Patch
@modern-js/utils Patch
@modern-js/babel-compiler Patch
@scripts/build Patch
@scripts/check-changeset Patch
@scripts/codemod Patch
@scripts/jest-config Patch
@scripts/lint-package-json Patch
@scripts/prebundle Patch
@scripts/update-codesmith Patch
@scripts/vitest-config Patch
integration-asset-prefix Patch
integration-builder-plugins Patch
integration-copy-assets Patch
doc-tools Patch
esbuild-integration Patch
integration-load-config Patch
runtime Patch
entry Patch
ssg Patch
ssr Patch
swc-integration Patch
@e2e/webpack-builder-import-antd-v4 Patch
@e2e/webpack-builder-import-antd-v5 Patch
@e2e/webpack-builder-node-polyfill Patch
@modern-js/generator-common Patch
@modern-js/generator-plugin Patch
@modern-js/generator-utils Patch
@modern-js/bff-generator Patch
@modern-js/dependence-generator Patch
@modern-js/doc-generator Patch
@modern-js/entry-generator Patch
@modern-js/generator-generator Patch
@modern-js/module-generator Patch
@modern-js/module-test-generator Patch
@modern-js/monorepo-generator Patch
@modern-js/mwa-generator Patch
@modern-js/router-v5-generator Patch
@modern-js/rspack-generator Patch
@modern-js/ssg-generator Patch
@modern-js/storybook-generator Patch
@modern-js/test-generator Patch
@modern-js/upgrade-generator Patch
@modern-js/generator-plugin-plugin Patch
@modern-js/repo-generator Patch
@modern-js/generator-cases Patch
@modern-js/base-generator Patch
@modern-js/changeset-generator Patch
@modern-js/packages-generator Patch
@modern-js/server-generator Patch
@modern-js/tailwindcss-generator Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@9aoy 9aoy marked this pull request as draft May 15, 2023 07:49
@codecov
Copy link

codecov bot commented May 15, 2023

Codecov Report

Patch coverage has no change and project coverage change: +0.57 🎉

Comparison is base (99693f0) 57.59% compared to head (a558145) 58.17%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3685      +/-   ##
==========================================
+ Coverage   57.59%   58.17%   +0.57%     
==========================================
  Files         672      643      -29     
  Lines       17794    17190     -604     
  Branches     3876     3751     -125     
==========================================
- Hits        10249    10000     -249     
+ Misses       6934     6589     -345     
+ Partials      611      601      -10     

see 267 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Do you have feedback about the report comment? Let us know in this issue.

@9aoy 9aoy marked this pull request as ready for review May 23, 2023 11:17
@chenjiahan chenjiahan merged commit 863f8df into main May 24, 2023
@chenjiahan chenjiahan deleted the feat/rspack-check-syntax branch May 24, 2023 02:46
@caohuilin caohuilin mentioned this pull request May 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants