diff options
author | 2022-11-24 03:53:26 -0800 | |
---|---|---|
committer | 2022-11-24 03:53:26 -0800 | |
commit | ffacc1d02ddd7ecf3af7589c5af19d92ce85db75 (patch) | |
tree | dc603984e6b25b777a5619369f131e4a3efb5e54 | |
parent | 1be13fa192fa9ca638f04e5ff6954e7d9cb3dd7e (diff) | |
download | bun-ffacc1d02ddd7ecf3af7589c5af19d92ce85db75.tar.gz bun-ffacc1d02ddd7ecf3af7589c5af19d92ce85db75.tar.zst bun-ffacc1d02ddd7ecf3af7589c5af19d92ce85db75.zip |
Workaround strange crash
-rw-r--r-- | src/options.zig | 40 |
1 files changed, 18 insertions, 22 deletions
diff --git a/src/options.zig b/src/options.zig index aceda4f0c..7aad92d39 100644 --- a/src/options.zig +++ b/src/options.zig @@ -1070,7 +1070,20 @@ pub fn definesFromTransformOptions( ); } -pub fn loadersFromTransformOptions(allocator: std.mem.Allocator, _loaders: ?Api.LoaderMap, platform: Platform) !std.StringHashMap(Loader) { +const default_loader_ext_bun = [_]string{".node"}; +const default_loader_ext = [_]string{ + ".jsx", ".json", + ".js", ".mjs", + ".cjs", ".css", + + // https://devblogs.microsoft.com/typescript/announcing-typescript-4-5-beta/#new-file-extensions + ".ts", ".tsx", + ".mts", ".cts", + + ".toml", ".wasm", +}; + +pub fn loadersFromTransformOptions(allocator: std.mem.Allocator, _loaders: ?Api.LoaderMap, platform: Platform) !std.StringArrayHashMap(Loader) { var input_loaders = _loaders orelse std.mem.zeroes(Api.LoaderMap); var loader_values = try allocator.alloc(Loader, input_loaders.loaders.len); @@ -1110,36 +1123,19 @@ pub fn loadersFromTransformOptions(allocator: std.mem.Allocator, _loaders: ?Api. } var loaders = try stringHashMapFromArrays( - std.StringHashMap(Loader), + std.StringArrayHashMap(Loader), allocator, input_loaders.extensions, loader_values, ); - const default_loader_ext = comptime [_]string{ - ".jsx", ".json", - ".js", ".mjs", - ".cjs", ".css", - - // https://devblogs.microsoft.com/typescript/announcing-typescript-4-5-beta/#new-file-extensions - ".ts", ".tsx", - ".mts", ".cts", - - ".toml", ".wasm", - }; - - const default_loader_ext_bun = [_]string{".node"}; inline for (default_loader_ext) |ext| { - if (!loaders.contains(ext)) { - try loaders.put(ext, defaultLoaders.get(ext).?); - } + _ = try loaders.getOrPutValue(ext, defaultLoaders.get(ext).?); } if (platform.isBun()) { inline for (default_loader_ext_bun) |ext| { - if (!loaders.contains(ext)) { - try loaders.put(ext, defaultLoaders.get(ext).?); - } + _ = try loaders.getOrPutValue(ext, defaultLoaders.get(ext).?); } } @@ -1182,7 +1178,7 @@ pub const BundleOptions = struct { footer: string = "", banner: string = "", define: *defines.Define, - loaders: std.StringHashMap(Loader), + loaders: std.StringArrayHashMap(Loader), resolve_dir: string = "/", jsx: JSX.Pragma = JSX.Pragma{}, auto_import_jsx: bool = true, |