aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cli/init_command.zig22
-rw-r--r--src/cli/tsconfig-for-init.json6
2 files changed, 26 insertions, 2 deletions
diff --git a/src/cli/init_command.zig b/src/cli/init_command.zig
index a7abd02e8..1b95d47fa 100644
--- a/src/cli/init_command.zig
+++ b/src/cli/init_command.zig
@@ -282,6 +282,22 @@ pub const InitCommand = struct {
break :brk true;
};
+ const needs_typescript_dependency = brk: {
+ if (fields.object.get("devDependencies")) |deps| {
+ if (deps.hasAnyPropertyNamed(&.{"typescript"})) {
+ break :brk false;
+ }
+ }
+
+ if (fields.object.get("peerDependencies")) |deps| {
+ if (deps.hasAnyPropertyNamed(&.{"typescript"})) {
+ break :brk false;
+ }
+ }
+
+ break :brk true;
+ };
+
if (needs_dev_dependencies) {
var dev_dependencies = fields.object.get("devDependencies") orelse js_ast.Expr.init(js_ast.E.Object, js_ast.E.Object{}, logger.Loc.Empty);
const version = comptime brk: {
@@ -293,6 +309,12 @@ pub const InitCommand = struct {
try dev_dependencies.data.e_object.putString(alloc, "bun-types", comptime std.fmt.comptimePrint("^{any}", .{version.fmt("")}));
try fields.object.put(alloc, "devDependencies", dev_dependencies);
}
+
+ if (needs_typescript_dependency) {
+ var peer_dependencies = fields.object.get("peer_dependencies") orelse js_ast.Expr.init(js_ast.E.Object, js_ast.E.Object{}, logger.Loc.Empty);
+ try peer_dependencies.data.e_object.putString(alloc, "typescript", "^5.0.0");
+ try fields.object.put(alloc, "peerDependencies", peer_dependencies);
+ }
}
write_package_json: {
diff --git a/src/cli/tsconfig-for-init.json b/src/cli/tsconfig-for-init.json
index 5c0ced989..b8cfbf636 100644
--- a/src/cli/tsconfig-for-init.json
+++ b/src/cli/tsconfig-for-init.json
@@ -6,10 +6,12 @@
"module": "esnext",
"target": "esnext",
"moduleResolution": "bundler",
+ "moduleDetection": "force",
+ "allowImportingTsExtensions": true,
"strict": true,
"downlevelIteration": true,
"skipLibCheck": true,
- "jsx": "react-jsx",
+ "jsx": "preserve",
"allowSyntheticDefaultImports": true,
"forceConsistentCasingInFileNames": true,
"allowJs": true,
@@ -17,4 +19,4 @@
"bun-types" // add Bun global
]
}
-} \ No newline at end of file
+}