@azure-net/kit 3.0.53 → 3.0.55

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.
@@ -18,4 +18,4 @@ export declare const createErrorParser: <BaseError = unknown, Custom = unknown>(
18
18
  parseBaseError?: typeof baseParseBaseError<Custom>;
19
19
  parseHttpError?: typeof baseParseHttpError<BaseError, Custom>;
20
20
  parseSchemaError?: typeof baseParseSchemaError<BaseError, Custom>;
21
- }) => (<T = unknown>(error: ErrorType<BaseError>, retry?: () => unknown) => Promise<AppError<T, Custom>>);
21
+ }) => (<T = unknown>(error: ErrorType<BaseError>) => Promise<AppError<T, Custom>>);
@@ -1,3 +1,7 @@
1
+ type TransformationParams<SchemaData> = {
2
+ validate?: boolean;
3
+ onValidationError?: (errors: RequestErrors<SchemaData>) => void;
4
+ };
1
5
  type DeepKeys<SchemaData> = SchemaData extends object ? {
2
6
  [K in keyof SchemaData & string]: SchemaData[K] extends object ? K | `${K}.${DeepKeys<SchemaData[K]>}` : K;
3
7
  }[keyof SchemaData & string] : never;
@@ -32,8 +36,8 @@ interface SchemaBuilder<SchemaData, Rules = unknown, TransformResult = SchemaDat
32
36
  create(): Schema<SchemaData, TransformResult, CustomMethods>;
33
37
  }
34
38
  interface SchemaInstance<TransformResult, SchemaData> {
35
- json(validate?: boolean): TransformResult;
36
- formData(validate?: boolean): FormData;
39
+ json(params?: TransformationParams<SchemaData>): TransformResult;
40
+ formData(params?: TransformationParams<SchemaData>): FormData;
37
41
  validated(): {
38
42
  valid: boolean;
39
43
  errors: RequestErrors<SchemaData>;
@@ -69,7 +69,7 @@ class SchemaBuilderImpl {
69
69
  if (typeof _preparedData !== 'object') {
70
70
  throw Error('Data to validate is not an object');
71
71
  }
72
- const validated = () => {
72
+ const validated = (params) => {
73
73
  _isValid = true;
74
74
  _errors = {};
75
75
  const definedSchema = rules?.(rulesFactory);
@@ -91,21 +91,26 @@ class SchemaBuilderImpl {
91
91
  }
92
92
  }
93
93
  }
94
+ if (!_isValid && params?.onValidationError) {
95
+ params.onValidationError(_errors);
96
+ }
94
97
  return {
95
98
  valid: _isValid,
96
99
  errors: _errors,
97
- json: () => json(false),
98
- formData: () => formData(false)
100
+ json: () => json({ validate: false }),
101
+ formData: () => formData({ validate: false })
99
102
  };
100
103
  };
101
- const json = (validate = true) => {
102
- if (validate && !validated().valid) {
104
+ const json = (params = {}) => {
105
+ const { validate = true, onValidationError } = params;
106
+ if (validate && !validated({ onValidationError }).valid) {
103
107
  throw new SchemaFail(_errors);
104
108
  }
105
109
  return transform(_preparedData);
106
110
  };
107
- const formData = (validate = true) => {
108
- if (validate && !validated().valid) {
111
+ const formData = (params = {}) => {
112
+ const { validate = true, onValidationError } = params;
113
+ if (validate && !validated({ onValidationError }).valid) {
109
114
  throw new SchemaFail(_errors);
110
115
  }
111
116
  return FormDataUtil.fromObject(transform(_preparedData));
@@ -16,8 +16,8 @@ const createAsyncSignalManager = () => {
16
16
  instances.set(key, callback);
17
17
  }
18
18
  };
19
- const unregister = (key) => {
20
- if (instances) {
19
+ const unregister = (key, callback) => {
20
+ if (instances && instances.get(key) === callback) {
21
21
  instances.delete(key);
22
22
  }
23
23
  };
@@ -115,12 +115,11 @@ export const createAsyncSignal = (handler, options = {}) => {
115
115
  };
116
116
  if (EnvironmentUtil.isBrowser) {
117
117
  const signalKey = key ?? asyncSignalManager.generateKey();
118
- asyncSignalManager.register(signalKey, (source) => {
119
- return start(source);
120
- });
118
+ const callback = (source) => start(source);
119
+ asyncSignalManager.register(signalKey, callback);
121
120
  $effect(() => {
122
121
  return () => {
123
- asyncSignalManager.unregister(signalKey);
122
+ asyncSignalManager.unregister(signalKey, callback);
124
123
  };
125
124
  });
126
125
  if (watch.length > 0) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure-net/kit",
3
- "version": "3.0.53",
3
+ "version": "3.0.55",
4
4
  "files": [
5
5
  "dist",
6
6
  "!dist/**/*.test.*",