From 005c6846e0ce2f3bdb3a4e981c3dda622666a8ac Mon Sep 17 00:00:00 2001 From: endiliey Date: Sun, 1 Dec 2019 21:33:02 +0700 Subject: [PATCH 1/4] fix(v2): fix plugin-ideal-image breaking website (exports not defined) --- .../@types/react-ideal-image.d.ts | 28 ------------------- .../copyUntypedFiles.js | 19 +++++++++++++ .../package.json | 3 +- .../src/index.ts | 4 +-- .../theme/{IdealImage.tsx => IdealImage.js} | 8 ++---- .../src/types.ts | 4 --- .../tsconfig.json | 2 -- 7 files changed, 26 insertions(+), 42 deletions(-) delete mode 100644 packages/docusaurus-plugin-ideal-image/@types/react-ideal-image.d.ts create mode 100644 packages/docusaurus-plugin-ideal-image/copyUntypedFiles.js rename packages/docusaurus-plugin-ideal-image/src/theme/{IdealImage.tsx => IdealImage.js} (81%) diff --git a/packages/docusaurus-plugin-ideal-image/@types/react-ideal-image.d.ts b/packages/docusaurus-plugin-ideal-image/@types/react-ideal-image.d.ts deleted file mode 100644 index 057611f3e4bc..000000000000 --- a/packages/docusaurus-plugin-ideal-image/@types/react-ideal-image.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -declare module '@endiliey/react-ideal-image' { - interface SrcType { - width: number; - src?: string; - size?: number; - format?: 'webp' | 'jpeg'; - } - - export interface IdealImageProps { - alt?: string; - className?: string; - height: number; - width: number; - placeholder: {color: string} | {lqip: string}; - src: string; - srcSet: SrcType[]; - } - - const IdealImage: React.ComponentType; - export default IdealImage; -} diff --git a/packages/docusaurus-plugin-ideal-image/copyUntypedFiles.js b/packages/docusaurus-plugin-ideal-image/copyUntypedFiles.js new file mode 100644 index 000000000000..6bf16e395611 --- /dev/null +++ b/packages/docusaurus-plugin-ideal-image/copyUntypedFiles.js @@ -0,0 +1,19 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +const path = require('path'); +const fs = require('fs-extra'); + +/** + * Copy all untyped and static assets files to lib. + */ +const srcDir = path.resolve(__dirname, 'src'); +const libDir = path.resolve(__dirname, 'lib'); +fs.copySync(srcDir, libDir, { + filter(filepath) { + return !/__tests__/.test(filepath) && !/\.ts$/.test(filepath); + }, +}); diff --git a/packages/docusaurus-plugin-ideal-image/package.json b/packages/docusaurus-plugin-ideal-image/package.json index 633864abbf22..8b504be26fca 100644 --- a/packages/docusaurus-plugin-ideal-image/package.json +++ b/packages/docusaurus-plugin-ideal-image/package.json @@ -4,7 +4,7 @@ "description": "Docusaurus Plugin to generate an almost ideal image (responsive, lazy-loading, and low quality placeholder)", "main": "lib/index.js", "scripts": { - "tsc": "tsc" + "tsc": "tsc && node copyUntypedFiles.js" }, "publishConfig": { "access": "public" @@ -17,6 +17,7 @@ "@endiliey/lqip-loader": "^3.0.2", "@endiliey/react-ideal-image": "^0.0.11", "@endiliey/responsive-loader": "^1.3.2", + "fs-extra": "^8.1.0", "react-waypoint": "^9.0.2", "sharp": "^0.22.1" }, diff --git a/packages/docusaurus-plugin-ideal-image/src/index.ts b/packages/docusaurus-plugin-ideal-image/src/index.ts index f35d291aecc2..4a5ae9eec55b 100644 --- a/packages/docusaurus-plugin-ideal-image/src/index.ts +++ b/packages/docusaurus-plugin-ideal-image/src/index.ts @@ -10,7 +10,7 @@ import {Configuration} from 'webpack'; import path from 'path'; -export = function(_context: LoadContext, options: PluginOptions) { +export default function(_context: LoadContext, options: PluginOptions) { const isProd = process.env.NODE_ENV === 'production'; return { name: 'docusaurus-plugin-ideal-image', @@ -47,4 +47,4 @@ export = function(_context: LoadContext, options: PluginOptions) { }; }, }; -}; +} diff --git a/packages/docusaurus-plugin-ideal-image/src/theme/IdealImage.tsx b/packages/docusaurus-plugin-ideal-image/src/theme/IdealImage.js similarity index 81% rename from packages/docusaurus-plugin-ideal-image/src/theme/IdealImage.tsx rename to packages/docusaurus-plugin-ideal-image/src/theme/IdealImage.js index ecb0508d3811..99ed4d9b239a 100644 --- a/packages/docusaurus-plugin-ideal-image/src/theme/IdealImage.tsx +++ b/packages/docusaurus-plugin-ideal-image/src/theme/IdealImage.js @@ -4,12 +4,10 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ - import React from 'react'; -import {ImageProps} from '../types'; import IdealImage from '@endiliey/react-ideal-image'; -const Image: React.FC = props => { +function Image(props) { const {alt, className, img} = props; return ( = props => { width={img.src.width || 100} placeholder={{lqip: img.preSrc}} src={img.src.src} - srcSet={img.src.images.map((image: any) => ({ + srcSet={img.src.images.map(image => ({ ...image, src: image.path, }))} /> ); -}; +} export default Image; diff --git a/packages/docusaurus-plugin-ideal-image/src/types.ts b/packages/docusaurus-plugin-ideal-image/src/types.ts index b0019955a3cb..4415b255ab55 100644 --- a/packages/docusaurus-plugin-ideal-image/src/types.ts +++ b/packages/docusaurus-plugin-ideal-image/src/types.ts @@ -35,7 +35,3 @@ export interface PluginOptions { */ quality?: number; } - -export interface ImageProps extends React.ImgHTMLAttributes<{}> { - img: any; -} diff --git a/packages/docusaurus-plugin-ideal-image/tsconfig.json b/packages/docusaurus-plugin-ideal-image/tsconfig.json index 6fead23031a1..f50aa9ee6d86 100644 --- a/packages/docusaurus-plugin-ideal-image/tsconfig.json +++ b/packages/docusaurus-plugin-ideal-image/tsconfig.json @@ -5,7 +5,5 @@ "tsBuildInfoFile": "./lib/.tsbuildinfo", "rootDir": "src", "outDir": "lib", - "jsx": "react", - "typeRoots": ["@types"], } } From 87ca19316bd26e5c74755adbbde15b1d6d243a42 Mon Sep 17 00:00:00 2001 From: endiliey Date: Sun, 1 Dec 2019 21:42:54 +0700 Subject: [PATCH 2/4] nits --- packages/docusaurus-plugin-ideal-image/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/docusaurus-plugin-ideal-image/package.json b/packages/docusaurus-plugin-ideal-image/package.json index 8b504be26fca..622cd5caf265 100644 --- a/packages/docusaurus-plugin-ideal-image/package.json +++ b/packages/docusaurus-plugin-ideal-image/package.json @@ -11,13 +11,13 @@ }, "license": "MIT", "devDependencies": { - "@docusaurus/types": "^2.0.0-alpha.37" + "@docusaurus/types": "^2.0.0-alpha.37", + "fs-extra": "^8.1.0" }, "dependencies": { "@endiliey/lqip-loader": "^3.0.2", "@endiliey/react-ideal-image": "^0.0.11", "@endiliey/responsive-loader": "^1.3.2", - "fs-extra": "^8.1.0", "react-waypoint": "^9.0.2", "sharp": "^0.22.1" }, From cbcd916c29619461f4dba4cc2025a66eb8cfa41e Mon Sep 17 00:00:00 2001 From: endiliey Date: Sun, 1 Dec 2019 21:47:25 +0700 Subject: [PATCH 3/4] add npm ignore --- packages/docusaurus-plugin-ideal-image/.npmignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 packages/docusaurus-plugin-ideal-image/.npmignore diff --git a/packages/docusaurus-plugin-ideal-image/.npmignore b/packages/docusaurus-plugin-ideal-image/.npmignore new file mode 100644 index 000000000000..4978437c5d30 --- /dev/null +++ b/packages/docusaurus-plugin-ideal-image/.npmignore @@ -0,0 +1,2 @@ +src +copyUntypedFiles.js \ No newline at end of file From 8bb10323aa571c984f27491e1148d50f235e889b Mon Sep 17 00:00:00 2001 From: endiliey Date: Sun, 1 Dec 2019 21:52:49 +0700 Subject: [PATCH 4/4] lint --- .eslintignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.eslintignore b/.eslintignore index 9097f5d54515..1dc5c5691851 100644 --- a/.eslintignore +++ b/.eslintignore @@ -18,3 +18,4 @@ packages/docusaurus-plugin-content-docs/lib/ packages/docusaurus-plugin-content-pages/lib/ packages/docusaurus-plugin-sitemap/lib/ packages/docusaurus-plugin-ideal-image/lib/ +packages/docusaurus-plugin-ideal-image/copyUntypedFiles.js