Skip to content

Commit cbdf1a0

Browse files
authored
Merge pull request #43 from mihai-dinculescu/sprockets_4
Add Sprockets 4 support.
2 parents 3cc9d41 + 678c901 commit cbdf1a0

File tree

4 files changed

+35
-5
lines changed

4 files changed

+35
-5
lines changed

lib/typescript-rails.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33
require 'typescript/rails/engine'
44
require 'typescript/rails/template'
55
require 'typescript/rails/template_handler'
6+
require 'typescript/rails/transformer'
67
require 'typescript/rails/version'

lib/typescript/rails/railtie.rb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,17 @@ class Typescript::Rails::Railtie < ::Rails::Railtie
44
config.before_initialize do |app|
55
if ::Rails::VERSION::MAJOR >= 4 || app.config.assets.enabled
66
require 'typescript/rails/template'
7+
require 'typescript/rails/transformer'
78
require 'sprockets'
8-
Sprockets.register_engine '.ts', Typescript::Rails::Template
9+
10+
if Sprockets.respond_to?(:register_engine)
11+
Sprockets.register_engine '.ts', Typescript::Rails::Template, silence_deprecation: true
12+
end
13+
14+
if Sprockets.respond_to?(:register_transformer)
15+
Sprockets.register_mime_type 'text/typescript', extensions: ['.js.ts']
16+
Sprockets.register_transformer 'text/typescript', 'application/javascript', Typescript::Rails::Transformer
17+
end
918
end
1019
end
1120
end

lib/typescript/rails/transformer.rb

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
require 'typescript/rails'
2+
3+
class Typescript::Rails::Transformer
4+
def self.instance
5+
@instance ||= new
6+
end
7+
8+
def self.call(input)
9+
instance.call(input)
10+
end
11+
12+
def call(input)
13+
filename = input[:filename]
14+
source = input[:data]
15+
context = input[:environment].context_class.new(input)
16+
17+
result = ::Typescript::Rails::Compiler.compile(filename, source, context)
18+
{ data: result }
19+
end
20+
end

test/assets_test.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ def assets
4141
end
4242

4343
test 'assets .js.ts is compiled from TypeScript to JavaScript' do
44-
assert { assets['javascripts/hello'].present? }
45-
assert { assets['javascripts/hello'].source.include?('var log_to_console = function (x) {') }
46-
assert { assets['javascripts/hello'].source.include?('var s = "Hello, world!";') }
44+
assert { assets['javascripts/hello.js'].present? }
45+
assert { assets['javascripts/hello.js'].source.include?('var log_to_console = function (x) {') }
46+
assert { assets['javascripts/hello.js'].source.include?('var s = "Hello, world!";') }
4747
end
48-
end
48+
end

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy