Skip to content

Commit fc57380

Browse files
committed
fix: sanitize screenshot filenames
Signed-off-by: Jakub Freisler <[email protected]>
1 parent b5d0f82 commit fc57380

File tree

3 files changed

+29
-1
lines changed

3 files changed

+29
-1
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
"eslint-plugin-eslint-comments": "^3.2.0",
4545
"microbundle": "^0.14.1",
4646
"prettier": "^2.4.1",
47+
"sanitize-filename": "^1.6.3",
4748
"semantic-release": "^18.0.0",
4849
"typescript": "^4.4.4"
4950
},

src/plugins.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { PNG, PNGWithMetadata } from "pngjs";
55
import { FILE_SUFFIX, IMAGE_SNAPSHOT_PREFIX, TASK } from "./constants";
66
import moveFile from "move-file";
77
import sharp from "sharp";
8+
import sanitize from "sanitize-filename";
89

910
type NotFalsy<T> = T extends false | null | undefined ? never : T;
1011

@@ -103,7 +104,7 @@ export const initPlugin = (
103104
IMAGE_SNAPSHOT_PREFIX,
104105
path.dirname(specPath),
105106
...imagesDir.split("/"),
106-
`${title}${FILE_SUFFIX.actual}.png`
107+
`${sanitize(title)}${FILE_SUFFIX.actual}.png`
107108
);
108109
},
109110
[TASK.doesFileExist]({ path }) {

yarn.lock

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1444,6 +1444,7 @@ __metadata:
14441444
pixelmatch: ^5.2.1
14451445
pngjs: ^6.0.0
14461446
prettier: ^2.4.1
1447+
sanitize-filename: ^1.6.3
14471448
semantic-release: ^18.0.0
14481449
sharp: ^0.30.1
14491450
typescript: ^4.4.4
@@ -8662,6 +8663,15 @@ [email protected]:
86628663
languageName: node
86638664
linkType: hard
86648665

8666+
"sanitize-filename@npm:^1.6.3":
8667+
version: 1.6.3
8668+
resolution: "sanitize-filename@npm:1.6.3"
8669+
dependencies:
8670+
truncate-utf8-bytes: ^1.0.0
8671+
checksum: aa733c012b7823cf65730603cf3b503c641cee6b239771d3164ca482f22d81a50e434a713938d994071db18e4202625669cc56bccc9d13d818b4c983b5f47fde
8672+
languageName: node
8673+
linkType: hard
8674+
86658675
"semantic-release@npm:18.0.1, semantic-release@npm:^18.0.0":
86668676
version: 18.0.1
86678677
resolution: "semantic-release@npm:18.0.1"
@@ -9535,6 +9545,15 @@ [email protected]:
95359545
languageName: node
95369546
linkType: hard
95379547

9548+
"truncate-utf8-bytes@npm:^1.0.0":
9549+
version: 1.0.2
9550+
resolution: "truncate-utf8-bytes@npm:1.0.2"
9551+
dependencies:
9552+
utf8-byte-length: ^1.0.1
9553+
checksum: ad097314709ea98444ad9c80c03aac8da805b894f37ceb5685c49ad297483afe3a5ec9572ebcaff699dda72b6cd447a2ba2a3fd10e96c2628cd16d94abeb328a
9554+
languageName: node
9555+
linkType: hard
9556+
95389557
"tslib@npm:2.0.1":
95399558
version: 2.0.1
95409559
resolution: "tslib@npm:2.0.1"
@@ -9803,6 +9822,13 @@ [email protected]:
98039822
languageName: node
98049823
linkType: hard
98059824

9825+
"utf8-byte-length@npm:^1.0.1":
9826+
version: 1.0.4
9827+
resolution: "utf8-byte-length@npm:1.0.4"
9828+
checksum: f188ca076ec094d58e7009fcc32623c5830c7f0f3e15802bfa4fdd1e759454a481fc4ac05e0fa83b7736e77af628a9ee0e57dcc89683d688fde3811473e42143
9829+
languageName: node
9830+
linkType: hard
9831+
98069832
"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1":
98079833
version: 1.0.2
98089834
resolution: "util-deprecate@npm:1.0.2"

0 commit comments

Comments
 (0)