Skip to content

Commit 5ccbffd

Browse files
Andyandrewbranch
authored andcommitted
Merge pull request #264 from Microsoft/old_versions
Support multiple major versions of each package
1 parent 756c910 commit 5ccbffd

20 files changed

+783
-387
lines changed

packages/types-publisher/src/check-parse-results.ts

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { settings } from "./lib/common";
33
import { AllPackages, TypingsData } from "./lib/packages";
44
import { Logger, logger, writeLog } from "./util/logging";
55
import { fetchJson} from "./util/io";
6-
import { best, done, nAtATime } from "./util/util";
6+
import { best, done, multiMapAdd, nAtATime } from "./util/util";
77

88
if (!module.parent) {
99
done(main(true));
@@ -17,33 +17,36 @@ export default async function main(includeNpmChecks: boolean): Promise<void> {
1717
if (includeNpmChecks) {
1818
await nAtATime(10, packages, pkg => checkNpm(pkg, log), {
1919
name: "Checking for typed packages...",
20-
flavor: pkg => pkg.typingsPackageName
20+
flavor: pkg => pkg.desc
2121
});
2222
}
2323
await writeLog("conflicts.md", logResult());
2424
}
2525

2626
function check(infos: TypingsData[], func: (info: TypingsData) => string | undefined, key: string, log: Logger): void {
27-
const lookup: { [libName: string]: string[] } = {};
28-
infos.forEach(info => {
29-
const name = func(info);
30-
if (name !== undefined) {
31-
(lookup[name] || (lookup[name] = [])).push(info.typingsPackageName);
27+
const lookup = new Map<string, TypingsData[]>();
28+
for (const info of infos) {
29+
const libraryOrProjectName = func(info);
30+
if (libraryOrProjectName !== undefined) {
31+
multiMapAdd(lookup, libraryOrProjectName, info);
3232
}
33-
});
34-
for (const k of Object.keys(lookup)) {
35-
if (lookup[k].length > 1) {
36-
log(` * Duplicate ${key} descriptions "${k}"`);
37-
lookup[k].forEach(n => log(` * ${n}`));
33+
}
34+
35+
for (const [libName, values] of lookup) {
36+
if (values.length > 1) {
37+
log(` * Duplicate ${key} descriptions "${libName}"`);
38+
for (const n of values) {
39+
log(` * ${n.desc}`);
40+
}
3841
}
3942
}
4043
}
4144

4245
async function checkNpm(pkg: TypingsData, log: Logger): Promise<void> {
43-
const asOfVersion = await firstPackageVersionWithTypes(pkg.typingsPackageName);
46+
const asOfVersion = await firstPackageVersionWithTypes(pkg.name);
4447
if (asOfVersion) {
45-
const ourVersion = `${pkg.libraryMajorVersion}.${pkg.libraryMinorVersion}`;
46-
log(`Typings already defined for ${pkg.typingsPackageName} (${pkg.libraryName}) as of ${asOfVersion} (our version: ${ourVersion})`);
48+
const ourVersion = `${pkg.major}.${pkg.minor}`;
49+
log(`Typings already defined for ${pkg.name} (${pkg.libraryName}) as of ${asOfVersion} (our version: ${ourVersion})`);
4750
}
4851
}
4952

packages/types-publisher/src/create-search-index.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@ export default async function main(skipDownloads: boolean, full: boolean): Promi
2020
const packages = await AllPackages.readTypings();
2121
console.log(`Generating search index...`);
2222

23-
const records = await nAtATime(25, packages, pkg => createSearchRecord(pkg, skipDownloads), {
24-
name: "Indexing...", flavor: pkg => pkg.typingsPackageName
25-
});
23+
const records = await nAtATime(25, packages, pkg => createSearchRecord(pkg, skipDownloads), { name: "Indexing...", flavor: pkg => pkg.desc });
2624
// Most downloads first
2725
records.sort((a, b) => b.d - a.d);
2826

packages/types-publisher/src/generate-packages.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export default async function main(options: Options, all = false, tgz = false):
2929
await nAtATime(10, packages, async pkg => {
3030
const logs = await generateAnyPackage(pkg, allPackages, versions, options);
3131
if (tgz) {
32-
await writeTgz(pkg.getOutputPath(), pkg.getOutputPath() + ".tgz");
32+
await writeTgz(pkg.outputDirectory, pkg.outputDirectory + ".tgz");
3333
}
3434
log(` * ${pkg.libraryName}`);
3535
moveLogs(log, logs, line => ` * ${line}`);
@@ -40,7 +40,7 @@ export default async function main(options: Options, all = false, tgz = false):
4040

4141
async function single(singleName: string, options: Options): Promise<void> {
4242
const allPackages = await AllPackages.read(options);
43-
const pkg = allPackages.getAnyPackage(singleName);
43+
const pkg = allPackages.getLatestVersion(singleName);
4444
const versions = await Versions.load();
4545
const logs = await generateAnyPackage(pkg, allPackages, versions, options);
4646
console.log(logs.join("\n"));

packages/types-publisher/src/lib/common.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,7 @@ const dataDir = path.join(home, "data");
4949
function dataFilePath(filename: string) {
5050
return path.join(dataDir, filename);
5151
}
52+
53+
export function isTypingDirectory(directoryName: string) {
54+
return directoryName !== "node_modules" && directoryName !== "scripts";
55+
}

0 commit comments

Comments
 (0)