File tree Expand file tree Collapse file tree 3 files changed +28
-5
lines changed
Expand file tree Collapse file tree 3 files changed +28
-5
lines changed Original file line number Diff line number Diff line change 22
33[ ![ npm latest version] ( https://img.shields.io/npm/v/path-serializer?style=flat-square&color=98c379 )] ( https://www.npmjs.com/package/path-serializer )
44
5- 1 . stabilize pnpm dependencies path and update dependencies smoothly
5+ 1 . stabilize pnpm dependencies path in snapshot
662 . transform win32 path to posix path
7+ 3 . escapeEOL \r\n -> \n
78 and more...
89
910``` ts
@@ -31,7 +32,7 @@ expect.addSnapshotSerializer(
3132);
3233```
3334
34- The specific usage can be found in [ ./src/types.ts] ( https://github.com/rspack-contrib/path-serializer/blob/main/src/types.ts )
35+ More features can be found in [ ./src/types.ts] ( https://github.com/rspack-contrib/path-serializer/blob/main/src/types.ts )
3536
3637## Showcases
3738
Original file line number Diff line number Diff line change @@ -25,6 +25,8 @@ export function createSnapshotSerializer(
2525 replace : customMatchers = [ ] ,
2626 replacePost : customPostMatchers = [ ] ,
2727 features = { } ,
28+ beforeSerialize,
29+ afterSerialize,
2830 } = options || { } ;
2931
3032 const {
@@ -76,6 +78,11 @@ export function createSnapshotSerializer(
7678 } ,
7779 serialize ( val : unknown ) {
7880 let replaced : string = val as string ;
81+
82+ if ( beforeSerialize ) {
83+ replaced = beforeSerialize ( replaced ) ;
84+ }
85+
7986 if ( transformWin32Path ) {
8087 replaced = normalizeCodeToPosix ( replaced ) ;
8188 }
@@ -95,6 +102,10 @@ export function createSnapshotSerializer(
95102 if ( addDoubleQuotes ) {
96103 replaced = `"${ replaced } "` ;
97104 }
105+
106+ if ( afterSerialize ) {
107+ replaced = afterSerialize ( replaced ) ;
108+ }
98109 return replaced ;
99110 } ,
100111 } ;
Original file line number Diff line number Diff line change @@ -23,10 +23,12 @@ export interface Features {
2323 */
2424 replacePnpmInner ?: boolean ;
2525 /**
26+ * <TEMP>
2627 * @default true
2728 */
2829 replaceTmpDir ?: boolean ;
2930 /**
31+ * <HOME>
3032 * @default true
3133 */
3234 replaceHomeDir ?: boolean ;
@@ -42,6 +44,7 @@ export interface Features {
4244 */
4345 transformWin32Path ?: boolean ;
4446 /**
47+ * "" -> \"\"
4548 * @default true
4649 */
4750 escapeDoubleQuotes ?: boolean ;
@@ -53,7 +56,7 @@ export interface Features {
5356 /**
5457 * \u001b[1mBold Text\u001b[0m
5558 * -> <CLR=BOLD>Bold Text<CLR=0>
56- * @default true
59+ * @default true
5760 */
5861 transformCLR ?: boolean ;
5962}
@@ -72,13 +75,21 @@ export interface SnapshotSerializerOptions {
7275 */
7376 workspace ?: string ;
7477 /**
75- * @description replace -> workspace root pnpmInner temp home -> replacePost
78+ * @description beforeSerialize -> replace -> workspace root pnpmInner temp home -> replacePost -> afterSerialize
79+ */
80+ beforeSerialize ?: ( val : string ) => string ;
81+ /**
82+ * @description beforeSerialize -> replace -> workspace root pnpmInner temp home -> replacePost -> afterSerialize
7683 */
7784 replace ?: PathMatcher [ ] ;
7885 /**
79- * @description replace -> workspace root pnpmInner temp home -> replacePost
86+ * @description beforeSerialize -> replace -> workspace root pnpmInner temp home -> replacePost -> afterSerialize
8087 */
8188 replacePost ?: PathMatcher [ ] ;
89+ /**
90+ * @description beforeSerialize -> replace -> workspace root pnpmInner temp home -> replacePost -> afterSerialize
91+ */
92+ afterSerialize ?: ( val : string ) => string ;
8293 features ?: Features ;
8394}
8495
You can’t perform that action at this time.
0 commit comments