vona-module-a-openapiutils 5.0.14 → 5.0.16
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.
|
@@ -7,4 +7,4 @@ export declare const locales: {
|
|
|
7
7
|
ZodErrorRequired: string;
|
|
8
8
|
};
|
|
9
9
|
};
|
|
10
|
-
export declare function $locale<K extends keyof (typeof locales)[TypeLocaleBase]>(key: K, ...args: any[]):
|
|
10
|
+
export declare function $locale<K extends keyof (typeof locales)[TypeLocaleBase]>(key: K, ...args: any[]): any;
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@ import { Scope } from 'vona-module-a-bean';
|
|
|
4
4
|
import { isEmptyObject, isClass, isNil, combineParamsAndQuery } from '@cabloy/utils';
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
import { ZodMetadata } from '@cabloy/zod-openapi';
|
|
7
|
+
import React from 'react';
|
|
7
8
|
import { coerceWithNil } from '@cabloy/zod-query';
|
|
8
9
|
|
|
9
10
|
let ScopeModuleAOpenapiutils = class ScopeModuleAOpenapiutils extends BeanScopeBase {};
|
|
@@ -32,6 +33,11 @@ const OrderCoreBase = 100;
|
|
|
32
33
|
const OrderBusinessBase = 1000;
|
|
33
34
|
const OrderUnknownBase = 10000;
|
|
34
35
|
const OrderMaxBase = 100000;
|
|
36
|
+
const OrderLevelBaseMap = {
|
|
37
|
+
core: OrderCoreBase,
|
|
38
|
+
business: OrderBusinessBase,
|
|
39
|
+
max: OrderMaxBase
|
|
40
|
+
};
|
|
35
41
|
|
|
36
42
|
const SymbolRouteHandlersArgumentsMeta = Symbol('SymbolRouteHandlersArgumentsMeta');
|
|
37
43
|
const SymbolRouteHandlersArgumentsValue = Symbol('SymbolRouteHandlersArgumentsValue');
|
|
@@ -228,10 +234,20 @@ function schemaFilterTransform(filterTransformName, options) {
|
|
|
228
234
|
};
|
|
229
235
|
}
|
|
230
236
|
function schemaFilterDateRange(options) {
|
|
237
|
+
const separator = options?.separator;
|
|
238
|
+
const DateRange = 'dateRange';
|
|
239
|
+
const filterRender = separator ? React.createElement(DateRange, {
|
|
240
|
+
separator: separator
|
|
241
|
+
}) : 'dateRange';
|
|
231
242
|
return function (schema) {
|
|
232
243
|
return schema.openapi({
|
|
233
244
|
filter: {
|
|
234
245
|
transform: ['a-web:dateRange', options]
|
|
246
|
+
},
|
|
247
|
+
rest: {
|
|
248
|
+
filter: {
|
|
249
|
+
render: filterRender
|
|
250
|
+
}
|
|
235
251
|
}
|
|
236
252
|
});
|
|
237
253
|
};
|
|
@@ -362,6 +378,88 @@ function schemaExample(example) {
|
|
|
362
378
|
};
|
|
363
379
|
}
|
|
364
380
|
|
|
381
|
+
function schemaOrder(order, level, scene) {
|
|
382
|
+
const levelBase = OrderLevelBaseMap[level ?? 'business'];
|
|
383
|
+
const orderReal = levelBase + order;
|
|
384
|
+
return function (schema) {
|
|
385
|
+
return schema.openapi(scene ? {
|
|
386
|
+
rest: {
|
|
387
|
+
[scene]: {
|
|
388
|
+
order: orderReal
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
} : {
|
|
392
|
+
rest: {
|
|
393
|
+
order: orderReal
|
|
394
|
+
}
|
|
395
|
+
});
|
|
396
|
+
};
|
|
397
|
+
}
|
|
398
|
+
function schemaRender(render, scene) {
|
|
399
|
+
return function (schema) {
|
|
400
|
+
return schema.openapi(scene ? {
|
|
401
|
+
rest: {
|
|
402
|
+
[scene]: {
|
|
403
|
+
render: render
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
} : {
|
|
407
|
+
rest: {
|
|
408
|
+
render: render
|
|
409
|
+
}
|
|
410
|
+
});
|
|
411
|
+
};
|
|
412
|
+
}
|
|
413
|
+
function schemaVisible(visible, scene) {
|
|
414
|
+
return function (schema) {
|
|
415
|
+
return schema.openapi(scene ? {
|
|
416
|
+
rest: {
|
|
417
|
+
[scene]: {
|
|
418
|
+
visible
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
} : {
|
|
422
|
+
rest: {
|
|
423
|
+
visible
|
|
424
|
+
}
|
|
425
|
+
});
|
|
426
|
+
};
|
|
427
|
+
}
|
|
428
|
+
function schemaCurrency(currency, scene) {
|
|
429
|
+
return function (schema) {
|
|
430
|
+
const options = currency !== undefined ? {
|
|
431
|
+
render: 'currency',
|
|
432
|
+
currency
|
|
433
|
+
} : {
|
|
434
|
+
render: 'currency'
|
|
435
|
+
};
|
|
436
|
+
return schema.openapi(scene ? {
|
|
437
|
+
rest: {
|
|
438
|
+
[scene]: options
|
|
439
|
+
}
|
|
440
|
+
} : {
|
|
441
|
+
rest: options
|
|
442
|
+
});
|
|
443
|
+
};
|
|
444
|
+
}
|
|
445
|
+
function schemaDate(dateFormat, scene) {
|
|
446
|
+
return function (schema) {
|
|
447
|
+
const options = dateFormat !== undefined ? {
|
|
448
|
+
render: 'date',
|
|
449
|
+
dateFormat
|
|
450
|
+
} : {
|
|
451
|
+
render: 'date'
|
|
452
|
+
};
|
|
453
|
+
return schema.openapi(scene ? {
|
|
454
|
+
rest: {
|
|
455
|
+
[scene]: options
|
|
456
|
+
}
|
|
457
|
+
} : {
|
|
458
|
+
rest: options
|
|
459
|
+
});
|
|
460
|
+
};
|
|
461
|
+
}
|
|
462
|
+
|
|
365
463
|
function schemaSerializerTransform(serializerTransformName, options) {
|
|
366
464
|
return function (schema) {
|
|
367
465
|
return schema.openapi({
|
|
@@ -552,6 +650,12 @@ const v = {
|
|
|
552
650
|
title: schemaTitle,
|
|
553
651
|
description: schemaDescription,
|
|
554
652
|
example: schemaExample,
|
|
653
|
+
// rest
|
|
654
|
+
currency: schemaCurrency,
|
|
655
|
+
date: schemaDate,
|
|
656
|
+
order: schemaOrder,
|
|
657
|
+
render: schemaRender,
|
|
658
|
+
visible: schemaVisible,
|
|
555
659
|
// zod
|
|
556
660
|
refine: schemaZodRefine,
|
|
557
661
|
transform: schemaZodTransform
|
|
@@ -682,4 +786,4 @@ function $makeFilterTransform(filterTransformName, options) {
|
|
|
682
786
|
return [filterTransformName, options];
|
|
683
787
|
}
|
|
684
788
|
|
|
685
|
-
export { $apiPath, $apiPathAndCombineParamsAndQuery, $locale, $makeFilterTransform, $makeSchema, $schema, $schemaLazy, Api, OrderBusinessBase, OrderCoreBase, OrderMaxBase, OrderUnknownBase, ScopeModuleAOpenapiutils, SymbolDecoratorRule, SymbolOpenApiOptions, SymbolRouteHandlersArgumentsMeta, SymbolRouteHandlersArgumentsValue, SymbolSchemaDynamicRefId, addSchemaDynamic, bodySchemaWrapperDefault, getSchemaDynamic, getSchemasDynamic, getTargetDecoratorRuleColumns, getTargetDecoratorRuleColumnsMap, getTargetDecoratorRules, locales, makeSchemaLike, makeSchemaLikes, mergeFieldOpenapiMetadata, mergeFieldsOpenapiMetadata, normalizeErrorParams, prepareClassType, setPublic, v };
|
|
789
|
+
export { $apiPath, $apiPathAndCombineParamsAndQuery, $locale, $makeFilterTransform, $makeSchema, $schema, $schemaLazy, Api, OrderBusinessBase, OrderCoreBase, OrderLevelBaseMap, OrderMaxBase, OrderUnknownBase, ScopeModuleAOpenapiutils, SymbolDecoratorRule, SymbolOpenApiOptions, SymbolRouteHandlersArgumentsMeta, SymbolRouteHandlersArgumentsValue, SymbolSchemaDynamicRefId, addSchemaDynamic, bodySchemaWrapperDefault, getSchemaDynamic, getSchemasDynamic, getTargetDecoratorRuleColumns, getTargetDecoratorRuleColumnsMap, getTargetDecoratorRules, locales, makeSchemaLike, makeSchemaLikes, mergeFieldOpenapiMetadata, mergeFieldsOpenapiMetadata, normalizeErrorParams, prepareClassType, setPublic, v };
|
|
@@ -2,3 +2,8 @@ export declare const OrderCoreBase = 100;
|
|
|
2
2
|
export declare const OrderBusinessBase = 1000;
|
|
3
3
|
export declare const OrderUnknownBase = 10000;
|
|
4
4
|
export declare const OrderMaxBase = 100000;
|
|
5
|
+
export declare const OrderLevelBaseMap: {
|
|
6
|
+
core: number;
|
|
7
|
+
business: number;
|
|
8
|
+
max: number;
|
|
9
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CurrencyOptions } from '@zhennann/currency';
|
|
2
|
+
import type { TypeDateFormat, TypeRenderComponent, TypeSchemaScene } from 'vona-module-a-openapi';
|
|
3
|
+
import type z from 'zod';
|
|
4
|
+
import type { TypeSchemaOrderLevel } from '../../../types/order.ts';
|
|
5
|
+
export declare function schemaOrder<T extends z.ZodType>(order: number, level?: TypeSchemaOrderLevel, scene?: TypeSchemaScene): (schema: T) => T;
|
|
6
|
+
export declare function schemaRender<T extends z.ZodType>(render: TypeRenderComponent, scene?: TypeSchemaScene): (schema: T) => T;
|
|
7
|
+
export declare function schemaVisible<T extends z.ZodType>(visible?: boolean, scene?: TypeSchemaScene): (schema: T) => T;
|
|
8
|
+
export declare function schemaCurrency<T extends z.ZodType>(currency?: CurrencyOptions, scene?: TypeSchemaScene): (schema: T) => T;
|
|
9
|
+
export declare function schemaDate<T extends z.ZodType>(dateFormat?: TypeDateFormat, scene?: TypeSchemaScene): (schema: T) => T;
|
package/dist/lib/schema/v.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { schemaFilter, schemaFilterDateRange, schemaFilterTransform } from './v/filter.
|
|
1
|
+
import { schemaFilter, schemaFilterDateRange, schemaFilterTransform } from './v/filter.tsx';
|
|
2
2
|
import { schemaCaptcha, schemaEmail, schemaIPv4, schemaIPv6, schemaLowercase, schemaMax, schemaMin, schemaRegex, schemaTableIdentity, schemaToLowerCase, schemaToUpperCase, schemaTrim, schemaUppercase, schemaUrl, schemaUuid } from './v/helpers.ts';
|
|
3
3
|
import { schemaDescription, schemaExample, schemaOpenapi, schemaTitle } from './v/openapi.ts';
|
|
4
|
+
import { schemaCurrency, schemaDate, schemaOrder, schemaRender, schemaVisible } from './v/rest.ts';
|
|
4
5
|
import { schemaSerializerCustom, schemaSerializerExclude, schemaSerializerGetter, schemaSerializerReplace, schemaSerializerTransform } from './v/serializer.ts';
|
|
5
6
|
import { schemaArray, schemaDefault, schemaLazy, schemaLooseObject, schemaObject, schemaOptional, schemaRequired, schemaStrictObject } from './v/system.ts';
|
|
6
7
|
import { schemaZodRefine, schemaZodTransform } from './v/zod.ts';
|
|
@@ -40,6 +41,11 @@ export declare const v: {
|
|
|
40
41
|
title: typeof schemaTitle;
|
|
41
42
|
description: typeof schemaDescription;
|
|
42
43
|
example: typeof schemaExample;
|
|
44
|
+
currency: typeof schemaCurrency;
|
|
45
|
+
date: typeof schemaDate;
|
|
46
|
+
order: typeof schemaOrder;
|
|
47
|
+
render: typeof schemaRender;
|
|
48
|
+
visible: typeof schemaVisible;
|
|
43
49
|
refine: typeof schemaZodRefine;
|
|
44
50
|
transform: typeof schemaZodTransform;
|
|
45
51
|
};
|
package/dist/types/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vona-module-a-openapiutils",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.0.
|
|
4
|
+
"version": "5.0.16",
|
|
5
5
|
"title": "a-openapiutils",
|
|
6
6
|
"vonaModule": {
|
|
7
7
|
"dependencies": {}
|
|
@@ -25,6 +25,9 @@
|
|
|
25
25
|
"assets",
|
|
26
26
|
"dist"
|
|
27
27
|
],
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@zhennann/currency": "^2.0.0"
|
|
30
|
+
},
|
|
28
31
|
"scripts": {
|
|
29
32
|
"clean": "rimraf dist tsconfig.build.tsbuildinfo",
|
|
30
33
|
"tsc:publish": "npm run clean && vona :bin:buildModule && tsc -p tsconfig.build.json"
|