Skip to content

Commit 86f2868

Browse files
committed
feat: DECORATOR_REGEX
Signed-off-by: Lexus Drumgold <[email protected]>
1 parent b581cdb commit 86f2868

File tree

12 files changed

+852
-1
lines changed

12 files changed

+852
-1
lines changed

__tests__/setup/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
*/
55

66
import './chai'
7+
import './serializers'
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/**
2+
* @file Entry Point - Snapshot Serializers
3+
* @module tests/setup/serializers
4+
* @see https://vitest.dev/guide/snapshot.html#custom-serializer
5+
*/
6+
7+
import './regex-iterable'
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/**
2+
* @file Snapshot Serializers - RegExpIterable
3+
* @module tests/setup/serializers/regex-iterable
4+
*/
5+
6+
import type { RegExpArray } from '#tests/types'
7+
import { isNumber, isString, type Fn } from '@flex-development/tutils'
8+
import { get, omit } from 'radash'
9+
10+
expect.addSnapshotSerializer({
11+
/**
12+
* Prints the given `value`.
13+
*
14+
* @param {unknown} value - Value to print
15+
* @param {Fn<[unknown], string>} printer - Print function
16+
* @return {string} `value` as printable string
17+
*/
18+
print(value: unknown, printer: Fn<[unknown], string>): string {
19+
value = [...(value as RegExpArray[])].map(m => omit(m, ['index', 'input']))
20+
return printer(value)
21+
},
22+
/**
23+
* Checks if the given `value` is a {@linkcode RegExpArray} array.
24+
*
25+
* @param {unknown} value - Value to check
26+
* @return {value is RegExpArray[]} `true` if `value` is `RegExpArray` array
27+
*/
28+
test(value: unknown): value is RegExpArray[] {
29+
return (
30+
Array.isArray(value) &&
31+
isNumber(get(value[0], 'index')) &&
32+
isString(get(value[0], 'input'))
33+
)
34+
}
35+
})

__tests__/types/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/**
2+
* @file Entry Point - Test Type Definitions
3+
* @module tests/types
4+
*/
5+
6+
export type { default as RegExpArray } from './reg-exp-array'

__tests__/types/reg-exp-array.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/**
2+
* @file Test Type Definitions - RegExpArray
3+
* @module tests/types/RegExpArray
4+
*/
5+
6+
/**
7+
* A {@linkcode RegExpExecArray} or {@linkcode RegExpMatchArray}.
8+
*/
9+
type RegExpArray = RegExpExecArray | RegExpMatchArray
10+
11+
export type { RegExpArray as default }

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@
128128
"node-notifier": "10.0.1",
129129
"prettier": "2.8.4",
130130
"prettier-plugin-sh": "0.12.8",
131+
"radash": "10.7.0",
131132
"sade": "1.8.1",
132133
"semver": "7.3.8",
133134
"serve": "14.2.0",

0 commit comments

Comments
 (0)