nesties 1.1.20 → 1.1.22
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/README.md +114 -1
- package/dist/index.cjs +73 -9
- package/dist/index.cjs.map +3 -3
- package/dist/index.mjs +72 -9
- package/dist/index.mjs.map +3 -3
- package/dist/src/resolver.d.ts +16 -5
- package/dist/src/utility/uniq-by.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1398,6 +1398,20 @@ var createProvider = (options, factory) => {
|
|
|
1398
1398
|
// src/utility/resolver-swagger-map.ts
|
|
1399
1399
|
var ResolverSwaggerMap = /* @__PURE__ */ new Map();
|
|
1400
1400
|
|
|
1401
|
+
// src/utility/uniq-by.ts
|
|
1402
|
+
var uniqBy = (arr, fn) => {
|
|
1403
|
+
const seen = /* @__PURE__ */ new Set();
|
|
1404
|
+
const result = [];
|
|
1405
|
+
for (const item of arr) {
|
|
1406
|
+
const key = fn(item);
|
|
1407
|
+
if (!seen.has(key)) {
|
|
1408
|
+
seen.add(key);
|
|
1409
|
+
result.push(item);
|
|
1410
|
+
}
|
|
1411
|
+
}
|
|
1412
|
+
return result;
|
|
1413
|
+
};
|
|
1414
|
+
|
|
1401
1415
|
// src/resolver.ts
|
|
1402
1416
|
var ParamResolverCopiedFieldsFromSwagger = [
|
|
1403
1417
|
"required",
|
|
@@ -1463,8 +1477,22 @@ ParamResolverPipe = __decorateClass([
|
|
|
1463
1477
|
], ParamResolverPipe);
|
|
1464
1478
|
var usedParamResolverTokens = /* @__PURE__ */ new Set();
|
|
1465
1479
|
var ParamResolverBase = class {
|
|
1480
|
+
constructor() {
|
|
1481
|
+
this.extraSwagger = [];
|
|
1482
|
+
}
|
|
1483
|
+
addExtraDecorator(dec, token = Math.random().toString(36)) {
|
|
1484
|
+
this.extraSwagger.push({
|
|
1485
|
+
token,
|
|
1486
|
+
swagger: dec
|
|
1487
|
+
});
|
|
1488
|
+
return this;
|
|
1489
|
+
}
|
|
1490
|
+
// for override
|
|
1491
|
+
toSwaggerInfo(extras = []) {
|
|
1492
|
+
return uniqBy([...this.extraSwagger, ...extras], (info) => info.token);
|
|
1493
|
+
}
|
|
1466
1494
|
toApiPropertyDecorator(extras = {}) {
|
|
1467
|
-
const swaggerInfo = this.toSwaggerInfo();
|
|
1495
|
+
const swaggerInfo = uniqBy(this.toSwaggerInfo(), (info) => info.token);
|
|
1468
1496
|
return (extras2 = {}) => MergeClassOrMethodDecorators(
|
|
1469
1497
|
swaggerInfo.map((info) => info.swagger({ ...extras, ...extras2 }))
|
|
1470
1498
|
);
|
|
@@ -1523,6 +1551,15 @@ var ParamResolver = class extends ParamResolverBase {
|
|
|
1523
1551
|
}
|
|
1524
1552
|
}
|
|
1525
1553
|
}
|
|
1554
|
+
handleResolveValue(v) {
|
|
1555
|
+
if (this.info?.required && v == null) {
|
|
1556
|
+
throw new BlankReturnMessageDto(
|
|
1557
|
+
400,
|
|
1558
|
+
`Required parameter '${this.info.paramName}' in ${this.info.paramType} is missing`
|
|
1559
|
+
).toException();
|
|
1560
|
+
}
|
|
1561
|
+
return v;
|
|
1562
|
+
}
|
|
1526
1563
|
resolve(req, ref) {
|
|
1527
1564
|
if (this.info) {
|
|
1528
1565
|
if (this.info.paramType === "header") {
|
|
@@ -1530,10 +1567,10 @@ var ParamResolver = class extends ParamResolverBase {
|
|
|
1530
1567
|
let raw = getHeader(req, name);
|
|
1531
1568
|
if (name === "accept-language")
|
|
1532
1569
|
raw = pickPrimaryFromAcceptLanguage(raw);
|
|
1533
|
-
return raw;
|
|
1570
|
+
return this.handleResolveValue(raw);
|
|
1534
1571
|
}
|
|
1535
1572
|
if (this.info.paramType === "query") {
|
|
1536
|
-
return getQueryValue(req, this.info.paramName);
|
|
1573
|
+
return this.handleResolveValue(getQueryValue(req, this.info.paramName));
|
|
1537
1574
|
}
|
|
1538
1575
|
throw new Error(`Unsupported paramType: ${this.info.paramType}`);
|
|
1539
1576
|
} else if (this.dynamic) {
|
|
@@ -1544,7 +1581,7 @@ var ParamResolver = class extends ParamResolverBase {
|
|
|
1544
1581
|
const suffix = this.info ? `${this.info.paramType.toUpperCase()}_${this.info.paramName}` : `DYNAMIC`;
|
|
1545
1582
|
return `ParamResolver_${suffix}`;
|
|
1546
1583
|
}
|
|
1547
|
-
toSwaggerInfo() {
|
|
1584
|
+
toSwaggerInfo(extras = []) {
|
|
1548
1585
|
const swagger = (extras2 = {}) => {
|
|
1549
1586
|
if (this.info) {
|
|
1550
1587
|
const paramType = this.info.paramType;
|
|
@@ -1565,12 +1602,19 @@ var ParamResolver = class extends ParamResolverBase {
|
|
|
1565
1602
|
return () => {
|
|
1566
1603
|
};
|
|
1567
1604
|
};
|
|
1568
|
-
return [
|
|
1605
|
+
return super.toSwaggerInfo([
|
|
1569
1606
|
{
|
|
1570
1607
|
swagger,
|
|
1571
1608
|
token: this.toString()
|
|
1572
|
-
}
|
|
1573
|
-
|
|
1609
|
+
},
|
|
1610
|
+
...this.info?.required ? [
|
|
1611
|
+
{
|
|
1612
|
+
swagger: () => ApiError(400, "Invalid request parameters"),
|
|
1613
|
+
token: `__missing_required_400__`
|
|
1614
|
+
}
|
|
1615
|
+
] : [],
|
|
1616
|
+
...extras
|
|
1617
|
+
]);
|
|
1574
1618
|
}
|
|
1575
1619
|
};
|
|
1576
1620
|
var CombinedParamResolver = class extends ParamResolverBase {
|
|
@@ -1594,10 +1638,28 @@ var CombinedParamResolver = class extends ParamResolverBase {
|
|
|
1594
1638
|
const suffix = Object.entries(this.resolvers).map(([key, resolver]) => `${key.toString()}_${resolver.toString()}`).join("__");
|
|
1595
1639
|
return `CombinedParamResolver_${suffix}`;
|
|
1596
1640
|
}
|
|
1597
|
-
toSwaggerInfo() {
|
|
1598
|
-
|
|
1641
|
+
toSwaggerInfo(extras = []) {
|
|
1642
|
+
const combined = Object.values(this.resolvers).flatMap(
|
|
1599
1643
|
(resolver) => resolver.toSwaggerInfo()
|
|
1600
1644
|
);
|
|
1645
|
+
return super.toSwaggerInfo([...combined, ...extras]);
|
|
1646
|
+
}
|
|
1647
|
+
};
|
|
1648
|
+
var TransformParamResolver = class extends ParamResolverBase {
|
|
1649
|
+
constructor(baseResolver, transformFn) {
|
|
1650
|
+
super();
|
|
1651
|
+
this.baseResolver = baseResolver;
|
|
1652
|
+
this.transformFn = transformFn;
|
|
1653
|
+
}
|
|
1654
|
+
async resolve(req, ref) {
|
|
1655
|
+
const baseValue = await this.baseResolver.resolve(req, ref);
|
|
1656
|
+
return this.transformFn(baseValue, ref, req);
|
|
1657
|
+
}
|
|
1658
|
+
toString() {
|
|
1659
|
+
return `Transform_${this.baseResolver.toString()}`;
|
|
1660
|
+
}
|
|
1661
|
+
toSwaggerInfo(extras = []) {
|
|
1662
|
+
return this.baseResolver.toSwaggerInfo(extras);
|
|
1601
1663
|
}
|
|
1602
1664
|
};
|
|
1603
1665
|
var getParamResolver = (input) => {
|
|
@@ -2063,6 +2125,7 @@ export {
|
|
|
2063
2125
|
ReturnMessageDto,
|
|
2064
2126
|
StringReturnMessageDto,
|
|
2065
2127
|
TokenGuard,
|
|
2128
|
+
TransformParamResolver,
|
|
2066
2129
|
abortableToken,
|
|
2067
2130
|
createAbortableProvider,
|
|
2068
2131
|
createI18n,
|