vona-module-a-openapiutils 5.0.14 → 5.0.15

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[]): import("vona").ILocaleMagic<`a-openapiutils::${K}`>;
10
+ export declare function $locale<K extends keyof (typeof locales)[TypeLocaleBase]>(key: K, ...args: any[]): any;
package/dist/index.js CHANGED
@@ -32,6 +32,11 @@ const OrderCoreBase = 100;
32
32
  const OrderBusinessBase = 1000;
33
33
  const OrderUnknownBase = 10000;
34
34
  const OrderMaxBase = 100000;
35
+ const OrderLevelBaseMap = {
36
+ core: OrderCoreBase,
37
+ business: OrderBusinessBase,
38
+ max: OrderMaxBase
39
+ };
35
40
 
36
41
  const SymbolRouteHandlersArgumentsMeta = Symbol('SymbolRouteHandlersArgumentsMeta');
37
42
  const SymbolRouteHandlersArgumentsValue = Symbol('SymbolRouteHandlersArgumentsValue');
@@ -232,6 +237,11 @@ function schemaFilterDateRange(options) {
232
237
  return schema.openapi({
233
238
  filter: {
234
239
  transform: ['a-web:dateRange', options]
240
+ },
241
+ rest: {
242
+ filter: {
243
+ render: 'dateRange'
244
+ }
235
245
  }
236
246
  });
237
247
  };
@@ -362,6 +372,88 @@ function schemaExample(example) {
362
372
  };
363
373
  }
364
374
 
375
+ function schemaOrder(order, level, scene) {
376
+ const levelBase = OrderLevelBaseMap[level ?? 'business'];
377
+ const orderReal = levelBase + order;
378
+ return function (schema) {
379
+ return schema.openapi(scene ? {
380
+ rest: {
381
+ [scene]: {
382
+ order: orderReal
383
+ }
384
+ }
385
+ } : {
386
+ rest: {
387
+ order: orderReal
388
+ }
389
+ });
390
+ };
391
+ }
392
+ function schemaRender(render, scene) {
393
+ return function (schema) {
394
+ return schema.openapi(scene ? {
395
+ rest: {
396
+ [scene]: {
397
+ render: render
398
+ }
399
+ }
400
+ } : {
401
+ rest: {
402
+ render: render
403
+ }
404
+ });
405
+ };
406
+ }
407
+ function schemaVisible(visible, scene) {
408
+ return function (schema) {
409
+ return schema.openapi(scene ? {
410
+ rest: {
411
+ [scene]: {
412
+ visible
413
+ }
414
+ }
415
+ } : {
416
+ rest: {
417
+ visible
418
+ }
419
+ });
420
+ };
421
+ }
422
+ function schemaCurrency(currency, scene) {
423
+ return function (schema) {
424
+ const options = currency !== undefined ? {
425
+ render: 'currency',
426
+ currency
427
+ } : {
428
+ render: 'currency'
429
+ };
430
+ return schema.openapi(scene ? {
431
+ rest: {
432
+ [scene]: options
433
+ }
434
+ } : {
435
+ rest: options
436
+ });
437
+ };
438
+ }
439
+ function schemaDate(dateFormat, scene) {
440
+ return function (schema) {
441
+ const options = dateFormat !== undefined ? {
442
+ render: 'date',
443
+ dateFormat
444
+ } : {
445
+ render: 'date'
446
+ };
447
+ return schema.openapi(scene ? {
448
+ rest: {
449
+ [scene]: options
450
+ }
451
+ } : {
452
+ rest: options
453
+ });
454
+ };
455
+ }
456
+
365
457
  function schemaSerializerTransform(serializerTransformName, options) {
366
458
  return function (schema) {
367
459
  return schema.openapi({
@@ -552,6 +644,12 @@ const v = {
552
644
  title: schemaTitle,
553
645
  description: schemaDescription,
554
646
  example: schemaExample,
647
+ // rest
648
+ currency: schemaCurrency,
649
+ date: schemaDate,
650
+ order: schemaOrder,
651
+ render: schemaRender,
652
+ visible: schemaVisible,
555
653
  // zod
556
654
  refine: schemaZodRefine,
557
655
  transform: schemaZodTransform
@@ -682,4 +780,4 @@ function $makeFilterTransform(filterTransformName, options) {
682
780
  return [filterTransformName, options];
683
781
  }
684
782
 
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 };
783
+ 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;
@@ -1,6 +1,7 @@
1
1
  import { schemaFilter, schemaFilterDateRange, schemaFilterTransform } from './v/filter.ts';
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
  };
@@ -1,2 +1,3 @@
1
1
  export * from './api.ts';
2
2
  export * from './decorator.ts';
3
+ export * from './order.ts';
@@ -0,0 +1,7 @@
1
+ import type { TypeSchemaScene } from 'vona-module-a-openapi';
2
+ export type TypeSchemaOrderLevel = 'core' | 'business' | 'max';
3
+ export interface ISchemaOrderParams {
4
+ order: number;
5
+ level?: TypeSchemaOrderLevel;
6
+ scene?: TypeSchemaScene;
7
+ }
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.14",
4
+ "version": "5.0.15",
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"