diff options
author | 2022-11-06 21:42:05 -0800 | |
---|---|---|
committer | 2022-11-06 21:42:05 -0800 | |
commit | e45f72e8e422191adeb4fd1bad896dc6a47c76b3 (patch) | |
tree | 3a76da8b343c081dba84e0ac95f3c2cc2423106a /src/cache.zig | |
parent | 645cf903350a7fe5f5076100b7c4a6bc8cd1b431 (diff) | |
download | bun-e45f72e8e422191adeb4fd1bad896dc6a47c76b3.tar.gz bun-e45f72e8e422191adeb4fd1bad896dc6a47c76b3.tar.zst bun-e45f72e8e422191adeb4fd1bad896dc6a47c76b3.zip |
Automatically install npm packages when running a script in Bun's runtime (#1459)
* Update bundler.zig
* WIP
* Update README.md
* Update README.md
* wip
* Support running scripts without package.json
* Add `--no-auto-install` and `--prefer-offline` flags
* WIP
* wip
* Update headers-handwritten.h
* WIP
* Build fixes
* Fix UAF
* Update install.zig
* Must call .allocate()
* Micro-optimization: only call .timestamp() once per tick when installing packages
* Support progress bar
* Extend the timestamp for package staleness checks to 1 day
* Add `--prefer-latest`, `-i` CLI Flags
* Fix crash
* Support line text manually being set on an Error instance
* Add a few more fields for error messages
* Fix bug when counting 8 character strings in string builder
* Implement error handling for automatic package installs!
* Fix crash
* Make it say module when there's a slash
* Update module_loader.zig
* Ban dependency versions in import specifiers when a package.json is present
* Remove unused field
* Update README.md
* Update README.md
* Update README.md
* Update README.md
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Diffstat (limited to 'src/cache.zig')
-rw-r--r-- | src/cache.zig | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/cache.zig b/src/cache.zig index 24fac3380..2ff1ce896 100644 --- a/src/cache.zig +++ b/src/cache.zig @@ -72,6 +72,19 @@ pub const Fs = struct { &this.macro_shared_buffer; } + /// When we need to suspend/resume something that has pointers into the shared buffer, we need to + /// switch out the shared buffer so that it is not in use + /// The caller must + pub fn resetSharedBuffer(this: *Fs, buffer: *MutableString) void { + if (buffer == &this.shared_buffer) { + this.shared_buffer = MutableString.initEmpty(bun.default_allocator); + } else if (buffer == &this.macro_shared_buffer) { + this.macro_shared_buffer = MutableString.initEmpty(bun.default_allocator); + } else { + bun.unreachablePanic("resetSharedBuffer: invalid buffer", .{}); + } + } + pub fn deinit(c: *Fs) void { var iter = c.entries.iterator(); while (iter.next()) |entry| { |