@azure-tools/typespec-azure-core 0.42.0-dev.4 → 0.42.0-dev.5
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 +1 -0
- package/dist/src/linter.d.ts.map +1 -1
- package/dist/src/linter.js +2 -0
- package/dist/src/linter.js.map +1 -1
- package/dist/src/rules/no-generic-numeric.d.ts +5 -0
- package/dist/src/rules/no-generic-numeric.d.ts.map +1 -0
- package/dist/src/rules/no-generic-numeric.js +63 -0
- package/dist/src/rules/no-generic-numeric.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -46,6 +46,7 @@ Available ruleSets:
|
|
|
46
46
|
| `@azure-tools/typespec-azure-core/no-explicit-routes-resource-ops` | The @route decorator should not be used on standard resource operation signatures. |
|
|
47
47
|
| `@azure-tools/typespec-azure-core/no-fixed-enum-discriminator` | Discriminator shouldn't be a fixed enum. |
|
|
48
48
|
| [`@azure-tools/typespec-azure-core/non-breaking-versioning`](https://azure.github.io/typespec-azure/docs/libraries/azure-core/rules/non-breaking-versioning) | Check that only backward compatible versioning change are done to a service. |
|
|
49
|
+
| [`@azure-tools/typespec-azure-core/no-generic-numeric`](https://azure.github.io/typespec-azure/docs/libraries/azure-core/rules/no-generic-numeric) | Don't use generic types. Use more specific types instead. |
|
|
49
50
|
| `@azure-tools/typespec-azure-core/no-nullable` | Use `?` for optional properties. |
|
|
50
51
|
| `@azure-tools/typespec-azure-core/no-offsetdatetime` | Prefer using `utcDateTime` when representing a datetime unless an offset is necessary. |
|
|
51
52
|
| `@azure-tools/typespec-azure-core/no-response-body` | Ensure that the body is set correctly for the response type. |
|
package/dist/src/linter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AA4EA,eAAO,MAAM,OAAO,+CAiDlB,CAAC"}
|
package/dist/src/linter.js
CHANGED
|
@@ -13,6 +13,7 @@ import { noEnumRule } from "./rules/no-enum.js";
|
|
|
13
13
|
import { noErrorStatusCodesRule } from "./rules/no-error-status-codes.js";
|
|
14
14
|
import { noExplicitRoutesResourceOps } from "./rules/no-explicit-routes-resource-ops.js";
|
|
15
15
|
import { noFixedEnumDiscriminatorRule } from "./rules/no-fixed-enum-discriminator.js";
|
|
16
|
+
import { noGenericNumericRule } from "./rules/no-generic-numeric.js";
|
|
16
17
|
import { noNullableRule } from "./rules/no-nullable.js";
|
|
17
18
|
import { noOffsetDateTimeRule } from "./rules/no-offsetdatetime.js";
|
|
18
19
|
import { operationIdRule } from "./rules/no-operation-id.js";
|
|
@@ -50,6 +51,7 @@ const rules = [
|
|
|
50
51
|
noExplicitRoutesResourceOps,
|
|
51
52
|
noFixedEnumDiscriminatorRule,
|
|
52
53
|
nonBreakingVersioningRule,
|
|
54
|
+
noGenericNumericRule,
|
|
53
55
|
noNullableRule,
|
|
54
56
|
noOffsetDateTimeRule,
|
|
55
57
|
noResponseBodyRule,
|
package/dist/src/linter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,4CAA4C,EAAE,MAAM,kCAAkC,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,iCAAiC,EAAE,MAAM,8CAA8C,CAAC;AACjG,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,MAAM,KAAK,GAAG;IACZ,cAAc;IACd,gBAAgB;IAChB,aAAa;IACb,QAAQ;IACR,UAAU;IACV,8BAA8B;IAC9B,kBAAkB;IAClB,iBAAiB;IACjB,4CAA4C;IAC5C,wBAAwB;IACxB,UAAU;IACV,sBAAsB;IACtB,2BAA2B;IAC3B,4BAA4B;IAC5B,yBAAyB;IACzB,oBAAoB;IACpB,cAAc;IACd,oBAAoB;IACpB,kBAAkB;IAClB,mBAAmB;IACnB,eAAe;IACf,6BAA6B;IAC7B,gBAAgB;IAChB,4BAA4B;IAC5B,4BAA4B;IAC5B,kBAAkB;IAClB,gBAAgB;IAChB,cAAc;IACd,oBAAoB;IACpB,oBAAoB;IACpB,iCAAiC;IACjC,2BAA2B;IAC3B,4BAA4B;IAC5B,gBAAgB;IAChB,qBAAqB;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;IAClC,KAAK;IACL,QAAQ,EAAE;QACR,GAAG,EAAE;YACH,MAAM,EAAE;gBACN,CAAC,oCAAoC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACjE,CAAC,oCAAoC,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACnE,CAAC,oCAAoC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAClE,CAAC,oCAAoC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAChE,CAAC,oCAAoC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAC3D,CAAC,oCAAoC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAC7D,CAAC,oCAAoC,8BAA8B,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACjF,CAAC,oCAAoC,4BAA4B,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAC/E,CAAC,oCAAoC,6BAA6B,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAChF,CAAC,oCAAoC,kBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACrE,CAAC,oCAAoC,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACpE,CAAC,oCAAoC,qBAAqB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACxE,CAAC,oCAAoC,sBAAsB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACzE,CAAC,oCAAoC,4BAA4B,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAC/E,CAAC,oCAAoC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACjE,CAAC,oCAAoC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACvE,CAAC,oCAAoC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACtE,CAAC,oCAAoC,2BAA2B,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAC9E,CAAC,oCAAoC,kBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACrE,CAAC,oCAAoC,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACnE,CAAC,oCAAoC,4BAA4B,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAC/E,CAAC,oCAAoC,4BAA4B,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAC/E,CAAC,oCAAoC,kBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACrE,CAAC,oCAAoC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACjE,CAAC,oCAAoC,iCAAiC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACpF,CAAC,oCAAoC,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACnE,CAAC,oCAAoC,2BAA2B,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAC9E,CAAC,oCAAoC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACvE,CAAC,oCAAoC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACvE,CAAC,oCAAoC,4CAA4C,CAAC,IAAI,EAAE,CAAC,EACvF,IAAI;gBACN,CAAC,oCAAoC,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACnE,CAAC,oCAAoC,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBACnE,CAAC,oCAAoC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;gBAC7D,CAAC,oCAAoC,wBAAwB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;aAC5E;YACD,OAAO,EAAE,CAAC,oBAAoB,CAAC;SAChC;QACD,sBAAsB,EAAE;YACtB,MAAM,EAAE;gBACN,CAAC,oCAAoC,yBAAyB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK;aAC9E;SACF;KACF;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const noGenericNumericRule: import("@typespec/compiler").LinterRuleDefinition<"no-generic-numeric", {
|
|
2
|
+
readonly default: import("@typespec/compiler").CallableMessage<[string, string]>;
|
|
3
|
+
readonly extend: import("@typespec/compiler").CallableMessage<[string, string]>;
|
|
4
|
+
}>;
|
|
5
|
+
//# sourceMappingURL=no-generic-numeric.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-generic-numeric.d.ts","sourceRoot":"","sources":["../../../src/rules/no-generic-numeric.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,oBAAoB;;;EAqD/B,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { createRule, paramMessage } from "@typespec/compiler";
|
|
2
|
+
const disallowList = new Set(["integer", "numeric", "float", "decimal"]);
|
|
3
|
+
const alternatives = new Map([
|
|
4
|
+
["integer", "int32"],
|
|
5
|
+
["numeric", "int32"],
|
|
6
|
+
["float", "float32"],
|
|
7
|
+
["decimal", "float32"],
|
|
8
|
+
]);
|
|
9
|
+
export const noGenericNumericRule = createRule({
|
|
10
|
+
name: "no-generic-numeric",
|
|
11
|
+
description: "Don't use generic types. Use more specific types instead.",
|
|
12
|
+
severity: "warning",
|
|
13
|
+
url: "https://azure.github.io/typespec-azure/docs/libraries/azure-core/rules/no-generic-numeric",
|
|
14
|
+
messages: {
|
|
15
|
+
default: paramMessage `Don't use generic type '${"name"}'. Use a more specific type that specifies the bit size, such as '${"alternative"}' instead.`,
|
|
16
|
+
extend: paramMessage `Don't extend generic type '${"name"}'. Use a more specific type that specifies the bit size, such as '${"alternative"}' instead.`,
|
|
17
|
+
},
|
|
18
|
+
create(context) {
|
|
19
|
+
return {
|
|
20
|
+
model: (model) => {
|
|
21
|
+
for (const [_, prop] of model.properties) {
|
|
22
|
+
if (prop.type.kind === "Scalar") {
|
|
23
|
+
if (disallowList.has(prop.type.name)) {
|
|
24
|
+
context.reportDiagnostic({
|
|
25
|
+
target: prop,
|
|
26
|
+
format: {
|
|
27
|
+
name: prop.type.name,
|
|
28
|
+
alternative: alternatives.get(prop.type.name),
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
scalar: (scalar) => {
|
|
36
|
+
// if the scalar is the base scalar, then we don't need to check it as it will surface
|
|
37
|
+
// in usage (for example: as a model property)
|
|
38
|
+
if (disallowList.has(scalar.name)) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
let baseScalar = undefined;
|
|
42
|
+
while (scalar.baseScalar !== undefined) {
|
|
43
|
+
baseScalar = scalar.baseScalar;
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
if (baseScalar === undefined) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (disallowList.has(baseScalar.name)) {
|
|
50
|
+
context.reportDiagnostic({
|
|
51
|
+
target: scalar,
|
|
52
|
+
messageId: "extend",
|
|
53
|
+
format: {
|
|
54
|
+
name: baseScalar.name,
|
|
55
|
+
alternative: alternatives.get(baseScalar.name),
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=no-generic-numeric.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-generic-numeric.js","sourceRoot":"","sources":["../../../src/rules/no-generic-numeric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE7E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AACzE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,CAAC,SAAS,EAAE,OAAO,CAAC;IACpB,CAAC,SAAS,EAAE,OAAO,CAAC;IACpB,CAAC,OAAO,EAAE,SAAS,CAAC;IACpB,CAAC,SAAS,EAAE,SAAS,CAAC;CACvB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;IAC7C,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,2DAA2D;IACxE,QAAQ,EAAE,SAAS;IACnB,GAAG,EAAE,2FAA2F;IAChG,QAAQ,EAAE;QACR,OAAO,EAAE,YAAY,CAAA,2BAA2B,MAAM,qEAAqE,aAAa,YAAY;QACpJ,MAAM,EAAE,YAAY,CAAA,8BAA8B,MAAM,qEAAqE,aAAa,YAAY;KACvJ;IACD,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,KAAK,EAAE,CAAC,KAAY,EAAE,EAAE;gBACtB,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;oBACzC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAChC,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;4BACrC,OAAO,CAAC,gBAAgB,CAAC;gCACvB,MAAM,EAAE,IAAI;gCACZ,MAAM,EAAE;oCACN,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;oCACpB,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE;iCAC/C;6BACF,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,EAAE,CAAC,MAAc,EAAE,EAAE;gBACzB,sFAAsF;gBACtF,8CAA8C;gBAC9C,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClC,OAAO;gBACT,CAAC;gBACD,IAAI,UAAU,GAAuB,SAAS,CAAC;gBAC/C,OAAO,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBACvC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;oBAC/B,MAAM;gBACR,CAAC;gBACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC7B,OAAO;gBACT,CAAC;gBACD,IAAI,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtC,OAAO,CAAC,gBAAgB,CAAC;wBACvB,MAAM,EAAE,MAAM;wBACd,SAAS,EAAE,QAAQ;wBACnB,MAAM,EAAE;4BACN,IAAI,EAAE,UAAU,CAAC,IAAI;4BACrB,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAE;yBAChD;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
package/package.json
CHANGED