Skip to content

Commit 9a435cf

Browse files
feat: support more than one project
1 parent 86a9c02 commit 9a435cf

File tree

3 files changed

+30
-2
lines changed

3 files changed

+30
-2
lines changed

packages/definitions-parser/src/packages.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,9 @@ export class TypingsData extends PackageBase {
551551
));
552552
}
553553
get projectName(): string | undefined {
554-
return this.data.header.projects[0];
554+
return this.data.header.projects.length === 0
555+
? undefined
556+
: this.data.header.projects.join(', ');
555557
}
556558
get type() {
557559
return this.data.type;

packages/definitions-parser/test/packages.test.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,30 @@ describe(TypingsData, () => {
180180
expect(data.isNotNeeded()).toBe(false);
181181
});
182182

183+
describe("project", () => {
184+
it("returns the name of the only project", () => {
185+
expect(data.projectName).toBe("zombo.com");
186+
});
187+
188+
it("returns the versioned name if not latest", () => {
189+
const versions = createTypingsVersionRaw("known", {}, {}, {}, {
190+
projects: ["zombo.com", "zombo.org"],
191+
});
192+
data = new TypingsData(createMockDT().fs, versions["1.0"], false);
193+
194+
expect(data.projectName).toBe("zombo.com, zombo.org");
195+
});
196+
197+
it("returns undefined if no project is set", () => {
198+
const versions = createTypingsVersionRaw("known", {}, {}, {}, {
199+
projects: [],
200+
});
201+
data = new TypingsData(createMockDT().fs, versions["1.0"], false);
202+
203+
expect(data.projectName).toBeUndefined();
204+
});
205+
});
206+
183207
describe("desc", () => {
184208
it("returns the name if latest version", () => {
185209
expect(data.desc).toBe("@types/known");

packages/definitions-parser/test/utils.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { License } from "@definitelytyped/header-parser";
1+
import { Header, License } from "@definitelytyped/header-parser";
22
import { TypingsVersionsRaw, getMangledNameForScopedPackage } from "../src/packages";
33
import { atTypesSlash } from "@definitelytyped/utils";
44

@@ -13,6 +13,7 @@ export function createTypingsVersionRaw(
1313
dependencies: { readonly [name: string]: string },
1414
devDependencies: { readonly [name: string]: string },
1515
peerDependencies?: { readonly [name: string]: string },
16+
headerOverrides: Partial<Header> = {},
1617
): TypingsVersionsRaw {
1718
return {
1819
"1.0": {
@@ -25,6 +26,7 @@ export function createTypingsVersionRaw(
2526
nonNpm: false,
2627
projects: ["zombo.com"],
2728
tsconfigs: ["tsconfig.json"],
29+
...headerOverrides,
2830
},
2931
typesVersions: [],
3032
license: License.MIT,

0 commit comments

Comments
 (0)