Skip to content

Commit

Permalink
feat: support bun as a package manager
Browse files Browse the repository at this point in the history
  • Loading branch information
G-Rath committed Sep 15, 2023
1 parent 6c7979c commit fb3c65e
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 2 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ jobs:
installer: yarn
- name: pnpm
installer: pnpm
- name: bun
installer: bun
variant:
- name: defaults
config_path: "ackama_rails_template.config.yml"
Expand Down
2 changes: 1 addition & 1 deletion ci/bin/create-fake-js-package-managers
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ elsif system("direnv --version > /dev/null 2>&1")
system("direnv allow")
end

managers = %w[npm yarn pnpm]
managers = %w[npm yarn pnpm bun]
manager_in_use = ARGV[0] || ""

if manager_in_use.empty?
Expand Down
15 changes: 14 additions & 1 deletion template.rb
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,16 @@ def setup_yarn_berry
File.unlink("package.json")
end

# Bun uses a binary-based lockfile which cannot be parsed by shakapacker or
# osv-detector, so we want to configure bun to always write a yarn.lock
# in addition so that such tools can check it
def setup_bun
File.write("bunfig.toml", <<~TOML)
[install.lockfile]
print = "yarn"
TOML
end

def add_yarn_package_extension_dependency(name, dependency)
return unless File.exist?(".yarnrc.yml")

Expand All @@ -267,7 +277,10 @@ def add_yarn_package_extension_dependency(name, dependency)
end

def package_json
setup_yarn_berry if @package_json.nil? && ENV.fetch("PACKAGE_JSON_FALLBACK_MANAGER", nil) == "yarn_berry"
if @package_json.nil?
setup_yarn_berry if ENV.fetch("PACKAGE_JSON_FALLBACK_MANAGER", nil) == "yarn_berry"
setup_bun if ENV.fetch("PACKAGE_JSON_FALLBACK_MANAGER", nil) == "bun"
end

@package_json ||= PackageJson.new
end
Expand Down

0 comments on commit fb3c65e

Please sign in to comment.