Skip to content

Commit 982ef9a

Browse files
authored
Move @typespec/compiler from dependencies to peerDependencies (#3699)
Per the requirement in Issue: #3632, the dependency of `@typespec/compiler` has to be moved from `dependencies` to `peerDependencies`. This PR moves the dependency.
1 parent ba65f90 commit 982ef9a

File tree

3 files changed

+24
-7
lines changed

3 files changed

+24
-7
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
changeKind: feature
3+
packages:
4+
- "@typespec/compiler"
5+
---
6+
7+
Moved compiler dependencies to peer and dev for scaffolded projects.

packages/compiler/src/init/scaffold.ts

+8-4
Original file line numberDiff line numberDiff line change
@@ -104,21 +104,25 @@ async function writePackageJson(host: CompilerHost, config: ScaffoldingConfig) {
104104
if (isFileSkipGeneration("package.json", config.template.files ?? [])) {
105105
return;
106106
}
107-
const dependencies: Record<string, string> = {};
107+
const peerDependencies: Record<string, string> = {};
108+
const devDependencies: Record<string, string> = {};
108109

109110
if (!config.template.skipCompilerPackage) {
110-
dependencies["@typespec/compiler"] = "latest";
111+
peerDependencies["@typespec/compiler"] = "latest";
112+
devDependencies["@typespec/compiler"] = "latest";
111113
}
112114

113115
for (const library of config.libraries) {
114-
dependencies[library.name] = await getLibraryVersion(library);
116+
peerDependencies[library.name] = await getLibraryVersion(library);
117+
devDependencies[library.name] = await getLibraryVersion(library);
115118
}
116119

117120
const packageJson: NodePackage = {
118121
name: config.name,
119122
version: "0.1.0",
120123
type: "module",
121-
dependencies,
124+
peerDependencies,
125+
devDependencies,
122126
private: true,
123127
};
124128

packages/compiler/test/init/init-template.test.ts

+9-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import { deepStrictEqual, strictEqual } from "assert";
22
import { beforeEach, describe, it } from "vitest";
33
import { InitTemplate } from "../../src/init/init-template.js";
44
import {
5-
makeScaffoldingConfig,
65
ScaffoldingConfig,
6+
makeScaffoldingConfig,
77
scaffoldNewProject,
88
} from "../../src/init/scaffold.js";
9-
import { createTestHost, resolveVirtualPath, TestHost } from "../../src/testing/index.js";
9+
import { TestHost, createTestHost, resolveVirtualPath } from "../../src/testing/index.js";
1010

1111
describe("compiler: init: templates", () => {
1212
let testHost: TestHost;
@@ -44,7 +44,13 @@ describe("compiler: init: templates", () => {
4444
libraries: [{ name: "foo", version: "~1.2.3" }, { name: "bar" }],
4545
});
4646

47-
deepStrictEqual(JSON.parse(getOutputFile("package.json")!).dependencies, {
47+
deepStrictEqual(JSON.parse(getOutputFile("package.json")!).peerDependencies, {
48+
"@typespec/compiler": "latest",
49+
foo: "~1.2.3",
50+
bar: "latest",
51+
});
52+
53+
deepStrictEqual(JSON.parse(getOutputFile("package.json")!).devDependencies, {
4854
"@typespec/compiler": "latest",
4955
foo: "~1.2.3",
5056
bar: "latest",

0 commit comments

Comments
 (0)