diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cli/init_command.zig | 22 | ||||
-rw-r--r-- | src/cli/tsconfig-for-init.json | 6 |
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 +} |