Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add lockb diffing support for Bun #171

Merged
merged 1 commit into from
Sep 12, 2023

Conversation

terracatta
Copy link
Contributor

Bun ships with a binary lock file called bun.lockb. This makes it tricky for merges and gits. To make life easier for Rails devs we should have the defaults for working with this file added to .gitattributes.

Here's an example run

☁  test_app [main] ./bin/rails javascript:install:bun
Compile into app/assets/builds
      create  app/assets/builds
      create  app/assets/builds/.keep
      append  app/assets/config/manifest.js
      append  .gitignore
      append  .gitignore
Add JavaScript include tag in application layout
      insert  app/views/layouts/application.html.erb
Create default entrypoint in app/javascript/application.js
      create  app/javascript
      create  app/javascript/application.js
Add default package.json
      create  package.json
Add bin/dev to start foreman
      create  bin/dev
Add default Procfile.dev
      create  Procfile.dev
Ensure foreman is installed
         run  gem install foreman from "."
Successfully installed foreman-0.87.2
Parsing documentation for foreman-0.87.2
Done installing documentation for foreman after 0 seconds
1 gem installed
Add default bun.config.js
      create  bun.config.js
Add build script to package.json
Add ability to diff lockb to .gitattributes
      append  .gitattributes
Run `git config diff.lockb.textconv bun && git config diff.lockb.binary true` to enable pretty diffs for Bun's .lockb file

Let's add a really hot JS lib...

☁  test_app [main] bun add leftpad
bun add v1.0.0 (822a00c4)

 installed [email protected]


 1 packages installed [8.00ms]

And here's the nice diff!

diff --git a/bun.lockb b/bun.lockb
index da9bea3..45423b2 100755
--- a/bun.lockb
+++ b/bun.lockb
@@ -1,6 +1,6 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
-# bun ./bun.lockb --hash: 5DA53CFB274FB1D4-9feadbd5bf3ab070-B09F5E779FD1315D-576d909a8d0e014d
+# bun ./bun.lockb --hash: 9F93D6F459FB2907-99c8645f3c9c6703-37EDD41CC550C45A-5bfaf1dee528bde5


"@nodelib/[email protected]":
@@ -87,6 +87,11 @@ is-number@^7.0.0:
  resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
  integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==

+leftpad@^0.0.1:
+  version "0.0.1"
+  resolved "https://registry.npmjs.org/leftpad/-/leftpad-0.0.1.tgz"
+  integrity sha512-kBAuxBQJlJ85LDc+SnGSX6gWJnJR9Qk4lbgXmz/qPfCOCieCk7BgoN3YvzoNr5BUjqxQDOQxawJJvXXd6c+6Mg==
+
merge2@^1.3.0:
  version "1.4.1"
  resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
diff --git a/package.json b/package.json
index fead08c..b0576be 100644
--- a/package.json
+++ b/package.json
@@ -5,6 +5,7 @@
    "build": "bun bun.config.js"
  },
  "dependencies": {
-    "esbuild-rails": "^1.0.7"
+    "esbuild-rails": "^1.0.7",
+    "leftpad": "^0.0.1"
  }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants