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

Commit 3f6fcbe

Browse files
authored
Merge pull request #74 from codeoverflow-org/fix/362-common-tsconfig-package
fix(generate): use tsconfig from shared nodecg-io-tsconfig package
2 parents 472d112 + 570efd6 commit 3f6fcbe

File tree

4 files changed

+20
-28
lines changed

4 files changed

+20
-28
lines changed

src/generate/extension.ts

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

4747
if (opts.language === "typescript") {
48-
genImport(writer, "NodeCG", `${opts.nodeeCGTypingsPackage}/types/server`, opts.language);
48+
genImport(writer, "NodeCG", `${opts.nodeCGTypingsPackage}/types/server`, opts.language);
4949
// Service import statements
5050
services.forEach((svc) => {
5151
genImport(writer, svc.clientName, svc.packageName, opts.language);

src/generate/packageJson.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,16 +69,20 @@ async function genDependencies(opts: GenerationOptions, serviceDeps: Dependency[
6969
* @param nodecgDir the directory in which nodecg is installed. Used to get nodecg version which will be used by nodecg dependency.
7070
*/
7171
async function genTypeScriptDependencies(opts: GenerationOptions): Promise<Dependency[]> {
72-
logger.debug(`Fetching latest ${opts.nodeeCGTypingsPackage}, typescript and @types/node versions...`);
73-
const [nodecgVersion, latestNodeTypes, latestTypeScript] = await Promise.all([
74-
getLatestPackageVersion(opts.nodeeCGTypingsPackage),
75-
getLatestPackageVersion("@types/node"),
72+
logger.debug(
73+
`Fetching latest ${opts.nodeCGTypingsPackage}, nodecg-io-tsconfig, typescript and @types/node versions...`,
74+
);
75+
const [nodecgVersion, latestTsConfig, latestTypeScript, latestNodeTypes] = await Promise.all([
76+
getLatestPackageVersion(opts.nodeCGTypingsPackage),
77+
getLatestPackageVersion("nodecg-io-tsconfig"),
7678
getLatestPackageVersion("typescript"),
79+
getLatestPackageVersion("@types/node"),
7780
]);
7881

7982
return [
80-
[opts.nodeeCGTypingsPackage, `^${nodecgVersion}`],
8183
["@types/node", `^${latestNodeTypes}`],
84+
[opts.nodeCGTypingsPackage, `^${nodecgVersion}`],
85+
["nodecg-io-tsconfig", `^${latestTsConfig}`],
8286
["typescript", `^${latestTypeScript}`],
8387
];
8488
}
@@ -90,7 +94,7 @@ async function genTypeScriptDependencies(opts: GenerationOptions): Promise<Depen
9094
*/
9195
function genScripts(opts: GenerationOptions) {
9296
if (opts.language !== "typescript") {
93-
// For JS we don't need any scripts to build anythiing.
97+
// For JS we don't need any scripts to build anything.
9498
return undefined;
9599
}
96100

src/generate/prompt.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export interface PromptedGenerationOptions {
2929
export interface GenerationOptions extends PromptedGenerationOptions {
3030
servicePackages: NpmPackage[];
3131
corePackage: NpmPackage;
32-
nodeeCGTypingsPackage: "nodecg" | "nodecg-types";
32+
nodeCGTypingsPackage: "nodecg" | "nodecg-types";
3333
bundlePath: string;
3434
}
3535

@@ -178,6 +178,6 @@ export function computeGenOptsFields(
178178
return svcPackage;
179179
}),
180180
bundlePath: path.join(opts.bundleDir, opts.bundleName),
181-
nodeeCGTypingsPackage: install.version === "0.1" ? "nodecg" : "nodecg-types",
181+
nodeCGTypingsPackage: install.version === "0.1" ? "nodecg" : "nodecg-types",
182182
};
183183
}

src/generate/tsConfig.ts

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,18 @@
11
import { GenerationOptions } from "./prompt";
22
import { writeBundleFile } from "./utils";
33

4-
const defaultTsConfigJson = {
5-
compilerOptions: {
6-
target: "es2019",
7-
sourceMap: true,
8-
lib: ["es2019"],
9-
alwaysStrict: true,
10-
forceConsistentCasingInFileNames: true,
11-
noFallthroughCasesInSwitch: true,
12-
noImplicitAny: true,
13-
noImplicitReturns: true,
14-
noImplicitThis: true,
15-
strictNullChecks: true,
16-
skipLibCheck: true,
17-
module: "CommonJS",
18-
types: ["node"],
19-
},
20-
};
21-
224
/**
235
* Generates a tsconfig.json for a bundle if the language was set to typescript.
246
*/
257
export async function genTsConfig(opts: GenerationOptions): Promise<void> {
268
// Only TS needs its tsconfig.json compiler configuration
279
if (opts.language === "typescript") {
28-
await writeBundleFile(defaultTsConfigJson, opts.bundlePath, "tsconfig.json");
10+
await writeBundleFile(
11+
{
12+
extends: "nodecg-io-tsconfig",
13+
},
14+
opts.bundlePath,
15+
"tsconfig.json",
16+
);
2917
}
3018
}

0 commit comments

Comments
 (0)