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[]): 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
@@ -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;
@@ -1,6 +1,7 @@
1
- import { schemaFilter, schemaFilterDateRange, schemaFilterTransform } from './v/filter.ts';
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
  };
@@ -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.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"