@typespec/library-linter 0.67.0-dev.2 → 0.67.0-dev.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAAsC,MAAM,oBAAoB,CAAC;AAG5F,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,QAK3C"}
1
+ {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAAQ,MAAM,oBAAoB,CAAC;AAI9D,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,QAK3C"}
@@ -1,7 +1,7 @@
1
- import { SyntaxKind } from "@typespec/compiler";
1
+ import { SyntaxKind } from "@typespec/compiler/ast";
2
2
  import { reportDiagnostic } from "./lib.js";
3
3
  export function $onValidate(program) {
4
- const root = program.checker.getGlobalNamespaceType();
4
+ const root = program.getGlobalNamespaceType();
5
5
  validateNoExportAtRoot(program, root);
6
6
  validateDecoratorSignature(program);
7
7
  }
@@ -20,27 +20,19 @@ function validateNoExportAtRoot(program, root) {
20
20
  validateFor(root.enums);
21
21
  validateFor(root.operations);
22
22
  validateFor(root.unions);
23
- for (const [name, sym] of root.node.symbol.exports?.entries() ?? []) {
24
- if (sym.flags & 1024 /* SymbolFlags.Decorator */) {
25
- reportDiagnostic(program, {
26
- code: "missing-namespace",
27
- format: { type: "Decorator", name },
28
- target: sym,
29
- });
30
- }
31
- else if (sym.flags & 8192 /* SymbolFlags.Function */) {
32
- reportDiagnostic(program, {
33
- code: "missing-namespace",
34
- format: { type: "Function", name },
35
- target: sym,
36
- });
37
- }
23
+ for (const [name, dec] of root.decoratorDeclarations) {
24
+ reportDiagnostic(program, {
25
+ code: "missing-namespace",
26
+ format: { type: "Decorator", name: `@${name}` },
27
+ target: dec,
28
+ });
38
29
  }
39
30
  }
40
31
  const excludeDecoratorSignature = new Set(["@docFromComment", "@indexer", "@test"]);
41
32
  function validateDecoratorSignature(program) {
42
33
  function navigate(sym) {
43
- if (sym.flags & 1024 /* SymbolFlags.Decorator */) {
34
+ // SymbolFlags.Decorator = 1 << 9
35
+ if (sym.flags & (1 << 9)) {
44
36
  const hasSignature = sym.declarations.some((x) => x.kind === SyntaxKind.DecoratorDeclarationStatement);
45
37
  if (!hasSignature && !excludeDecoratorSignature.has(sym.name)) {
46
38
  reportDiagnostic(program, {
@@ -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":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAE9C,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACtC,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAgB,EAAE,IAAe;IAC/D,SAAS,WAAW,CAAC,KAA4C;QAC/D,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAClC,gBAAgB,CAAC,OAAO,EAAE;gBACxB,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE;gBAClD,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7B,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEzB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACrD,gBAAgB,CAAC,OAAO,EAAE;YACxB,IAAI,EAAE,mBAAmB;YACzB,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE;YAC/C,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,CAAC,iBAAiB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;AACpF,SAAS,0BAA0B,CAAC,OAAgB;IAClD,SAAS,QAAQ,CAAC,GAAQ;QACxB,iCAAiC;QACjC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CACxC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,6BAA6B,CAChE,CAAC;YACF,IAAI,CAAC,YAAY,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9D,gBAAgB,CAAC,OAAO,EAAE;oBACxB,IAAI,EAAE,mBAAmB;oBACzB,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBACtC,MAAM,EAAE,GAAG;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;YAC9C,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;QACpD,QAAQ,CAAE,MAAc,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/library-linter",
3
- "version": "0.67.0-dev.2",
3
+ "version": "0.67.0-dev.3",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec library for linting another library.",
6
6
  "homepage": "https://typespec.io",