struct-fakerator 1.1.0 → 1.1.1

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.
Files changed (2) hide show
  1. package/README.md +139 -1
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,10 +1,19 @@
1
1
  # 假資料結構產生器
2
+ - [假資料結構產生器](#假資料結構產生器)
3
+ - [用途](#用途)
4
+ - [createValueGenerator](#createvaluegenerator)
5
+ - [createSelectionGenerator](#createselectiongenerator)
6
+ - [createObjectGenerator](#createobjectgenerator)
7
+ - [createArrayGenerator](#createarraygenerator)
8
+ - [createTupleGenerator](#createtuplegenerator)
9
+ - [createBoundedSeriesGenerator](#createboundedseriesgenerator)
10
+ - [擴充](#擴充)
2
11
 
3
12
  ## 用途
4
13
 
5
14
  使用 faker js 時是單一純值不能產生結構,需要自己手動組合結構,此專案利用撰寫設定檔的方式來產生一個特定的假資料函數,減少手動組合結構的麻煩。
6
15
 
7
- ```ts
16
+ ```javascript
8
17
  const test = {
9
18
  type: 'obj',
10
19
  content: {
@@ -34,3 +43,132 @@ console.log(generateFn());
34
43
  }
35
44
  */
36
45
  ```
46
+
47
+
48
+
49
+ ### createValueGenerator
50
+
51
+ ```javascript
52
+ const generateFn = createValueGenerator({
53
+ type: 'value',
54
+ generateFn: () => 10,
55
+ })
56
+
57
+ console.log(generateFn());
58
+
59
+ // 10
60
+ ```
61
+
62
+ ### createSelectionGenerator
63
+
64
+ ```javascript
65
+ const generateFn = createSelectionGenerator({
66
+ type: 'select',
67
+ items: [1, 2, 3, 4, 5],
68
+ })
69
+
70
+ console.log(generateFn());
71
+
72
+ // 1 or 2 or 3 or 4 or 5
73
+ ```
74
+
75
+ ### createObjectGenerator
76
+
77
+ ```javascript
78
+ const generateFn = createObjectGenerator({
79
+ type: 'obj',
80
+ content: {
81
+ name: {
82
+ type: 'value',
83
+ generateFn: () => 'hello',
84
+ },
85
+ list: {
86
+ type: 'arr',
87
+ len: 5,
88
+ item: {
89
+ type: 'value',
90
+ generateFn: () => 10,
91
+ }
92
+ }
93
+ }
94
+ })
95
+
96
+ console.log(generateFn());
97
+
98
+ // {
99
+ // name: 'hello',
100
+ // list: [10, 10, 10, 10, 10]
101
+ // }
102
+ ```
103
+ ### createArrayGenerator
104
+
105
+
106
+ ```javascript
107
+ const generateFn = createArrayGenerator({
108
+ type: 'arr',
109
+ len: 5,
110
+ item: {
111
+ type: 'value',
112
+ generateFn: () => 10,
113
+ }
114
+ })
115
+
116
+ console.log(generateFn());
117
+
118
+ // [10, 10, 10, 10, 10]
119
+ ```
120
+
121
+ ### createTupleGenerator
122
+
123
+ ```javascript
124
+ const generateFn = createTupleGenerator({
125
+ type: 'tuple',
126
+ configItems: [
127
+ {
128
+ type: 'value',
129
+ generateFn: () => 10,
130
+ },
131
+ {
132
+ type: 'value',
133
+ generateFn: () => 'hello',
134
+ },
135
+ ]
136
+ })
137
+
138
+ console.log(generateFn());
139
+
140
+ // [10, 'hello']
141
+ ```
142
+
143
+ ### createBoundedSeriesGenerator
144
+
145
+ ```javascript
146
+ const generateFn = createBoundedSeriesGenerator({
147
+ type: 'bounded_series',
148
+ upperLimit: 1.1,
149
+ lowerLimit: 0.9,
150
+ createInitValue: () => 100,
151
+ count: 20
152
+ })
153
+
154
+ console.log(generateFn());
155
+
156
+ // [100 * 0.9 <= num <= 100 * 1.1,
157
+ // prev * 0.9 <= num <= prev * 1.1,
158
+ // prev * 0.9 <= num <= prev * 1.1,
159
+ // ...]
160
+ ```
161
+
162
+ ## 擴充
163
+
164
+ 一切的值皆由 `value` 產生,可以自己創建各種不同亂數函數
165
+
166
+ ```mermaid
167
+ flowchart TB
168
+ value --> int
169
+ value --> float
170
+ value --> string
171
+ value --> email
172
+ value --> other[...]
173
+
174
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "struct-fakerator",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "type": "module",