Add tsconfig.json to bun-types (#2587)

* Add tsconfig.json to bun-types. Document 'extends' pattern.

* Updates

* Update bun init to use extends:bun-types

* Update type:module recommendation

* Add note about transpilation. Closes #2553

* Make typescript a peer dep

* Revert changes to docs

* Revert tsconfig extends

* Update readme

* FMC

* Undo changed
This commit is contained in:
Colin McDonnell
2023-04-21 11:34:05 -07:00
committed by GitHub
parent dc55e11714
commit 55d50565a5
4 changed files with 63 additions and 20 deletions

View File

@@ -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: {