Skip to content

Commit 358c2bc

Browse files
committed
extract imageutil and remove sharp
1 parent 8f912de commit 358c2bc

File tree

8 files changed

+33
-437
lines changed

8 files changed

+33
-437
lines changed

package-lock.json

Lines changed: 17 additions & 403 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/xl-docx-exporter/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
"@blocknote/core": "^0.24.2",
5454
"buffer": "^6.0.3",
5555
"docx": "^9.0.2",
56-
"sharp": "^0.33.5"
56+
"image-meta": "^0.2.1"
5757
},
5858
"devDependencies": {
5959
"@zip.js/zip.js": "^2.7.57",

packages/xl-docx-exporter/src/docx/defaultSchema/blocks.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,19 @@ import {
77
StyledText,
88
UnreachableCaseError,
99
} from "@blocknote/core";
10+
import { getImageDimensions } from "@shared/util/imageUtil.js";
1011
import {
1112
CheckBox,
1213
Table as DocxTable,
1314
ExternalHyperlink,
14-
IParagraphOptions,
1515
ImageRun,
16+
IParagraphOptions,
1617
PageBreak,
1718
Paragraph,
1819
ParagraphChild,
1920
ShadingType,
2021
TextRun,
2122
} from "docx";
22-
import { getImageDimensions } from "../imageUtil.js";
2323
import { Table } from "../util/Table.js";
2424

2525
function blockPropsToStyles(

packages/xl-docx-exporter/src/docx/imageUtil.ts

Lines changed: 0 additions & 21 deletions
This file was deleted.

packages/xl-odt-exporter/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
"@blocknote/core": "^0.24.0",
5454
"@zip.js/zip.js": "^2.7.57",
5555
"buffer": "^6.0.3",
56-
"sharp": "^0.33.5"
56+
"image-meta": "^0.2.1"
5757
},
5858
"devDependencies": {
5959
"@testing-library/react": "^16.0.1",

packages/xl-odt-exporter/src/odt/odtExporter.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ import {
1010
StyledText,
1111
} from "@blocknote/core";
1212
import { loadFileBuffer } from "@shared/util/fileUtil.js";
13+
import { getImageDimensions } from "@shared/util/imageUtil.js";
1314
import { BlobReader, BlobWriter, TextReader, ZipWriter } from "@zip.js/zip.js";
1415
import { renderToString } from "react-dom/server";
15-
import { getImageDimensions } from "./imageUtil.js";
1616
import stylesXml from "./template/styles.xml?raw";
1717

1818
export class ODTExporter<

shared/package.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,14 @@
1818
"devDependencies": {
1919
"typescript": "^5.3.3"
2020
},
21+
"peerDependencies": {
22+
"image-meta": "^0.2.1"
23+
},
24+
"peerDependenciesMeta": {
25+
"image-meta": {
26+
"optional": true
27+
}
28+
},
2129
"eslintConfig": {
2230
"extends": [
2331
"../.eslintrc.js"
Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import type Sharp from "sharp";
2-
31
export async function getImageDimensions(blob: Blob) {
42
if (typeof window !== "undefined" && import.meta.env.NODE_ENV !== "test") {
53
const bmp = await createImageBitmap(blob);
@@ -8,12 +6,9 @@ export async function getImageDimensions(blob: Blob) {
86
return { width, height };
97
} else {
108
// node or vitest
11-
const sharp = (await require("sharp")) as typeof Sharp;
9+
const imageMetaFunc = (await import("image-meta")).imageMeta;
1210
const bytes = new Uint8Array(await blob.arrayBuffer());
13-
const metadata = await sharp(bytes).metadata();
14-
if (!metadata.width || !metadata.height) {
15-
throw new Error("Image has no width or height");
16-
}
17-
return { width: metadata.width, height: metadata.height };
11+
const meta = imageMetaFunc(bytes);
12+
return { width: meta.width, height: meta.height };
1813
}
1914
}

0 commit comments

Comments
 (0)