shakapacker 9.0.0.beta.11 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8e0621d94ac8535638e4678fba06be1449ec6c5705dfd94877866344f9b4784f
4
- data.tar.gz: 7727840c175b5b5a710e6f74d5f69b0ad6bbd4a810ec180b38218f2ab435f062
3
+ metadata.gz: b4cfe1097512ba4c08cc57b061192f0bb0ad8d5d41a508a5f978068d447eae8c
4
+ data.tar.gz: 9dfe66dc0d435f1b045bb51455869fb7da0008055e9d062673b666722a360221
5
5
  SHA512:
6
- metadata.gz: 126010b0c2bcf735ff324f38a4bddc93435540f543b17c233112535696bfcb0f8005aef1a55563a7cf1526ac5fa4248c9dd6c7e3d04fd17d44348d7b5e9e3f34
7
- data.tar.gz: cd8fa6305ed923e30421ef5e427118bfe2d6fcdd3a592c673af5e25340ac047aa34e3fa30b6fe66dfde0e6054b16cf03d48b6d2701b4830cf5164360331052f7
6
+ metadata.gz: f09b82882e96e0867be91135dda3eff2d77b629571d4ff7fde8b2a6c4748cb9749ce9e6a80c47ec117b083ef79734d23b99ddb971950f941c328b52877277ccb
7
+ data.tar.gz: c19b394a110cd6beebe23715af218fbc932d5052498911ea51824a790c917a4d7fbd76ed92b3144d5d605e886a648b6d05c27b179dacc097fee5936446a1ce65
data/.prettierignore ADDED
@@ -0,0 +1,3 @@
1
+ # Template files that should maintain their original quote style
2
+ lib/install/config/**/*.ts
3
+ lib/install/config/**/*.js
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shakapacker (9.0.0.beta.11)
4
+ shakapacker (9.0.0)
5
5
  activesupport (>= 5.2)
6
6
  package_json
7
7
  rack-proxy (>= 0.6.1)
@@ -3,4 +3,4 @@ const { generateRspackConfig } = require('shakapacker/rspack')
3
3
 
4
4
  const rspackConfig = generateRspackConfig()
5
5
 
6
- module.exports = rspackConfig
6
+ module.exports = rspackConfig
@@ -0,0 +1,7 @@
1
+ // See the shakacode/shakapacker README and docs directory for advice on customizing your rspackConfig.
2
+ import { generateRspackConfig } from 'shakapacker/rspack'
3
+ import type { RspackOptions } from '@rspack/core'
4
+
5
+ const rspackConfig: RspackOptions = generateRspackConfig()
6
+
7
+ export default rspackConfig
@@ -0,0 +1,7 @@
1
+ // See the shakacode/shakapacker README and docs directory for advice on customizing your webpackConfig.
2
+ import { generateWebpackConfig } from 'shakapacker'
3
+ import type { Configuration } from 'webpack'
4
+
5
+ const webpackConfig: Configuration = generateWebpackConfig()
6
+
7
+ export default webpackConfig
@@ -40,8 +40,24 @@ if @transpiler_to_install == "babel" && !ENV["JAVASCRIPT_TRANSPILER"]
40
40
  say " 📝 Updated config/shakapacker.yml to use Babel transpiler", :green
41
41
  end
42
42
 
43
- say "Copying webpack core config"
44
- directory "#{install_dir}/config/webpack", "config/webpack", force_option
43
+ # Detect TypeScript usage
44
+ # Auto-detect from tsconfig.json or explicit via SHAKAPACKER_USE_TYPESCRIPT env var
45
+ @use_typescript = File.exist?(Rails.root.join("tsconfig.json")) ||
46
+ ENV["SHAKAPACKER_USE_TYPESCRIPT"] == "true"
47
+ assets_bundler = ENV["SHAKAPACKER_ASSETS_BUNDLER"] || "webpack"
48
+ config_extension = @use_typescript ? "ts" : "js"
49
+
50
+ say "Copying #{assets_bundler} core config (#{config_extension.upcase})"
51
+ config_file = "#{assets_bundler}.config.#{config_extension}"
52
+ source_config = "#{install_dir}/config/#{assets_bundler}/#{config_file}"
53
+ dest_config = "config/#{assets_bundler}/#{config_file}"
54
+
55
+ empty_directory "config/#{assets_bundler}"
56
+ copy_file source_config, dest_config, force_option
57
+
58
+ if @use_typescript
59
+ say " ✨ Using TypeScript config for enhanced type safety", :green
60
+ end
45
61
 
46
62
  if Dir.exist?(Shakapacker.config.source_path)
47
63
  say "The packs app source directory already exists"
@@ -195,7 +211,7 @@ Dir.chdir(Rails.root) do
195
211
  end
196
212
 
197
213
  # Inline fetch_peer_dependencies and fetch_common_dependencies
198
- peers = PackageJson.read(install_dir).fetch(ENV["SHAKAPACKER_BUNDLER"] || "webpack")
214
+ peers = PackageJson.read(install_dir).fetch(ENV["SHAKAPACKER_ASSETS_BUNDLER"] || "webpack")
199
215
  common_deps = ENV["SKIP_COMMON_LOADERS"] ? {} : PackageJson.read(install_dir).fetch("common")
200
216
  peers = peers.merge(common_deps)
201
217
 
@@ -1,4 +1,4 @@
1
1
  module Shakapacker
2
2
  # Change the version in package.json too, please!
3
- VERSION = "9.0.0.beta.11".freeze
3
+ VERSION = "9.0.0".freeze
4
4
  end
@@ -2,14 +2,20 @@ install_template_path = File.expand_path("../../install/template.rb", __dir__).f
2
2
  bin_path = ENV["BUNDLE_BIN"] || Rails.root.join("bin")
3
3
 
4
4
  namespace :shakapacker do
5
- desc "Install Shakapacker in this application (use ASSETS_BUNDLER=rspack for Rspack)"
6
- task :install, [:bundler] => [:check_node] do |task, args|
5
+ desc "Install Shakapacker in this application (use SHAKAPACKER_ASSETS_BUNDLER=rspack for Rspack, --typescript for TypeScript)"
6
+ task :install, [:bundler, :typescript] => [:check_node] do |task, args|
7
7
  Shakapacker::Configuration.installing = true
8
8
 
9
- if args[:bundler] == "rspack" || ENV["ASSETS_BUNDLER"] == "rspack"
9
+ if args[:bundler] == "rspack" || ENV["SHAKAPACKER_ASSETS_BUNDLER"] == "rspack"
10
10
  ENV["SHAKAPACKER_ASSETS_BUNDLER"] = "rspack"
11
11
  end
12
12
 
13
+ # Set typescript flag if passed as argument
14
+ # Accepts: typescript, true, or any truthy value
15
+ if args[:typescript] && args[:typescript] != "false"
16
+ ENV["SHAKAPACKER_USE_TYPESCRIPT"] = "true"
17
+ end
18
+
13
19
  prefix = task.name.split(/#|shakapacker:install/).first
14
20
 
15
21
  if Rails::VERSION::MAJOR >= 5
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shakapacker",
3
- "version": "9.0.0-beta.11",
3
+ "version": "9.0.0",
4
4
  "description": "Use webpack to manage app-like JavaScript modules in Rails",
5
5
  "homepage": "https://github.com/shakacode/shakapacker",
6
6
  "bugs": {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shakapacker
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.0.beta.11
4
+ version: 9.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
@@ -150,6 +150,7 @@ files:
150
150
  - ".husky/pre-commit"
151
151
  - ".node-version"
152
152
  - ".npmignore"
153
+ - ".prettierignore"
153
154
  - ".rspec"
154
155
  - ".rubocop.yml"
155
156
  - ".yalcignore"
@@ -207,8 +208,10 @@ files:
207
208
  - lib/install/bin/shakapacker-dev-server
208
209
  - lib/install/binstubs.rb
209
210
  - lib/install/config/rspack/rspack.config.js
211
+ - lib/install/config/rspack/rspack.config.ts
210
212
  - lib/install/config/shakapacker.yml
211
213
  - lib/install/config/webpack/webpack.config.js
214
+ - lib/install/config/webpack/webpack.config.ts
212
215
  - lib/install/package.json
213
216
  - lib/install/template.rb
214
217
  - lib/shakapacker.rb
@@ -347,7 +350,7 @@ homepage: https://github.com/shakacode/shakapacker
347
350
  licenses:
348
351
  - MIT
349
352
  metadata:
350
- source_code_uri: https://github.com/shakacode/shakapacker/tree/v9.0.0.beta.11
353
+ source_code_uri: https://github.com/shakacode/shakapacker/tree/v9.0.0
351
354
  rdoc_options: []
352
355
  require_paths:
353
356
  - lib