Skip to content
This repository was archived by the owner on Apr 13, 2025. It is now read-only.

Commit 0fac3ea

Browse files
authored
Only use nodecg-types for new versions and nodecg for 0.1
1 parent f2b0595 commit 0fac3ea

File tree

5 files changed

+23
-116
lines changed

5 files changed

+23
-116
lines changed

package-lock.json

Lines changed: 3 additions & 108 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/generate/extension.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export async function genExtension(opts: GenerationOptions, install: ProductionI
4242
genImport(writer, "requireService", opts.corePackage.name, opts.language);
4343

4444
if (opts.language === "typescript") {
45-
genImport(writer, "NodeCG", "nodecg-types/types/server", opts.language);
45+
genImport(writer, "NodeCG", `${opts.nodeeCGTypingsPackage}/types/server`, opts.language);
4646
// Service import statements
4747
services.forEach((svc) => {
4848
genImport(writer, svc.clientName, svc.packageName, opts.language);

src/generate/packageJson.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ async function genDependencies(opts: GenerationOptions, serviceDeps: Dependency[
5050

5151
if (opts.language === "typescript") {
5252
// For typescript we need core, all services (for typings) and special packages like ts itself or node typings.
53-
const deps = [core, ...serviceDeps, ...(await genTypeScriptDependencies())];
53+
const deps = [core, ...serviceDeps, ...(await genTypeScriptDependencies(opts))];
5454
deps.sort();
5555
return deps;
5656
} else {
@@ -64,16 +64,16 @@ async function genDependencies(opts: GenerationOptions, serviceDeps: Dependency[
6464
* and types for node.
6565
* @param nodecgDir the directory in which nodecg is installed. Used to get nodecg version which will be used by nodecg dependency.
6666
*/
67-
async function genTypeScriptDependencies(): Promise<Dependency[]> {
68-
logger.debug("Fetching latest nodecg-types, typescript and @types/node versions...");
67+
async function genTypeScriptDependencies(opts: GenerationOptions): Promise<Dependency[]> {
68+
logger.debug(`Fetching latest ${opts.nodeeCGTypingsPackage}, typescript and @types/node versions...`);
6969
const [nodecgVersion, latestNodeTypes, latestTypeScript] = await Promise.all([
70-
getLatestPackageVersion("nodecg-types"),
70+
getLatestPackageVersion(opts.nodeeCGTypingsPackage),
7171
getLatestPackageVersion("@types/node"),
7272
getLatestPackageVersion("typescript"),
7373
]);
7474

7575
return [
76-
["nodecg-types", addSemverCaret(nodecgVersion)],
76+
[opts.nodeeCGTypingsPackage, addSemverCaret(nodecgVersion)],
7777
["@types/node", addSemverCaret(latestNodeTypes)],
7878
["typescript", addSemverCaret(latestTypeScript)],
7979
];

src/generate/prompt.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ export interface PromptedGenerationOptions {
2828
export interface GenerationOptions extends PromptedGenerationOptions {
2929
servicePackages: NpmPackage[];
3030
corePackage: NpmPackage;
31+
nodeeCGTypingsPackage: "nodecg" | "nodecg-types";
3132
bundlePath: string;
3233
}
3334

@@ -169,5 +170,6 @@ export function computeGenOptsFields(
169170
return svcPackage;
170171
}),
171172
bundlePath: path.join(opts.bundleDir, opts.bundleName),
173+
nodeeCGTypingsPackage: install.version === "0.1" ? "nodecg" : "nodecg-types",
172174
};
173175
}

test/generate/index.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import * as installation from "../../src/utils/installation";
66
import * as fsUtils from "../../src/utils/fs";
77
import * as npm from "../../src/utils/npm";
88
import { ensureValidInstallation, generateBundle } from "../../src/generate";
9-
import { GenerationOptions } from "../../src/generate/prompt";
10-
import { defaultOpts, jsOpts } from "./opts.util";
9+
import { computeGenOptsFields, GenerationOptions } from "../../src/generate/prompt";
10+
import { defaultOpts, defaultOptsPrompt, jsOpts } from "./opts.util";
1111

1212
const nodecgPackageJsonPath = path.join(fsRoot, "package.json");
1313
const packageJsonPath = path.join(defaultOpts.bundlePath, "package.json");
@@ -109,6 +109,16 @@ describe("genPackageJson", () => {
109109
// These dependencies should always have the latest version which is fetched by the mocked getLatestPackageVersion
110110
expect(e).toEqual(expect.arrayContaining([["typescript", `^1.2.3`]]));
111111
expect(e).toEqual(expect.arrayContaining([["@types/node", `^1.2.3`]]));
112+
expect(e).toEqual(expect.arrayContaining([["nodecg", `^1.2.3`]]));
113+
});
114+
115+
test("should use nodecg-types for 0.2 or higher", async () => {
116+
const opts = computeGenOptsFields(defaultOptsPrompt, { ...validProdInstall, version: "0.2" });
117+
const deps = (await genPackageJSON(opts))["dependencies"];
118+
const e = Object.entries(deps);
119+
expect(e).toEqual(expect.arrayContaining([[twitchChatPkg.name, `^${twitchChatPkg.version}`]]));
120+
121+
// These dependencies should always have the latest version which is fetched by the mocked getLatestPackageVersion
112122
expect(e).toEqual(expect.arrayContaining([["nodecg-types", `^1.2.3`]]));
113123
});
114124

0 commit comments

Comments
 (0)