struct-fakerator 2.6.9 → 2.8.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +148 -93
- package/biome.json +30 -26
- package/dist/config.d.ts +1 -2
- package/dist/config.js +51 -19
- package/dist/config.mjs +2 -19
- package/dist/config_scheme.d.ts +7 -10
- package/dist/config_scheme.js +95 -17
- package/dist/config_scheme.mjs +46 -17
- package/dist/create_config.d.ts +9 -11
- package/dist/create_config.js +110 -18
- package/dist/create_config.mjs +60 -17
- package/dist/create_config.test.d.ts +1 -2
- package/dist/create_generator_fn.d.ts +9 -11
- package/dist/create_generator_fn.js +168 -21
- package/dist/create_generator_fn.mjs +115 -20
- package/dist/create_generator_fn.test.d.ts +1 -2
- package/dist/generator_fn.d.ts +1 -2
- package/dist/generator_fn.js +54 -22
- package/dist/generator_fn.mjs +2 -22
- package/dist/index.d.ts +5 -5
- package/dist/index.js +107 -44
- package/dist/index.mjs +6 -44
- package/dist/type.d.ts +10 -12
- package/dist/type.js +18 -1
- package/dist/type.mjs +0 -1
- package/dist/utils/airline.d.ts +14 -3
- package/dist/utils/airline.js +46 -15
- package/dist/utils/airline.mjs +6 -15
- package/dist/utils/animal.d.ts +30 -2
- package/dist/utils/animal.js +94 -39
- package/dist/utils/animal.mjs +18 -39
- package/dist/utils/color.d.ts +41 -3
- package/dist/utils/color.js +78 -31
- package/dist/utils/color.mjs +14 -31
- package/dist/utils/commerce.d.ts +24 -2
- package/dist/utils/commerce.js +66 -25
- package/dist/utils/commerce.mjs +11 -25
- package/dist/utils/common.d.ts +2 -2
- package/dist/utils/common.js +37 -9
- package/dist/utils/common.mjs +3 -9
- package/dist/utils/company.d.ts +18 -2
- package/dist/utils/company.js +70 -27
- package/dist/utils/company.mjs +12 -27
- package/dist/utils/database.d.ts +10 -2
- package/dist/utils/database.js +54 -19
- package/dist/utils/database.mjs +8 -19
- package/dist/utils/datatype.d.ts +4 -2
- package/dist/utils/datatype.js +38 -11
- package/dist/utils/datatype.mjs +4 -11
- package/dist/utils/datetime.d.ts +59 -2
- package/dist/utils/datetime.js +78 -31
- package/dist/utils/datetime.mjs +14 -31
- package/dist/utils/finance.d.ts +62 -3
- package/dist/utils/finance.js +110 -47
- package/dist/utils/finance.mjs +22 -47
- package/dist/utils/food.d.ts +18 -2
- package/dist/utils/food.js +70 -27
- package/dist/utils/food.mjs +12 -27
- package/dist/utils/git.d.ts +18 -2
- package/dist/utils/git.js +54 -19
- package/dist/utils/git.mjs +8 -19
- package/dist/utils/hacker.d.ts +12 -2
- package/dist/utils/hacker.js +58 -21
- package/dist/utils/hacker.mjs +9 -21
- package/dist/utils/image.d.ts +40 -2
- package/dist/utils/image.js +66 -25
- package/dist/utils/image.mjs +11 -25
- package/dist/utils/index.d.ts +26 -28
- package/dist/utils/index.js +136 -110
- package/dist/utils/index.mjs +27 -110
- package/dist/utils/internet.d.ts +77 -3
- package/dist/utils/internet.js +114 -49
- package/dist/utils/internet.mjs +23 -49
- package/dist/utils/location.d.ts +56 -2
- package/dist/utils/location.js +98 -41
- package/dist/utils/location.mjs +19 -41
- package/dist/utils/lorem.d.ts +45 -2
- package/dist/utils/lorem.js +70 -27
- package/dist/utils/lorem.mjs +12 -27
- package/dist/utils/music.d.ts +8 -2
- package/dist/utils/music.js +50 -17
- package/dist/utils/music.mjs +7 -17
- package/dist/utils/number.d.ts +34 -2
- package/dist/utils/number.js +58 -21
- package/dist/utils/number.mjs +9 -21
- package/dist/utils/person.d.ts +34 -3
- package/dist/utils/person.js +94 -39
- package/dist/utils/person.mjs +18 -39
- package/dist/utils/phone.d.ts +6 -2
- package/dist/utils/phone.js +42 -13
- package/dist/utils/phone.mjs +5 -13
- package/dist/utils/science.d.ts +4 -3
- package/dist/utils/science.js +42 -13
- package/dist/utils/science.mjs +5 -13
- package/dist/utils/string.d.ts +69 -2
- package/dist/utils/string.js +74 -29
- package/dist/utils/string.mjs +13 -29
- package/dist/utils/system.d.ts +35 -2
- package/dist/utils/system.js +82 -33
- package/dist/utils/system.mjs +15 -33
- package/dist/utils/utils.d.ts +2 -2
- package/dist/utils/utils.js +39 -9
- package/dist/utils/utils.mjs +5 -9
- package/dist/utils/vehicle.d.ts +18 -2
- package/dist/utils/vehicle.js +70 -27
- package/dist/utils/vehicle.mjs +12 -27
- package/dist/utils/word.d.ts +18 -22
- package/dist/utils/word.js +70 -31
- package/dist/utils/word.mjs +12 -31
- package/package.json +10 -31
- package/pnpm-workspace.yaml +2 -0
- package/rslib.config.ts +26 -0
- package/src/config.ts +3 -3
- package/src/config_scheme.ts +1 -1
- package/src/create_config.test.ts +0 -1
- package/src/create_config.ts +1 -1
- package/src/create_generator_fn.test.ts +13 -2
- package/src/create_generator_fn.ts +5 -5
- package/src/generator_fn.ts +1 -1
- package/src/index.ts +2 -2
- package/src/type.ts +1 -1
- package/src/utils/index.ts +1 -2
- package/src/utils/internet.ts +1 -1
- package/src/utils/utils.ts +1 -1
- package/tsconfig.json +2 -1
- package/dist/airline-98MCzMN8.d.ts +0 -26
- package/dist/airline-CuAxOEYH.d.mts +0 -26
- package/dist/animal-BohQ7s0w.d.mts +0 -53
- package/dist/animal-o8BFF7gd.d.ts +0 -53
- package/dist/chunk-23I6D5SJ.js +0 -57
- package/dist/chunk-3KXIZTCT.mjs +0 -20
- package/dist/chunk-3U6BNHWG.mjs +0 -2040
- package/dist/chunk-4DDCMYY5.mjs +0 -57
- package/dist/chunk-4VNS5WPM.js +0 -42
- package/dist/chunk-5KF6D2RT.js +0 -63
- package/dist/chunk-5O3L5474.mjs +0 -45
- package/dist/chunk-5PCDQHI5.mjs +0 -21
- package/dist/chunk-62INTWCD.mjs +0 -36
- package/dist/chunk-6HRHPVPM.js +0 -35
- package/dist/chunk-6UFUX7X4.js +0 -51
- package/dist/chunk-6ZK2LMFM.js +0 -21
- package/dist/chunk-7BIWHK77.js +0 -42
- package/dist/chunk-7UQSPUCL.mjs +0 -0
- package/dist/chunk-7VOPOQZO.js +0 -45
- package/dist/chunk-C3RGM3CB.js +0 -67
- package/dist/chunk-DGW666Q6.mjs +0 -48
- package/dist/chunk-DM5VFX6B.js +0 -17008
- package/dist/chunk-DTC7Q7P5.js +0 -45
- package/dist/chunk-EM67LVYX.mjs +0 -18
- package/dist/chunk-EMCK2BLM.js +0 -45
- package/dist/chunk-ES2CYGB7.js +0 -24
- package/dist/chunk-ET6EJB33.js +0 -36
- package/dist/chunk-EYOBG3PQ.mjs +0 -45
- package/dist/chunk-F4GVSNLH.js +0 -30
- package/dist/chunk-G43WDHZO.mjs +0 -63
- package/dist/chunk-GJSTX6ZS.mjs +0 -24
- package/dist/chunk-GYF6YSNX.js +0 -74
- package/dist/chunk-HBJP434N.mjs +0 -78
- package/dist/chunk-IAR3DUKD.js +0 -49
- package/dist/chunk-IL4E3ZNB.js +0 -78
- package/dist/chunk-IOXGSFEU.js +0 -20
- package/dist/chunk-JB6NCVX3.mjs +0 -63
- package/dist/chunk-JGY3KVDU.mjs +0 -45
- package/dist/chunk-JWCDEYMY.js +0 -48
- package/dist/chunk-LSFOERXQ.js +0 -18
- package/dist/chunk-MGR2M7BS.mjs +0 -56
- package/dist/chunk-MLJAHDYX.mjs +0 -167
- package/dist/chunk-MROZIQOV.mjs +0 -51
- package/dist/chunk-NHYNERHW.js +0 -56
- package/dist/chunk-PGSJJESY.js +0 -27
- package/dist/chunk-QTVSUA5W.mjs +0 -24
- package/dist/chunk-QZQ32UPU.mjs +0 -28
- package/dist/chunk-R2MQ3IW5.mjs +0 -33
- package/dist/chunk-RD2SB2KT.js +0 -36
- package/dist/chunk-RDZI4CMI.mjs +0 -42
- package/dist/chunk-RTYV5XDU.mjs +0 -36
- package/dist/chunk-RZPUHXXO.mjs +0 -49
- package/dist/chunk-SD3HVRQN.mjs +0 -48
- package/dist/chunk-SN4QTD6R.js +0 -1
- package/dist/chunk-TA725QXR.mjs +0 -35
- package/dist/chunk-TXAOQHVV.mjs +0 -27
- package/dist/chunk-TZ2RKEBF.js +0 -2040
- package/dist/chunk-U7MLTDS4.js +0 -167
- package/dist/chunk-UIYW7U2O.js +0 -28
- package/dist/chunk-UP2JIDGZ.js +0 -81
- package/dist/chunk-USLYTOPD.mjs +0 -41
- package/dist/chunk-V2AWKRQI.js +0 -26
- package/dist/chunk-VE3Q5LC3.mjs +0 -26
- package/dist/chunk-VG6JYCUC.mjs +0 -74
- package/dist/chunk-VMSMHNPY.js +0 -48
- package/dist/chunk-VSZRD7CB.js +0 -33
- package/dist/chunk-VX2IFBCP.mjs +0 -17008
- package/dist/chunk-WLKNXHFN.mjs +0 -30
- package/dist/chunk-XGB3TDIC.mjs +0 -42
- package/dist/chunk-YXGKUR3R.js +0 -63
- package/dist/chunk-Z5BNMPTX.mjs +0 -81
- package/dist/chunk-ZQA42PYM.mjs +0 -67
- package/dist/chunk-ZSR4TJQG.js +0 -24
- package/dist/chunk-ZWLHVT5O.js +0 -41
- package/dist/color-BT6BF8oV.d.mts +0 -61
- package/dist/color-lBH29suB.d.ts +0 -61
- package/dist/commerce-BqVjXEhQ.d.mts +0 -40
- package/dist/commerce-mdOpchjx.d.ts +0 -40
- package/dist/common-IR_KozaJ.d.mts +0 -11
- package/dist/common-t-ZQebCq.d.ts +0 -11
- package/dist/company-C3EU1J7k.d.ts +0 -35
- package/dist/company-cR_0hm6U.d.mts +0 -35
- package/dist/config-BTjogu5M.d.ts +0 -7
- package/dist/config-C1N2Brw-.d.mts +0 -7
- package/dist/config.d.mts +0 -2
- package/dist/config_scheme.d.mts +0 -32
- package/dist/create_config.d.mts +0 -58
- package/dist/create_config.test.d.mts +0 -2
- package/dist/create_config.test.js +0 -63
- package/dist/create_config.test.mjs +0 -63
- package/dist/create_generator_fn.d.mts +0 -12
- package/dist/create_generator_fn.test.d.mts +0 -2
- package/dist/create_generator_fn.test.js +0 -191
- package/dist/create_generator_fn.test.mjs +0 -191
- package/dist/database-DV9wgnca.d.ts +0 -23
- package/dist/database-UzO1Lwec.d.mts +0 -23
- package/dist/datatype-C92TZLxo.d.ts +0 -13
- package/dist/datatype-DZjmP0fA.d.mts +0 -13
- package/dist/datetime-CSUpnUXU.d.ts +0 -78
- package/dist/datetime-dnPA_lnt.d.mts +0 -78
- package/dist/finance-CstKW1nH.d.mts +0 -90
- package/dist/finance-gj0fiEmf.d.ts +0 -90
- package/dist/food-CInj1GX2.d.ts +0 -35
- package/dist/food-Dk3-40CY.d.mts +0 -35
- package/dist/generator_fn-CJDbnCZl.d.mts +0 -7
- package/dist/generator_fn-D-npAfnC.d.ts +0 -7
- package/dist/generator_fn.d.mts +0 -2
- package/dist/git-BHL1ppL4.d.ts +0 -31
- package/dist/git-w0nznSjX.d.mts +0 -31
- package/dist/hacker-DL7pR6JO.d.ts +0 -26
- package/dist/hacker-FcQXZGtz.d.mts +0 -26
- package/dist/image-B5OPCNhD.d.mts +0 -56
- package/dist/image-IyGCgqNf.d.ts +0 -56
- package/dist/index.d.mts +0 -5
- package/dist/internet-BukCBMX-.d.ts +0 -106
- package/dist/internet-C2ElurWb.d.mts +0 -106
- package/dist/location-BIZ-KsaI.d.ts +0 -80
- package/dist/location-WU_nRdjx.d.mts +0 -80
- package/dist/lorem-OlHaVntu.d.mts +0 -62
- package/dist/lorem-yMyLb-d-.d.ts +0 -62
- package/dist/magic-string.es-2DLPM6Q3.js +0 -1299
- package/dist/magic-string.es-NHTKQXSF.mjs +0 -1299
- package/dist/music-P8XZ4JSO.d.ts +0 -20
- package/dist/music-vcWm9dzu.d.mts +0 -20
- package/dist/number-BfwwKvTJ.d.mts +0 -48
- package/dist/number-D5QmTRsK.d.ts +0 -48
- package/dist/person-DXne2mKX.d.ts +0 -58
- package/dist/person-Si_vy67g.d.mts +0 -58
- package/dist/phone-Cbxvm_Qv.d.ts +0 -16
- package/dist/phone-g4FDs50M.d.mts +0 -16
- package/dist/science-BX8WhoEY.d.ts +0 -15
- package/dist/science-BfA9sVXz.d.mts +0 -15
- package/dist/string-DGScZrrP.d.mts +0 -87
- package/dist/string-Do4vhsl0.d.ts +0 -87
- package/dist/system-BpxbduIr.d.ts +0 -55
- package/dist/system-Cy0e05Cr.d.mts +0 -55
- package/dist/test.d.mts +0 -2
- package/dist/test.d.ts +0 -2
- package/dist/test.js +0 -15
- package/dist/test.mjs +0 -15
- package/dist/type.d.mts +0 -93
- package/dist/utils/airline.d.mts +0 -3
- package/dist/utils/animal.d.mts +0 -2
- package/dist/utils/color.d.mts +0 -3
- package/dist/utils/commerce.d.mts +0 -2
- package/dist/utils/common.d.mts +0 -2
- package/dist/utils/company.d.mts +0 -2
- package/dist/utils/database.d.mts +0 -2
- package/dist/utils/datatype.d.mts +0 -2
- package/dist/utils/datetime.d.mts +0 -2
- package/dist/utils/finance.d.mts +0 -3
- package/dist/utils/food.d.mts +0 -2
- package/dist/utils/git.d.mts +0 -2
- package/dist/utils/hacker.d.mts +0 -2
- package/dist/utils/image.d.mts +0 -2
- package/dist/utils/index.d.mts +0 -28
- package/dist/utils/internet.d.mts +0 -3
- package/dist/utils/location.d.mts +0 -2
- package/dist/utils/lorem.d.mts +0 -2
- package/dist/utils/music.d.mts +0 -2
- package/dist/utils/number.d.mts +0 -2
- package/dist/utils/person.d.mts +0 -3
- package/dist/utils/phone.d.mts +0 -2
- package/dist/utils/science.d.mts +0 -3
- package/dist/utils/string.d.mts +0 -2
- package/dist/utils/system.d.mts +0 -2
- package/dist/utils/utils.d.mts +0 -2
- package/dist/utils/vehicle.d.mts +0 -2
- package/dist/utils/word.d.mts +0 -75
- package/dist/utils-BImnOpvp.d.ts +0 -10
- package/dist/utils-zJKwaMUY.d.mts +0 -10
- package/dist/vehicle-D4yBDYMc.d.mts +0 -35
- package/dist/vehicle-Ufz4AoXu.d.ts +0 -35
- package/src/test.ts +0 -10
- package/tsup.config.ts +0 -8
package/README.md
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
- [假資料結構產生器](#假資料結構產生器)
|
|
4
4
|
- [Wrapping fakerjs Functions](#wrapping-fakerjs-functions)
|
|
5
5
|
- [用途](#用途)
|
|
6
|
-
- [
|
|
7
|
-
- [
|
|
8
|
-
- [
|
|
9
|
-
- [
|
|
10
|
-
- [
|
|
11
|
-
- [
|
|
6
|
+
- [Value](#value)
|
|
7
|
+
- [Selection](#selection)
|
|
8
|
+
- [Object](#object)
|
|
9
|
+
- [Array](#array)
|
|
10
|
+
- [Tuple](#tuple)
|
|
11
|
+
- [BoundedSeries](#boundedseries)
|
|
12
12
|
- [擴充](#擴充)
|
|
13
13
|
|
|
14
14
|
## Wrapping fakerjs Functions
|
|
@@ -42,146 +42,201 @@
|
|
|
42
42
|
|
|
43
43
|
使用 faker js 時是單一純值不能產生結構,需要自己手動組合結構,此專案利用撰寫設定檔的方式來產生一個特定的假資料函數,減少手動組合結構的麻煩。
|
|
44
44
|
|
|
45
|
-
```
|
|
46
|
-
|
|
45
|
+
```typescript
|
|
46
|
+
import { StructConfig } from 'struct-fakerator'
|
|
47
|
+
|
|
48
|
+
const scheme = StructConfig.object({
|
|
49
|
+
name: StructConfig.value(() => 'hello'),
|
|
50
|
+
enum: StructConfig.select([1, 2, 3]),
|
|
51
|
+
list: StructConfig.array(StructConfig.value(() => 10), 5),
|
|
52
|
+
tuple: StructConfig.tuple([StructConfig.value(() => 'tuple1'), StructConfig.value(() => '100')])
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
// or
|
|
56
|
+
import {
|
|
57
|
+
createObjectConfig,
|
|
58
|
+
createArrayConfig,
|
|
59
|
+
createValueConfig,
|
|
60
|
+
createTupleConfig,
|
|
61
|
+
createSelectionConfig
|
|
62
|
+
} from 'struct-fakerator';
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
const scheme = createObjectConfig({
|
|
66
|
+
name: createValueConfig(() => 'hello'),
|
|
67
|
+
enum: createSelectionConfig([1, 2, 3]),
|
|
68
|
+
list: createArrayConfig(
|
|
69
|
+
createValueConfig(() => 10),
|
|
70
|
+
5
|
|
71
|
+
),
|
|
72
|
+
tuple: createTupleConfig([
|
|
73
|
+
createValueConfig(() => 'tuple1'),
|
|
74
|
+
createValueConfig(() => 100),
|
|
75
|
+
createValueConfig(() => false),
|
|
76
|
+
])
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
// or
|
|
80
|
+
const scheme = {
|
|
47
81
|
type: 'obj',
|
|
48
82
|
content: {
|
|
49
83
|
name: {
|
|
50
84
|
type: 'value',
|
|
51
85
|
generateFn: () => 'hello',
|
|
52
86
|
},
|
|
87
|
+
enum: {
|
|
88
|
+
type: 'select',
|
|
89
|
+
items: [1, 2, 3],
|
|
90
|
+
},
|
|
53
91
|
list: {
|
|
54
92
|
type: 'arr',
|
|
55
|
-
len: 5,
|
|
56
93
|
item: {
|
|
57
94
|
type: 'value',
|
|
58
95
|
generateFn: () => 10,
|
|
59
96
|
},
|
|
97
|
+
len: 5,
|
|
98
|
+
},
|
|
99
|
+
tuple: {
|
|
100
|
+
type: 'tuple',
|
|
101
|
+
configItems: [
|
|
102
|
+
{
|
|
103
|
+
type: 'value',
|
|
104
|
+
generateFn: () => 'tuple1',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'value',
|
|
108
|
+
generateFn: () => 100,
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'value',
|
|
112
|
+
generateFn: () => false,
|
|
113
|
+
},
|
|
114
|
+
],
|
|
60
115
|
},
|
|
61
116
|
},
|
|
62
117
|
};
|
|
118
|
+
```
|
|
63
119
|
|
|
64
|
-
|
|
120
|
+
```typescript
|
|
121
|
+
import { StructGenerator } from 'struct-fakerator';
|
|
65
122
|
|
|
66
|
-
|
|
123
|
+
const result = StructGenerator.genFn(scheme)()
|
|
67
124
|
|
|
68
|
-
|
|
69
|
-
{
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
125
|
+
console.log(result);
|
|
126
|
+
// {
|
|
127
|
+
// name: 'hello',
|
|
128
|
+
// enum: 1, // or 2 or 3
|
|
129
|
+
// list: [10, 10, 10, 10, 10],
|
|
130
|
+
// tuple: ['tuple1', 100, false]
|
|
131
|
+
// }
|
|
75
132
|
|
|
133
|
+
```
|
|
76
134
|
|
|
77
135
|
|
|
78
|
-
###
|
|
136
|
+
### Value
|
|
79
137
|
|
|
80
|
-
```
|
|
81
|
-
const generateFn =
|
|
82
|
-
type: 'value',
|
|
83
|
-
generateFn: () => 10,
|
|
84
|
-
})
|
|
138
|
+
```typescript
|
|
139
|
+
const generateFn = StructGenerator.genFn(StructConfig.value(() => 10));
|
|
85
140
|
|
|
86
141
|
console.log(generateFn());
|
|
87
|
-
|
|
88
142
|
// 10
|
|
89
143
|
```
|
|
90
144
|
|
|
91
|
-
###
|
|
145
|
+
### Selection
|
|
92
146
|
|
|
93
|
-
```
|
|
94
|
-
const generateFn =
|
|
95
|
-
type: 'select',
|
|
96
|
-
items: [1, 2, 3, 4, 5],
|
|
97
|
-
})
|
|
147
|
+
```typescript
|
|
148
|
+
const generateFn = StructGenerator.genFn(StructConfig.select([1, 2, 3, 4, 5]))
|
|
98
149
|
|
|
99
150
|
console.log(generateFn());
|
|
100
|
-
|
|
101
151
|
// 1 or 2 or 3 or 4 or 5
|
|
102
152
|
```
|
|
103
153
|
|
|
104
|
-
###
|
|
105
|
-
|
|
106
|
-
```javascript
|
|
107
|
-
const generateFn = createObjectGenerator({
|
|
108
|
-
type: 'obj',
|
|
109
|
-
content: {
|
|
110
|
-
name: {
|
|
111
|
-
type: 'value',
|
|
112
|
-
generateFn: () => 'hello',
|
|
113
|
-
},
|
|
114
|
-
list: {
|
|
115
|
-
type: 'arr',
|
|
116
|
-
len: 5,
|
|
117
|
-
item: {
|
|
118
|
-
type: 'value',
|
|
119
|
-
generateFn: () => 10,
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
})
|
|
154
|
+
### Object
|
|
124
155
|
|
|
125
|
-
|
|
156
|
+
```typescript
|
|
157
|
+
const generateFn = StructGenerator.genFn(StructConfig.object({
|
|
158
|
+
name: StructConfig.value(() => 'hello'),
|
|
159
|
+
list: StructConfig.array(StructConfig.value(() => 10), 5),
|
|
160
|
+
}));
|
|
126
161
|
|
|
162
|
+
console.log(generateFn());
|
|
127
163
|
// {
|
|
128
164
|
// name: 'hello',
|
|
129
165
|
// list: [10, 10, 10, 10, 10]
|
|
130
166
|
// }
|
|
167
|
+
|
|
168
|
+
// with transformer function
|
|
169
|
+
const generateFn = StructGenerator.genFn(
|
|
170
|
+
StructConfig.object(
|
|
171
|
+
{
|
|
172
|
+
name: StructConfig.value(() => 'hello'),
|
|
173
|
+
list: StructConfig.array(
|
|
174
|
+
StructConfig.value(() => 10),
|
|
175
|
+
5
|
|
176
|
+
),
|
|
177
|
+
},
|
|
178
|
+
({ name, list }) => list.map((item) => `${name} ${item}`)
|
|
179
|
+
)
|
|
180
|
+
);
|
|
181
|
+
|
|
182
|
+
console.log(generateFn());
|
|
183
|
+
// ["hello 10", "hello 10", "hello 10", "hello 10", "hello 10"]
|
|
131
184
|
```
|
|
132
|
-
### createArrayGenerator
|
|
133
185
|
|
|
186
|
+
### Array
|
|
134
187
|
|
|
135
|
-
```
|
|
136
|
-
const generateFn =
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
})
|
|
188
|
+
```typescript
|
|
189
|
+
const generateFn = StructGenerator.genFn(
|
|
190
|
+
StructConfig.array(
|
|
191
|
+
StructConfig.value(() => 10),
|
|
192
|
+
5
|
|
193
|
+
)
|
|
194
|
+
);
|
|
144
195
|
|
|
145
196
|
console.log(generateFn());
|
|
146
|
-
|
|
147
197
|
// [10, 10, 10, 10, 10]
|
|
148
|
-
```
|
|
149
198
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
generateFn: () => 10,
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
type: 'value',
|
|
162
|
-
generateFn: () => 'hello',
|
|
163
|
-
},
|
|
164
|
-
]
|
|
165
|
-
})
|
|
199
|
+
// with next function
|
|
200
|
+
const generateFn = StructGenerator.genFn(
|
|
201
|
+
StructConfig.array(
|
|
202
|
+
StructConfig.value(() => 10),
|
|
203
|
+
5,
|
|
204
|
+
(prev, current) => prev + 1 + current
|
|
205
|
+
)
|
|
206
|
+
);
|
|
166
207
|
|
|
167
208
|
console.log(generateFn());
|
|
168
|
-
|
|
169
|
-
// [10, 'hello']
|
|
209
|
+
// [21, 32, 43, 54, 65]
|
|
170
210
|
```
|
|
171
211
|
|
|
172
|
-
###
|
|
212
|
+
### Tuple
|
|
173
213
|
|
|
174
|
-
```
|
|
175
|
-
const generateFn =
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
214
|
+
```typescript
|
|
215
|
+
const generateFn = StructGenerator.genFn(
|
|
216
|
+
StructConfig.tuple([
|
|
217
|
+
StructConfig.value(() => 'tuple1'),
|
|
218
|
+
StructConfig.value(() => 100),
|
|
219
|
+
StructConfig.value(() => false),
|
|
220
|
+
])
|
|
221
|
+
);
|
|
182
222
|
|
|
183
223
|
console.log(generateFn());
|
|
224
|
+
// ['tuple1', 100, false]
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### BoundedSeries
|
|
184
228
|
|
|
229
|
+
```typescript
|
|
230
|
+
const generateFn = StructGenerator.genFn(
|
|
231
|
+
StructConfig.boundedSeries({
|
|
232
|
+
upperLimit: 1.1,
|
|
233
|
+
lowerLimit: 0.9,
|
|
234
|
+
createInitValue: () => 100,
|
|
235
|
+
count: 20,
|
|
236
|
+
})
|
|
237
|
+
);
|
|
238
|
+
|
|
239
|
+
console.log(generateFn());
|
|
185
240
|
// [100 * 0.9 <= num <= 100 * 1.1,
|
|
186
241
|
// prev * 0.9 <= num <= prev * 1.1,
|
|
187
242
|
// prev * 0.9 <= num <= prev * 1.1,
|
|
@@ -203,7 +258,7 @@ flowchart TB
|
|
|
203
258
|
|
|
204
259
|
但並不是所有人情況都能自己手動建立函數,有可能是開放給別人使用的服務,沒辦法在使用方建立函數,這時 `createGeneratorByType` 第二個可以讓製作服務的人帶入自己的擴充,這樣這個函數就能接受更多種型態。
|
|
205
260
|
|
|
206
|
-
```
|
|
261
|
+
```typescript
|
|
207
262
|
const createIntValueConfig = (option) => createValueConfig(() => faker.number.int(option));
|
|
208
263
|
const createEmailValueConfig = (option) => createValueConfig(() => faker.internet.email(option));
|
|
209
264
|
|
package/biome.json
CHANGED
|
@@ -1,27 +1,31 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
2
|
+
"$schema": "https://biomejs.dev/schemas/2.0.5/schema.json",
|
|
3
|
+
"linter": {
|
|
4
|
+
"enabled": true,
|
|
5
|
+
"rules": {
|
|
6
|
+
"recommended": true
|
|
7
|
+
},
|
|
8
|
+
"includes": ["src/**/*"]
|
|
9
|
+
},
|
|
10
|
+
"formatter": {
|
|
11
|
+
"indentStyle": "space",
|
|
12
|
+
"indentWidth": 2,
|
|
13
|
+
"lineEnding": "lf",
|
|
14
|
+
"includes": ["src/**/*", "tsup.config.ts", "rslib.config.ts"]
|
|
15
|
+
},
|
|
16
|
+
"javascript": {
|
|
17
|
+
"formatter": {
|
|
18
|
+
"quoteStyle": "double"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"assist": {
|
|
22
|
+
"actions": {
|
|
23
|
+
"source": {
|
|
24
|
+
"organizeImports": "on"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"files": {
|
|
29
|
+
"includes": ["src/**/*", "tsup.config.ts", "rslib.config.ts"]
|
|
30
|
+
}
|
|
31
|
+
}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export { createArrayConfig as array, createBoundedSeriesConfig as boundedSeries, createObjectConfig as object, createSelectionConfig as select, createTupleConfig as tuple, createValueConfig as value } from
|
|
2
|
-
import './type.js';
|
|
1
|
+
export { createArrayConfig as array, createBoundedSeriesConfig as boundedSeries, createObjectConfig as object, createSelectionConfig as select, createTupleConfig as tuple, createValueConfig as value, } from "./create_config";
|
package/dist/config.js
CHANGED
|
@@ -1,19 +1,51 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
select: ()=>external_create_config_js_namespaceObject.createSelectionConfig,
|
|
28
|
+
object: ()=>external_create_config_js_namespaceObject.createObjectConfig,
|
|
29
|
+
tuple: ()=>external_create_config_js_namespaceObject.createTupleConfig,
|
|
30
|
+
value: ()=>external_create_config_js_namespaceObject.createValueConfig,
|
|
31
|
+
boundedSeries: ()=>external_create_config_js_namespaceObject.createBoundedSeriesConfig,
|
|
32
|
+
array: ()=>external_create_config_js_namespaceObject.createArrayConfig
|
|
33
|
+
});
|
|
34
|
+
const external_create_config_js_namespaceObject = require("./create_config.js");
|
|
35
|
+
exports.array = __webpack_exports__.array;
|
|
36
|
+
exports.boundedSeries = __webpack_exports__.boundedSeries;
|
|
37
|
+
exports.object = __webpack_exports__.object;
|
|
38
|
+
exports.select = __webpack_exports__.select;
|
|
39
|
+
exports.tuple = __webpack_exports__.tuple;
|
|
40
|
+
exports.value = __webpack_exports__.value;
|
|
41
|
+
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
42
|
+
"array",
|
|
43
|
+
"boundedSeries",
|
|
44
|
+
"object",
|
|
45
|
+
"select",
|
|
46
|
+
"tuple",
|
|
47
|
+
"value"
|
|
48
|
+
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
49
|
+
Object.defineProperty(exports, '__esModule', {
|
|
50
|
+
value: true
|
|
51
|
+
});
|
package/dist/config.mjs
CHANGED
|
@@ -1,19 +1,2 @@
|
|
|
1
|
-
import "./
|
|
2
|
-
|
|
3
|
-
createArrayConfig,
|
|
4
|
-
createBoundedSeriesConfig,
|
|
5
|
-
createObjectConfig,
|
|
6
|
-
createSelectionConfig,
|
|
7
|
-
createTupleConfig,
|
|
8
|
-
createValueConfig
|
|
9
|
-
} from "./chunk-ZQA42PYM.mjs";
|
|
10
|
-
import "./chunk-USLYTOPD.mjs";
|
|
11
|
-
import "./chunk-XGB3TDIC.mjs";
|
|
12
|
-
export {
|
|
13
|
-
createArrayConfig as array,
|
|
14
|
-
createBoundedSeriesConfig as boundedSeries,
|
|
15
|
-
createObjectConfig as object,
|
|
16
|
-
createSelectionConfig as select,
|
|
17
|
-
createTupleConfig as tuple,
|
|
18
|
-
createValueConfig as value
|
|
19
|
-
};
|
|
1
|
+
import { createArrayConfig, createBoundedSeriesConfig, createObjectConfig, createSelectionConfig, createTupleConfig, createValueConfig } from "./create_config.mjs";
|
|
2
|
+
export { createArrayConfig as array, createBoundedSeriesConfig as boundedSeries, createObjectConfig as object, createSelectionConfig as select, createTupleConfig as tuple, createValueConfig as value };
|
package/dist/config_scheme.d.ts
CHANGED
|
@@ -1,32 +1,29 @@
|
|
|
1
|
-
import { z } from
|
|
2
|
-
|
|
3
|
-
declare const valueConfigScheme: z.ZodObject<{
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const valueConfigScheme: z.ZodObject<{
|
|
4
3
|
type: z.ZodString;
|
|
5
4
|
generateFn: z.ZodAny;
|
|
6
5
|
}, z.core.$strip>;
|
|
7
|
-
declare const selectionConfigScheme: z.ZodObject<{
|
|
6
|
+
export declare const selectionConfigScheme: z.ZodObject<{
|
|
8
7
|
type: z.ZodString;
|
|
9
8
|
items: z.ZodArray<z.ZodAny>;
|
|
10
9
|
}, z.core.$strip>;
|
|
11
|
-
declare const arrayConfigScheme: z.ZodObject<{
|
|
10
|
+
export declare const arrayConfigScheme: z.ZodObject<{
|
|
12
11
|
type: z.ZodString;
|
|
13
12
|
item: z.ZodObject<{}, z.core.$strip>;
|
|
14
13
|
len: z.ZodNumber;
|
|
15
14
|
}, z.core.$strip>;
|
|
16
|
-
declare const tupleConfigScheme: z.ZodObject<{
|
|
15
|
+
export declare const tupleConfigScheme: z.ZodObject<{
|
|
17
16
|
type: z.ZodString;
|
|
18
17
|
configItems: z.ZodArray<z.ZodAny>;
|
|
19
18
|
}, z.core.$strip>;
|
|
20
|
-
declare const objConfigScheme: z.ZodObject<{
|
|
19
|
+
export declare const objConfigScheme: z.ZodObject<{
|
|
21
20
|
type: z.ZodString;
|
|
22
21
|
content: z.ZodObject<{}, z.core.$strip>;
|
|
23
22
|
}, z.core.$strip>;
|
|
24
|
-
declare const boundedSeriesScheme: z.ZodObject<{
|
|
23
|
+
export declare const boundedSeriesScheme: z.ZodObject<{
|
|
25
24
|
type: z.ZodString;
|
|
26
25
|
upperLimit: z.ZodNumber;
|
|
27
26
|
lowerLimit: z.ZodNumber;
|
|
28
27
|
createInitValue: z.ZodAny;
|
|
29
28
|
count: z.ZodNumber;
|
|
30
29
|
}, z.core.$strip>;
|
|
31
|
-
|
|
32
|
-
export { arrayConfigScheme, boundedSeriesScheme, objConfigScheme, selectionConfigScheme, tupleConfigScheme, valueConfigScheme };
|
package/dist/config_scheme.js
CHANGED
|
@@ -1,17 +1,95 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
boundedSeriesScheme: ()=>boundedSeriesScheme,
|
|
28
|
+
tupleConfigScheme: ()=>tupleConfigScheme,
|
|
29
|
+
valueConfigScheme: ()=>valueConfigScheme,
|
|
30
|
+
arrayConfigScheme: ()=>arrayConfigScheme,
|
|
31
|
+
selectionConfigScheme: ()=>selectionConfigScheme,
|
|
32
|
+
objConfigScheme: ()=>objConfigScheme
|
|
33
|
+
});
|
|
34
|
+
const external_zod_namespaceObject = require("zod");
|
|
35
|
+
const valueConfigScheme = external_zod_namespaceObject.z.object({
|
|
36
|
+
type: external_zod_namespaceObject.z.string().regex(/^value$/, {
|
|
37
|
+
message: "invalid type string"
|
|
38
|
+
}),
|
|
39
|
+
generateFn: external_zod_namespaceObject.z.any()
|
|
40
|
+
});
|
|
41
|
+
const selectionConfigScheme = external_zod_namespaceObject.z.object({
|
|
42
|
+
type: external_zod_namespaceObject.z.string().regex(/^select$/, {
|
|
43
|
+
message: "invalid type string"
|
|
44
|
+
}),
|
|
45
|
+
items: external_zod_namespaceObject.z.any().array().nonempty({
|
|
46
|
+
message: "items can not be empty"
|
|
47
|
+
})
|
|
48
|
+
});
|
|
49
|
+
const arrayConfigScheme = external_zod_namespaceObject.z.object({
|
|
50
|
+
type: external_zod_namespaceObject.z.string().regex(/^arr$/, {
|
|
51
|
+
message: "invalid type string"
|
|
52
|
+
}),
|
|
53
|
+
item: external_zod_namespaceObject.z.object({}),
|
|
54
|
+
len: external_zod_namespaceObject.z.number().nonnegative()
|
|
55
|
+
});
|
|
56
|
+
const tupleConfigScheme = external_zod_namespaceObject.z.object({
|
|
57
|
+
type: external_zod_namespaceObject.z.string().regex(/^tuple$/, {
|
|
58
|
+
message: "invalid type string"
|
|
59
|
+
}),
|
|
60
|
+
configItems: external_zod_namespaceObject.z.any().array()
|
|
61
|
+
});
|
|
62
|
+
const objConfigScheme = external_zod_namespaceObject.z.object({
|
|
63
|
+
type: external_zod_namespaceObject.z.string().regex(/^obj$/, {
|
|
64
|
+
message: "invalid type string"
|
|
65
|
+
}),
|
|
66
|
+
content: external_zod_namespaceObject.z.object({})
|
|
67
|
+
});
|
|
68
|
+
const boundedSeriesScheme = external_zod_namespaceObject.z.object({
|
|
69
|
+
type: external_zod_namespaceObject.z.string().regex(/^bounded_series$/, {
|
|
70
|
+
message: "invalid type string"
|
|
71
|
+
}),
|
|
72
|
+
upperLimit: external_zod_namespaceObject.z.number().nonnegative(),
|
|
73
|
+
lowerLimit: external_zod_namespaceObject.z.number().nonnegative(),
|
|
74
|
+
createInitValue: external_zod_namespaceObject.z.any(),
|
|
75
|
+
count: external_zod_namespaceObject.z.number().nonnegative()
|
|
76
|
+
}).refine(({ upperLimit, lowerLimit })=>upperLimit >= lowerLimit, {
|
|
77
|
+
message: "lowerLimit can not greater then upperLimit"
|
|
78
|
+
});
|
|
79
|
+
exports.arrayConfigScheme = __webpack_exports__.arrayConfigScheme;
|
|
80
|
+
exports.boundedSeriesScheme = __webpack_exports__.boundedSeriesScheme;
|
|
81
|
+
exports.objConfigScheme = __webpack_exports__.objConfigScheme;
|
|
82
|
+
exports.selectionConfigScheme = __webpack_exports__.selectionConfigScheme;
|
|
83
|
+
exports.tupleConfigScheme = __webpack_exports__.tupleConfigScheme;
|
|
84
|
+
exports.valueConfigScheme = __webpack_exports__.valueConfigScheme;
|
|
85
|
+
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
86
|
+
"arrayConfigScheme",
|
|
87
|
+
"boundedSeriesScheme",
|
|
88
|
+
"objConfigScheme",
|
|
89
|
+
"selectionConfigScheme",
|
|
90
|
+
"tupleConfigScheme",
|
|
91
|
+
"valueConfigScheme"
|
|
92
|
+
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
93
|
+
Object.defineProperty(exports, '__esModule', {
|
|
94
|
+
value: true
|
|
95
|
+
});
|