@definitelytyped/eslint-plugin 0.0.205 → 0.0.207
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/CHANGELOG.md +12 -0
- package/dist/rules/expect.js +7 -12
- package/dist/rules/expect.js.map +1 -1
- package/dist/rules/index.d.ts +1 -0
- package/dist/rules/index.js +2 -0
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/no-type-only-packages.d.ts +2 -0
- package/dist/rules/no-type-only-packages.js +143 -0
- package/dist/rules/no-type-only-packages.js.map +1 -0
- package/docs/rules/no-type-only-packages.md +24 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @definitelytyped/eslint-plugin
|
|
2
2
|
|
|
3
|
+
## 0.0.207
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 57628b68: Add new no-type-only-packages lint rule
|
|
8
|
+
|
|
9
|
+
## 0.0.206
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 55f05a86: Clean up expect type code for diagnostics
|
|
14
|
+
|
|
3
15
|
## 0.0.205
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/dist/rules/expect.js
CHANGED
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
|
-
const utils_1 = require("@definitelytyped/utils");
|
|
6
5
|
const util_1 = require("../util");
|
|
7
|
-
const
|
|
6
|
+
const utils_1 = require("@typescript-eslint/utils");
|
|
8
7
|
const path_1 = __importDefault(require("path"));
|
|
9
8
|
const fs_1 = __importDefault(require("fs"));
|
|
10
9
|
const builtinTypeScript = require("typescript");
|
|
@@ -54,11 +53,6 @@ Then re-run.`,
|
|
|
54
53
|
},
|
|
55
54
|
defaultOptions: [{}],
|
|
56
55
|
create(context) {
|
|
57
|
-
var _a, _b;
|
|
58
|
-
const inEditor = !((_b = (_a = context.options[0]) === null || _a === void 0 ? void 0 : _a.versionsToTest) === null || _b === void 0 ? void 0 : _b.length);
|
|
59
|
-
if (inEditor && ((0, utils_1.isDeclarationPath)(context.filename) || !context.sourceCode.text.includes("$ExpectType"))) {
|
|
60
|
-
return {};
|
|
61
|
-
}
|
|
62
56
|
const tsconfigPath = (0, util_1.findUp)(context.filename, (dir) => {
|
|
63
57
|
const tsconfig = path_1.default.join(dir, "tsconfig.json");
|
|
64
58
|
return fs_1.default.existsSync(tsconfig) ? tsconfig : undefined;
|
|
@@ -72,7 +66,7 @@ Then re-run.`,
|
|
|
72
66
|
}
|
|
73
67
|
// TODO: determine TS versions to run based on this package
|
|
74
68
|
const dirPath = path_1.default.dirname(tsconfigPath);
|
|
75
|
-
const parserServices =
|
|
69
|
+
const parserServices = utils_1.ESLintUtils.getParserServices(context);
|
|
76
70
|
return {
|
|
77
71
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
78
72
|
Program(node) {
|
|
@@ -90,15 +84,17 @@ Then re-run.`,
|
|
|
90
84
|
existing.versions.add(versionName);
|
|
91
85
|
};
|
|
92
86
|
let versionsToTest = (_a = context.options[0]) === null || _a === void 0 ? void 0 : _a.versionsToTest;
|
|
87
|
+
let reportDiagnostics = true;
|
|
93
88
|
if (!(versionsToTest === null || versionsToTest === void 0 ? void 0 : versionsToTest.length)) {
|
|
94
89
|
// In the editor, just use the built-in install of TypeScript.
|
|
95
90
|
versionsToTest = [{ versionName: "", path: require.resolve("typescript") }];
|
|
91
|
+
reportDiagnostics = false;
|
|
96
92
|
}
|
|
97
93
|
for (const version of versionsToTest) {
|
|
98
94
|
const ts = require(version.path);
|
|
99
95
|
const program = getProgram(tsconfigPath, ts, version.versionName, parserServices.program);
|
|
100
96
|
walk(getLocFromIndex, reporter, fileName, program, ts, version.versionName,
|
|
101
|
-
/*nextHigherVersion*/ undefined, dirPath);
|
|
97
|
+
/*nextHigherVersion*/ undefined, dirPath, reportDiagnostics);
|
|
102
98
|
}
|
|
103
99
|
for (const { messageId, data, loc, versions } of toReport.values()) {
|
|
104
100
|
const versionNames = [...versions].sort().join(", ");
|
|
@@ -153,7 +149,7 @@ const zeroSourceLocation = {
|
|
|
153
149
|
start: { line: 0, column: 0 },
|
|
154
150
|
end: { line: 0, column: 0 },
|
|
155
151
|
};
|
|
156
|
-
function walk(getLocFromIndex, report, fileName, program, ts, versionName, nextHigherVersion, dirPath) {
|
|
152
|
+
function walk(getLocFromIndex, report, fileName, program, ts, versionName, nextHigherVersion, dirPath, reportDiagnostics) {
|
|
157
153
|
const sourceFile = program.getSourceFile(fileName);
|
|
158
154
|
if (!sourceFile) {
|
|
159
155
|
report({
|
|
@@ -165,8 +161,7 @@ function walk(getLocFromIndex, report, fileName, program, ts, versionName, nextH
|
|
|
165
161
|
return;
|
|
166
162
|
}
|
|
167
163
|
const checker = program.getTypeChecker();
|
|
168
|
-
if (
|
|
169
|
-
// If we're using the built-in version of TS, then we're in the editor and tsserver will report diagnostics.
|
|
164
|
+
if (reportDiagnostics) {
|
|
170
165
|
// Don't care about emit errors.
|
|
171
166
|
const diagnostics = ts.getPreEmitDiagnostics(program, sourceFile);
|
|
172
167
|
for (const diagnostic of diagnostics) {
|
package/dist/rules/expect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expect.js","sourceRoot":"","sources":["../../src/rules/expect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"expect.js","sourceRoot":"","sources":["../../src/rules/expect.ts"],"names":[],"mappings":"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"}
|
package/dist/rules/index.d.ts
CHANGED
|
@@ -24,4 +24,5 @@ export declare const rules: {
|
|
|
24
24
|
readonly path: string;
|
|
25
25
|
}[] | undefined;
|
|
26
26
|
}], "noTsconfig" | "twoAssertions" | "failure" | "diagnostic" | "programContents" | "noMatch" | "needInstall">;
|
|
27
|
+
"no-type-only-packages": import("../util").RuleModule<never[], "onlyTypes">;
|
|
27
28
|
};
|
package/dist/rules/index.js
CHANGED
|
@@ -21,6 +21,7 @@ const noOldDTHeader = require("./no-old-dt-header");
|
|
|
21
21
|
const noImportOfDevDependencies = require("./no-import-of-dev-dependencies");
|
|
22
22
|
const npmNaming = require("./npm-naming");
|
|
23
23
|
const expect = require("./expect");
|
|
24
|
+
const noTypeOnlyPackages = require("./no-type-only-packages");
|
|
24
25
|
exports.rules = {
|
|
25
26
|
"export-just-namespace": exportJustNamespace,
|
|
26
27
|
"no-any-union": noAnyUnion,
|
|
@@ -42,5 +43,6 @@ exports.rules = {
|
|
|
42
43
|
"no-import-of-dev-dependencies": noImportOfDevDependencies,
|
|
43
44
|
"npm-naming": npmNaming,
|
|
44
45
|
expect,
|
|
46
|
+
"no-type-only-packages": noTypeOnlyPackages,
|
|
45
47
|
};
|
|
46
48
|
//# sourceMappingURL=index.js.map
|
package/dist/rules/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":";;;AAAA,+DAAgE;AAChE,6CAA8C;AAC9C,qDAAsD;AACtD,+CAAgD;AAChD,uDAAwD;AACxD,wEAAyE;AACzE,sFAAuF;AACvF,uEAAwE;AACxE,iDAAkD;AAClD,2EAA4E;AAC5E,mEAAoE;AACpE,qDAAsD;AACtD,mEAAoE;AACpE,4DAA6D;AAC7D,kFAAmF;AACnF,oEAAqE;AACrE,oDAAqD;AACrD,6EAA8E;AAC9E,0CAA2C;AAC3C,mCAAoC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":";;;AAAA,+DAAgE;AAChE,6CAA8C;AAC9C,qDAAsD;AACtD,+CAAgD;AAChD,uDAAwD;AACxD,wEAAyE;AACzE,sFAAuF;AACvF,uEAAwE;AACxE,iDAAkD;AAClD,2EAA4E;AAC5E,mEAAoE;AACpE,qDAAsD;AACtD,mEAAoE;AACpE,4DAA6D;AAC7D,kFAAmF;AACnF,oEAAqE;AACrE,oDAAqD;AACrD,6EAA8E;AAC9E,0CAA2C;AAC3C,mCAAoC;AACpC,8DAA+D;AAElD,QAAA,KAAK,GAAG;IACnB,uBAAuB,EAAE,mBAAmB;IAC5C,cAAc,EAAE,UAAU;IAC1B,kBAAkB,EAAE,cAAc;IAClC,eAAe,EAAE,WAAW;IAC5B,mBAAmB,EAAE,eAAe;IACpC,4BAA4B,EAAE,uBAAuB;IACrD,oCAAoC,EAAE,6BAA6B;IACnE,4BAA4B,EAAE,sBAAsB;IACpD,gBAAgB,EAAE,YAAY;IAC9B,8BAA8B,EAAE,wBAAwB;IACxD,yBAAyB,EAAE,qBAAqB;IAChD,kBAAkB,EAAE,cAAc;IAClC,yBAAyB,EAAE,qBAAqB;IAChD,qBAAqB,EAAE,kBAAkB;IACzC,iCAAiC,EAAE,4BAA4B;IAC/D,0BAA0B,EAAE,qBAAqB;IACjD,kBAAkB,EAAE,aAAa;IACjC,+BAA+B,EAAE,yBAAyB;IAC1D,YAAY,EAAE,SAAS;IACvB,MAAM;IACN,uBAAuB,EAAE,kBAAkB;CAC5C,CAAC"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
const util_1 = require("../util");
|
|
29
|
+
const utils_1 = require("@typescript-eslint/utils");
|
|
30
|
+
const ts = __importStar(require("typescript"));
|
|
31
|
+
const path_1 = __importDefault(require("path"));
|
|
32
|
+
const rule = (0, util_1.createRule)({
|
|
33
|
+
name: "no-type-only-packages",
|
|
34
|
+
defaultOptions: [],
|
|
35
|
+
meta: {
|
|
36
|
+
type: "problem",
|
|
37
|
+
docs: {
|
|
38
|
+
description: "Forbids type-only packages",
|
|
39
|
+
},
|
|
40
|
+
messages: {
|
|
41
|
+
onlyTypes: "Packages should contain value components, not just types.",
|
|
42
|
+
},
|
|
43
|
+
schema: [],
|
|
44
|
+
},
|
|
45
|
+
create(context) {
|
|
46
|
+
if (!(0, util_1.isMainFile)(context.filename, true)) {
|
|
47
|
+
return {};
|
|
48
|
+
}
|
|
49
|
+
const pkg = (0, util_1.findTypesPackage)(context.filename);
|
|
50
|
+
if (!pkg) {
|
|
51
|
+
return {};
|
|
52
|
+
}
|
|
53
|
+
const program = utils_1.ESLintUtils.getParserServices(context).program;
|
|
54
|
+
let hasValueDeclaration = false;
|
|
55
|
+
let hasNonEmptyFile = false;
|
|
56
|
+
function isOutsidePackage(fileName) {
|
|
57
|
+
return fileName.includes("node_modules") || path_1.default.relative(pkg.dir, fileName).startsWith("..");
|
|
58
|
+
}
|
|
59
|
+
for (const sourceFile of program.getSourceFiles()) {
|
|
60
|
+
if (!sourceFile.isDeclarationFile ||
|
|
61
|
+
sourceFile.statements.length === 0 ||
|
|
62
|
+
isOutsidePackage(sourceFile.fileName)) {
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
hasNonEmptyFile = true;
|
|
66
|
+
function isValueDeclaration(node) {
|
|
67
|
+
switch (node.kind) {
|
|
68
|
+
case ts.SyntaxKind.VariableDeclaration:
|
|
69
|
+
case ts.SyntaxKind.FunctionDeclaration:
|
|
70
|
+
case ts.SyntaxKind.ClassDeclaration:
|
|
71
|
+
case ts.SyntaxKind.EnumDeclaration:
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
function getSymbol(node) {
|
|
77
|
+
const checker = program.getTypeChecker();
|
|
78
|
+
let symbol = checker.getSymbolAtLocation(node);
|
|
79
|
+
if (symbol && symbol.flags & ts.SymbolFlags.Alias) {
|
|
80
|
+
symbol = checker.getAliasedSymbol(symbol);
|
|
81
|
+
}
|
|
82
|
+
return symbol;
|
|
83
|
+
}
|
|
84
|
+
function symbolIsValue(node) {
|
|
85
|
+
const symbol = getSymbol(node);
|
|
86
|
+
if (symbol) {
|
|
87
|
+
return !!symbol.valueDeclaration;
|
|
88
|
+
}
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
function symbolDefinedOutsidePackage(node) {
|
|
92
|
+
var _a, _b, _c;
|
|
93
|
+
return ((_c = (_b = (_a = getSymbol(node)) === null || _a === void 0 ? void 0 : _a.getDeclarations()) === null || _b === void 0 ? void 0 : _b.some((declaration) => isOutsidePackage(declaration.getSourceFile().fileName))) !== null && _c !== void 0 ? _c : false);
|
|
94
|
+
}
|
|
95
|
+
function containsValueDeclaration(node) {
|
|
96
|
+
var _a, _b, _c, _d;
|
|
97
|
+
if (isValueDeclaration(node)) {
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
if (ts.isImportDeclaration(node) || ts.isImportEqualsDeclaration(node)) {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
if (ts.isExportAssignment(node)) {
|
|
104
|
+
return (_a = symbolIsValue(node.expression)) !== null && _a !== void 0 ? _a : ts.isLiteralTypeLiteral(node.expression);
|
|
105
|
+
}
|
|
106
|
+
if (ts.isNamespaceExportDeclaration(node)) {
|
|
107
|
+
return (_b = symbolIsValue(node.name)) !== null && _b !== void 0 ? _b : false;
|
|
108
|
+
}
|
|
109
|
+
if (ts.isNamedExports(node)) {
|
|
110
|
+
return node.elements.some((element) => symbolIsValue(element.name));
|
|
111
|
+
}
|
|
112
|
+
if (ts.isExportDeclaration(node) && !node.isTypeOnly && !node.exportClause && node.moduleSpecifier) {
|
|
113
|
+
return (_c = symbolIsValue(node.moduleSpecifier)) !== null && _c !== void 0 ? _c : false;
|
|
114
|
+
}
|
|
115
|
+
if (ts.isInterfaceDeclaration(node)) {
|
|
116
|
+
// If we're extending the interface of an external declaration, allow it.
|
|
117
|
+
return symbolDefinedOutsidePackage(node.name);
|
|
118
|
+
}
|
|
119
|
+
if (ts.isModuleDeclaration(node) && !(ts.isIdentifier(node.name) && node.name.escapedText === "global")) {
|
|
120
|
+
if (symbolDefinedOutsidePackage(node.name)) {
|
|
121
|
+
// If we're extending a namespace in another package, allow it.
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
// Otherwise, recurse and check for a value component.
|
|
125
|
+
}
|
|
126
|
+
return (_d = ts.forEachChild(node, containsValueDeclaration)) !== null && _d !== void 0 ? _d : false;
|
|
127
|
+
}
|
|
128
|
+
if (containsValueDeclaration(sourceFile)) {
|
|
129
|
+
hasValueDeclaration = true;
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (hasNonEmptyFile && !hasValueDeclaration) {
|
|
134
|
+
context.report({
|
|
135
|
+
loc: { line: 1, column: 0 },
|
|
136
|
+
messageId: "onlyTypes",
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
return {};
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
module.exports = rule;
|
|
143
|
+
//# sourceMappingURL=no-type-only-packages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-type-only-packages.js","sourceRoot":"","sources":["../../src/rules/no-type-only-packages.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kCAAmE;AACnE,oDAAuD;AACvD,+CAAiC;AACjC,gDAAwB;AAExB,MAAM,IAAI,GAAG,IAAA,iBAAU,EAAC;IACtB,IAAI,EAAE,uBAAuB;IAC7B,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,4BAA4B;SAC1C;QACD,QAAQ,EAAE;YACR,SAAS,EAAE,2DAA2D;SACvE;QACD,MAAM,EAAE,EAAE;KACX;IACD,MAAM,CAAC,OAAO;QACZ,IAAI,CAAC,IAAA,iBAAU,EAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;YACvC,OAAO,EAAE,CAAC;SACX;QAED,MAAM,GAAG,GAAG,IAAA,uBAAgB,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,EAAE;YACR,OAAO,EAAE,CAAC;SACX;QAED,MAAM,OAAO,GAAG,mBAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;QAE/D,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAChC,IAAI,eAAe,GAAG,KAAK,CAAC;QAE5B,SAAS,gBAAgB,CAAC,QAAgB;YACxC,OAAO,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAI,CAAC,QAAQ,CAAC,GAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjG,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,cAAc,EAAE,EAAE;YACjD,IACE,CAAC,UAAU,CAAC,iBAAiB;gBAC7B,UAAU,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;gBAClC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,EACrC;gBACA,SAAS;aACV;YAED,eAAe,GAAG,IAAI,CAAC;YAEvB,SAAS,kBAAkB,CAAC,IAAa;gBACvC,QAAQ,IAAI,CAAC,IAAI,EAAE;oBACjB,KAAK,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC;oBACvC,KAAK,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC;oBACvC,KAAK,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC;oBACpC,KAAK,EAAE,CAAC,UAAU,CAAC,eAAe;wBAChC,OAAO,IAAI,CAAC;iBACf;gBAED,OAAO,KAAK,CAAC;YACf,CAAC;YAED,SAAS,SAAS,CAAC,IAAa;gBAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;gBACzC,IAAI,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE;oBACjD,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;iBAC3C;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,SAAS,aAAa,CAAC,IAAa;gBAClC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,MAAM,EAAE;oBACV,OAAO,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC;iBAClC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,SAAS,2BAA2B,CAAC,IAAa;;gBAChD,OAAO,CACL,MAAA,MAAA,MAAA,SAAS,CAAC,IAAI,CAAC,0CACX,eAAe,EAAE,0CACjB,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAC,mCAAI,KAAK,CAC3F,CAAC;YACJ,CAAC;YAED,SAAS,wBAAwB,CAAC,IAAa;;gBAC7C,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE;oBAC5B,OAAO,IAAI,CAAC;iBACb;gBAED,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE;oBACtE,OAAO,KAAK,CAAC;iBACd;gBAED,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;oBAC/B,OAAO,MAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,mCAAI,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBACnF;gBAED,IAAI,EAAE,CAAC,4BAA4B,CAAC,IAAI,CAAC,EAAE;oBACzC,OAAO,MAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAI,KAAK,CAAC;iBAC1C;gBAED,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;oBAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;iBACrE;gBAED,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,EAAE;oBAClG,OAAO,MAAA,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,mCAAI,KAAK,CAAC;iBACrD;gBAED,IAAI,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE;oBACnC,yEAAyE;oBACzE,OAAO,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC/C;gBAED,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,EAAE;oBACvG,IAAI,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBAC1C,+DAA+D;wBAC/D,OAAO,IAAI,CAAC;qBACb;oBACD,sDAAsD;iBACvD;gBAED,OAAO,MAAA,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,wBAAwB,CAAC,mCAAI,KAAK,CAAC;YAClE,CAAC;YAED,IAAI,wBAAwB,CAAC,UAAU,CAAC,EAAE;gBACxC,mBAAmB,GAAG,IAAI,CAAC;gBAC3B,MAAM;aACP;SACF;QAED,IAAI,eAAe,IAAI,CAAC,mBAAmB,EAAE;YAC3C,OAAO,CAAC,MAAM,CAAC;gBACb,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;gBAC3B,SAAS,EAAE,WAAW;aACvB,CAAC,CAAC;SACJ;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;CACF,CAAC,CAAC;AAEH,iBAAS,IAAI,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# no-type-only-packages
|
|
2
|
+
|
|
3
|
+
If there's no source JavaScript code at all, for example if you're writing helper types or types for a spec, you should publish the types yourself, not on Definitely Typed.
|
|
4
|
+
Because they're meant to provide types for existing JavaScript code, `@types` packages are not meant to be imported directly.
|
|
5
|
+
That is, you shouldn't create a Definitely Typed package that's meant to be used like `import type { ... } from "@types/foo"`.
|
|
6
|
+
Nor should you expect to write `import type { ... } from "foo"` when there's no `foo` installed.
|
|
7
|
+
|
|
8
|
+
**Bad**:
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
export interface SomeInterface {
|
|
12
|
+
someProperty: string;
|
|
13
|
+
}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
**Good**:
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
export interface SomeInterface {
|
|
20
|
+
someProperty: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function someLibraryFunction(): SomeInterface;
|
|
24
|
+
```
|