sprockets-esbuild 0.0.1-arm64-darwin → 0.0.4-arm64-darwin
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 +4 -4
- data/exe/esbuild +36 -11
- data/lib/sprockets-esbuild/transformers.rb +34 -10
- data/lib/sprockets-esbuild/upstream.rb +14 -0
- data/lib/sprockets-esbuild/version.rb +1 -1
- data/lib/sprockets-esbuild.rb +4 -0
- metadata +7 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36ee53171333e633c95f69b91f986fd86e1f5ef491cedefd4502e99d90cfacd9
|
4
|
+
data.tar.gz: 318c7936fb2e1ea3178cca9acf055218d15debd3b7aad6d632171b19ee1dd9a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ddd9287038127d30c7c9ba7c866b75b3b4e86ea7b06cc64b814f05d0f52d82bc9ea5c9a39322fd3afa4396208aa727ff05ccb0cf98d88e9ba8da831aecbc8a11
|
7
|
+
data.tar.gz: 07a49a212f25640298c433a9eafc740abf2f16512661116c9c56a426847e252ab330f57e7cafa9517f88268424ef4e6de6415184ae38cd57b04f94c3ffd1c0f0
|
data/exe/esbuild
CHANGED
@@ -1,19 +1,44 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
# because rubygems shims assume a gem's executables are Ruby
|
3
3
|
|
4
|
-
require "
|
4
|
+
require "sprockets-esbuild/upstream"
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
if
|
10
|
-
|
6
|
+
supported_platforms = SprocketsEsbuild::Upstream::NATIVE_PLATFORMS.keys
|
7
|
+
platform = [:cpu, :os].map { |m| Gem::Platform.local.send(m) }.join("-")
|
8
|
+
|
9
|
+
if supported_platforms.none? { |supported_platform| Gem::Platform.match(supported_platform) }
|
10
|
+
STDERR.puts(<<~ERRMSG)
|
11
|
+
ERROR: sprockets-esbuild does not support the #{platform} platform
|
12
|
+
ERRMSG
|
13
|
+
exit 1
|
14
|
+
end
|
15
|
+
|
16
|
+
exe_path = Dir.glob(File.join(__dir__, "*", "esbuild")).find do |f|
|
17
|
+
Gem::Platform.match(File.basename(File.dirname(f)))
|
11
18
|
end
|
19
|
+
if exe_path.nil?
|
20
|
+
STDERR.puts(<<~ERRMSG)
|
21
|
+
ERROR: Cannot find the esbuild executable for #{platform} in #{__dir__}
|
22
|
+
If you're using bundler, please make sure you're on the latest bundler version:
|
23
|
+
|
24
|
+
gem install bundler
|
25
|
+
bundle update --bundler
|
26
|
+
|
27
|
+
Then make sure your lock file includes this platform by running:
|
28
|
+
|
29
|
+
bundle lock --add-platform #{platform}
|
30
|
+
bundle install
|
12
31
|
|
13
|
-
|
14
|
-
|
15
|
-
|
32
|
+
See `bundle lock --help` output for details.
|
33
|
+
ERRMSG
|
34
|
+
exit 1
|
16
35
|
end
|
17
36
|
|
18
|
-
|
19
|
-
exec
|
37
|
+
if Gem.win_platform?
|
38
|
+
# use system rather than exec as exec inexplicably fails to find the executable
|
39
|
+
# on Windows
|
40
|
+
system exe_path, *ARGV
|
41
|
+
else
|
42
|
+
# use exec rather than system to avoid creating a new process
|
43
|
+
exec exe_path, *ARGV
|
44
|
+
end
|
@@ -3,13 +3,21 @@
|
|
3
3
|
|
4
4
|
require 'open3'
|
5
5
|
require 'sprockets'
|
6
|
+
require 'sprockets/source_map_utils'
|
7
|
+
require 'json'
|
8
|
+
require 'base64'
|
9
|
+
require 'pathname'
|
6
10
|
|
7
11
|
module SprocketsEsbuild
|
8
12
|
|
9
13
|
class TransformerBase
|
10
14
|
include Sprockets
|
11
15
|
|
12
|
-
ESBUILD = File.expand_path('../../exe/esbuild', __dir__)
|
16
|
+
ESBUILD = [File.expand_path('../../exe/esbuild', __dir__)]
|
17
|
+
|
18
|
+
# As windows doesn't support she-bang syntax in scripts, prepend Ruby to
|
19
|
+
# the command
|
20
|
+
ESBUILD.unshift RbConfig.ruby if Gem.win_platform?
|
13
21
|
|
14
22
|
def cache_key
|
15
23
|
@cache_key ||= "#{self.class.name}::#{VERSION}".freeze
|
@@ -20,15 +28,31 @@ module SprocketsEsbuild
|
|
20
28
|
|
21
29
|
input[:cache].fetch([cache_key, data]) do
|
22
30
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
31
|
+
out, err, status = Open3.capture3(*ESBUILD, '--sourcemap',
|
32
|
+
"--sourcefile=#{input[:filename]}", "--loader=#{loader}",
|
33
|
+
stdin_data: input[:data])
|
34
|
+
|
35
|
+
match = out.match %r{^//# sourceMappingURL=data:application/json;base64,(.*)\s*}
|
36
|
+
|
37
|
+
if match
|
38
|
+
# extract sourcemap from output and then format and combine it
|
39
|
+
out[match.begin(0)..match.end(0)] = ''
|
40
|
+
map = JSON.parse(Base64.decode64(match[1]))
|
41
|
+
map = SourceMapUtils.format_source_map(map, input)
|
42
|
+
map = SourceMapUtils.combine_source_maps(input[:metadata][:map], map)
|
43
|
+
else
|
44
|
+
map = nil
|
45
|
+
end
|
46
|
+
|
47
|
+
if status.success? and err.empty?
|
48
|
+
if map
|
49
|
+
{ data: out, map: map }
|
50
|
+
else
|
51
|
+
out
|
52
|
+
end
|
53
|
+
else
|
54
|
+
raise Error, "esbuild exit status=#{status.exitstatus}\n#{err}"
|
55
|
+
end
|
32
56
|
end
|
33
57
|
end
|
34
58
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module SprocketsEsbuild
|
2
|
+
# constants describing the upstream esbuild project
|
3
|
+
module Upstream
|
4
|
+
VERSION = "0.19.5"
|
5
|
+
|
6
|
+
# rubygems platform name => [upstream release tarball name, tarball path]
|
7
|
+
NATIVE_PLATFORMS = {
|
8
|
+
"arm64-darwin" => ["esbuild-darwin-arm64", "package/bin/esbuild"],
|
9
|
+
"x64-mingw32" => ["esbuild-windows-64", "package/esbuild.exe"],
|
10
|
+
"x86_64-darwin" => ["esbuild-darwin-64", "package/bin/esbuild"],
|
11
|
+
"x86_64-linux" => ["esbuild-linux-64", "package/bin/esbuild"],
|
12
|
+
}
|
13
|
+
end
|
14
|
+
end
|
data/lib/sprockets-esbuild.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sprockets-esbuild
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: arm64-darwin
|
6
6
|
authors:
|
7
7
|
- Sam Ruby
|
8
|
+
- Mike Dalessio
|
8
9
|
autorequire:
|
9
10
|
bindir: exe
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2023-10-17 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: sprockets
|
@@ -38,12 +39,13 @@ files:
|
|
38
39
|
- exe/esbuild
|
39
40
|
- lib/sprockets-esbuild.rb
|
40
41
|
- lib/sprockets-esbuild/transformers.rb
|
42
|
+
- lib/sprockets-esbuild/upstream.rb
|
41
43
|
- lib/sprockets-esbuild/version.rb
|
42
|
-
homepage: https://github.com/
|
44
|
+
homepage: https://github.com/rubys/sprockets-esbuild
|
43
45
|
licenses:
|
44
46
|
- MIT
|
45
47
|
metadata:
|
46
|
-
homepage_uri: https://github.com/
|
48
|
+
homepage_uri: https://github.com/rubys/sprockets-esbuild
|
47
49
|
post_install_message:
|
48
50
|
rdoc_options: []
|
49
51
|
require_paths:
|
@@ -59,7 +61,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
59
61
|
- !ruby/object:Gem::Version
|
60
62
|
version: '0'
|
61
63
|
requirements: []
|
62
|
-
rubygems_version: 3.
|
64
|
+
rubygems_version: 3.4.8
|
63
65
|
signing_key:
|
64
66
|
specification_version: 4
|
65
67
|
summary: Transpile JSX, TS, and TSX files with esbuild.
|