ph-utils 0.10.2 → 0.11.0

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/lib/dom.d.ts CHANGED
@@ -156,7 +156,7 @@ export declare function formatClass(classObj: (boolean | string | undefined | nu
156
156
  * @param styleObj - 样式对象,可以是字符串数组或键值对对象。
157
157
  * @returns 格式化后的 CSS 样式字符串。
158
158
  */
159
- export declare function formatStyle(styleObj: (string | undefined | null | "")[] | Record<string, string>): string;
159
+ export declare function formatStyle(styleObj: (string | undefined | null | "")[] | Record<string, string | undefined | null>): string;
160
160
  /**
161
161
  * 对指定的 HTML 元素应用显示过渡效果。
162
162
  * @param target - 要应用过渡效果的 HTML 元素。
package/lib/dom.js CHANGED
@@ -333,8 +333,9 @@ export function formatStyle(styleObj) {
333
333
  }
334
334
  else {
335
335
  for (const key in styleObj) {
336
- if (styleObj[key]) {
337
- styleStr += `${key}:${styleObj[key]};`;
336
+ const value = styleObj[key];
337
+ if (value) {
338
+ styleStr += `${key}:${value};`;
338
339
  }
339
340
  }
340
341
  }
@@ -13,7 +13,6 @@ export type RuleType = string | RegExp | ((v: any) => boolean) | (RegExp | strin
13
13
  export interface SchemaType {
14
14
  key: string;
15
15
  required?: boolean;
16
- type?: string | ((v: any) => void);
17
16
  rules?: RuleType[];
18
17
  message?: string;
19
18
  }
@@ -42,6 +41,8 @@ declare class Validator {
42
41
  * validator.validateKey().then(res => {})
43
42
  */
44
43
  constructor(schemas: SchemaType[]);
44
+ addSchemas(schemas: SchemaType[]): void;
45
+ addSchema(schema: SchemaType): void;
45
46
  /**
46
47
  * 进行数据验证
47
48
  * @param data 待验证的数据
@@ -57,6 +58,7 @@ declare class Validator {
57
58
  */
58
59
  validateKey(key: string, value: any, data?: any): Promise<boolean>;
59
60
  private _validateRule;
61
+ private _parseSchemaRules;
60
62
  private _parseStringRule;
61
63
  }
62
64
  export default Validator;
package/lib/validator.js CHANGED
@@ -61,51 +61,16 @@ class Validator {
61
61
  * validator.validateKey().then(res => {})
62
62
  */
63
63
  constructor(schemas) {
64
- let parsedRules = {};
64
+ this.rules = {};
65
+ this.addSchemas(schemas);
66
+ }
67
+ addSchemas(schemas) {
65
68
  for (let schema of schemas) {
66
- // 解析规则
67
- let rules = [];
68
- let rule = schema.rules;
69
- if (rule != null) {
70
- if (typeof rule === "string") {
71
- rules = rules.concat(this._parseStringRule(rule, schema.message));
72
- }
73
- else if (rule instanceof Array) {
74
- for (let ruleItem of rule) {
75
- if (typeof ruleItem === "string") {
76
- rules.push(...this._parseStringRule(ruleItem, schema.message));
77
- }
78
- else if (ruleItem instanceof RegExp ||
79
- typeof ruleItem === "function") {
80
- rules.push({
81
- rule: ruleItem,
82
- message: schema.message || defaultMsg,
83
- });
84
- }
85
- else {
86
- if (typeof ruleItem.rule === "string") {
87
- rules.push(...this._parseStringRule(ruleItem.rule, ruleItem.message));
88
- }
89
- else {
90
- rules.push({
91
- rule: ruleItem.rule,
92
- message: ruleItem.message || defaultMsg,
93
- });
94
- }
95
- }
96
- }
97
- }
98
- else {
99
- rules.push({ rule, message: defaultMsg });
100
- }
101
- }
102
- if (schema.required === true &&
103
- (rules == null || rules.findIndex((r) => r.rule === "required") === -1)) {
104
- rules.push(...this._parseStringRule("required", schema.message));
105
- }
106
- parsedRules[schema.key] = rules;
69
+ this.rules[schema.key] = this._parseSchemaRules(schema);
107
70
  }
108
- this.rules = parsedRules;
71
+ }
72
+ addSchema(schema) {
73
+ this.rules[schema.key] = this._parseSchemaRules(schema);
109
74
  }
110
75
  /**
111
76
  * 进行数据验证
@@ -192,6 +157,49 @@ class Validator {
192
157
  }
193
158
  return errMsg;
194
159
  }
160
+ _parseSchemaRules(schema) {
161
+ // 解析规则
162
+ let rules = [];
163
+ let rule = schema.rules;
164
+ if (rule != null) {
165
+ if (typeof rule === "string") {
166
+ rules = rules.concat(this._parseStringRule(rule, schema.message));
167
+ }
168
+ else if (rule instanceof Array) {
169
+ for (let ruleItem of rule) {
170
+ if (typeof ruleItem === "string") {
171
+ rules.push(...this._parseStringRule(ruleItem, schema.message));
172
+ }
173
+ else if (ruleItem instanceof RegExp ||
174
+ typeof ruleItem === "function") {
175
+ rules.push({
176
+ rule: ruleItem,
177
+ message: schema.message || defaultMsg,
178
+ });
179
+ }
180
+ else {
181
+ if (typeof ruleItem.rule === "string") {
182
+ rules.push(...this._parseStringRule(ruleItem.rule, ruleItem.message));
183
+ }
184
+ else {
185
+ rules.push({
186
+ rule: ruleItem.rule,
187
+ message: ruleItem.message || defaultMsg,
188
+ });
189
+ }
190
+ }
191
+ }
192
+ }
193
+ else {
194
+ rules.push({ rule, message: defaultMsg });
195
+ }
196
+ }
197
+ if (schema.required === true &&
198
+ (rules == null || rules.findIndex((r) => r.rule === "required") === -1)) {
199
+ rules.push(...this._parseStringRule("required", schema.message));
200
+ }
201
+ return rules;
202
+ }
195
203
  _parseStringRule(rule, ruleErrMsg) {
196
204
  let rules = [];
197
205
  let trule = rule.split("|");
package/package.json CHANGED
@@ -68,7 +68,7 @@
68
68
  },
69
69
  "./*": "./lib/*"
70
70
  },
71
- "version": "0.10.2",
71
+ "version": "0.11.0",
72
72
  "type": "module",
73
73
  "repository": {
74
74
  "type": "git",