From 81acd878a5622d334ce50f929d1642fc2c59e487 Mon Sep 17 00:00:00 2001 From: sebastien Date: Thu, 11 Apr 2024 16:22:23 +0200 Subject: [PATCH] showcase plugin client API setup --- .../package.json | 17 +++++++++++++++-- .../src/client/index.ts | 8 ++++++++ .../tsconfig.client.json | 16 ++++++++++++++++ .../tsconfig.json | 3 ++- .../src/theme/Showcase/index.tsx | 3 +++ yarn.lock | 17 +---------------- 6 files changed, 45 insertions(+), 19 deletions(-) create mode 100644 packages/docusaurus-plugin-content-showcase/src/client/index.ts create mode 100644 packages/docusaurus-plugin-content-showcase/tsconfig.client.json diff --git a/packages/docusaurus-plugin-content-showcase/package.json b/packages/docusaurus-plugin-content-showcase/package.json index c39e3e955f..fee1f5c8cf 100644 --- a/packages/docusaurus-plugin-content-showcase/package.json +++ b/packages/docusaurus-plugin-content-showcase/package.json @@ -3,10 +3,23 @@ "version": "3.2.1", "description": "Showcase plugin for Docusaurus.", "main": "lib/index.js", + "sideEffects": false, + "exports": { + "./lib/*": "./lib/*", + "./src/*": "./src/*", + "./client": { + "type": "./lib/client/index.d.ts", + "default": "./lib/client/index.js" + }, + ".": { + "types": "./src/plugin-content-showcase.d.ts", + "default": "./lib/index.js" + } + }, "types": "src/plugin-content-showcase.d.ts", "scripts": { - "build": "tsc", - "watch": "tsc --watch" + "build": "tsc --build", + "watch": "tsc --build --watch" }, "publishConfig": { "access": "public" diff --git a/packages/docusaurus-plugin-content-showcase/src/client/index.ts b/packages/docusaurus-plugin-content-showcase/src/client/index.ts new file mode 100644 index 0000000000..da14bdafcd --- /dev/null +++ b/packages/docusaurus-plugin-content-showcase/src/client/index.ts @@ -0,0 +1,8 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +export const clientShowcase = 42; diff --git a/packages/docusaurus-plugin-content-showcase/tsconfig.client.json b/packages/docusaurus-plugin-content-showcase/tsconfig.client.json new file mode 100644 index 0000000000..5d06aa818c --- /dev/null +++ b/packages/docusaurus-plugin-content-showcase/tsconfig.client.json @@ -0,0 +1,16 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "noEmit": false, + "composite": true, + "incremental": true, + "tsBuildInfoFile": "./lib/.tsbuildinfo-client", + "moduleResolution": "bundler", + "module": "esnext", + "target": "esnext", + "rootDir": "src", + "outDir": "lib" + }, + "include": ["src/client", "src/*.d.ts"], + "exclude": ["**/__tests__/**"] +} diff --git a/packages/docusaurus-plugin-content-showcase/tsconfig.json b/packages/docusaurus-plugin-content-showcase/tsconfig.json index e16d5c2c5d..3936df64b7 100644 --- a/packages/docusaurus-plugin-content-showcase/tsconfig.json +++ b/packages/docusaurus-plugin-content-showcase/tsconfig.json @@ -1,5 +1,6 @@ { "extends": "../../tsconfig.json", + "references": [{"path": "./tsconfig.client.json"}], "compilerOptions": { "noEmit": false, "incremental": true, @@ -8,5 +9,5 @@ "outDir": "lib" }, "include": ["src"], - "exclude": ["**/__tests__/**"] + "exclude": ["src/client", "**/__tests__/**"] } diff --git a/packages/docusaurus-theme-classic/src/theme/Showcase/index.tsx b/packages/docusaurus-theme-classic/src/theme/Showcase/index.tsx index a80e6c7050..834526460f 100644 --- a/packages/docusaurus-theme-classic/src/theme/Showcase/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Showcase/index.tsx @@ -12,6 +12,7 @@ import {useHistory, useLocation} from 'react-router-dom'; import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment'; import Translate, {translate} from '@docusaurus/Translate'; import {usePluralForm} from '@docusaurus/theme-common'; +import {clientShowcase} from '@docusaurus/plugin-content-showcase/client'; import type {User, Props} from '@theme/Showcase'; import Layout from '@theme/Layout'; import Heading from '@theme/Heading'; @@ -447,6 +448,8 @@ export default function Showcase(props: Props): JSX.Element { return ( + {/* eslint-disable-next-line @docusaurus/prefer-docusaurus-heading */} +

Client showcase API: {clientShowcase}

{JSON.stringify(props)}
diff --git a/yarn.lock b/yarn.lock index 605ac089e9..ba16cee5a1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13736,7 +13736,7 @@ react-error-overlay@^6.0.11: resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== -react-fast-compare@^3.0.1, react-fast-compare@^3.2.0: +react-fast-compare@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== @@ -13801,14 +13801,6 @@ react-medium-image-zoom@^5.1.6: resolved "https://registry.yarnpkg.com/react-medium-image-zoom/-/react-medium-image-zoom-5.1.6.tgz#1ec9dabbc88da664f3aacc03a93cf79cb1b70a23" integrity sha512-0QolPce1vNJsF5HKrGkU1UT6kLNvY9EOnLBqz++LlVnBQduaHLkJlY73ayj3SxY09XWRrnxKDMTHPDkrQYdREw== -react-popper@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.3.0.tgz#17891c620e1320dce318bad9fede46a5f71c70ba" - integrity sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q== - dependencies: - react-fast-compare "^3.0.1" - warning "^4.0.2" - react-router-config@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988" @@ -16516,13 +16508,6 @@ walker@^1.0.8: dependencies: makeerror "1.0.12" -warning@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" - integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== - dependencies: - loose-envify "^1.0.0" - watchpack@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d"