svelte-on-rails 20.0.11 → 20.0.12
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/lib/svelte_on_rails/configuration.rb +4 -0
- data/lib/svelte_on_rails/railtie.rb +14 -27
- data/lib/svelte_on_rails/ssr_server.rb +50 -37
- data/lib/tasks/svelte_on_rails_tasks.rake +8 -9
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8854562cdc1c8ecf4ee68da99a569020983037658f8e5027b485d13269198863
|
|
4
|
+
data.tar.gz: 6471ea8193fc85aa4aab7fac55152b8ca83721fdc40296b6ce388e617149b366
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 772c5e798dd44aef9a17da6bdaa1678157988d73885bab0ecb0754193086f8cd640692ed6444d1b9e1f39510a7e844f367afdd4edbbce5f9b87687ac0689d400
|
|
7
|
+
data.tar.gz: f414382164d6d05e689a08a726129dbb44dadaa91505cdc638c4d1cdac134d27275bec34c5189e2ab123b150f69ef8d9cc395abc384999b29fc53a88db7daf76
|
|
@@ -138,6 +138,10 @@ module SvelteOnRails
|
|
|
138
138
|
@node_bin_path ||= resolve_node_bin_path
|
|
139
139
|
end
|
|
140
140
|
|
|
141
|
+
def ssr_server_bin_path
|
|
142
|
+
Rails.root.join(Pathname('node_modules/@csedl/svelte-on-rails/bin/svelte-ssr-server.js'))
|
|
143
|
+
end
|
|
144
|
+
|
|
141
145
|
def initialize_request_metrics(request_uuid)
|
|
142
146
|
return if request_uuid == @request_metrics[:request_uuid]
|
|
143
147
|
|
|
@@ -11,28 +11,23 @@ module SvelteOnRails
|
|
|
11
11
|
SvelteOnRails::Configuration.instance
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
14
|
# Spawn the Node SSR child process only when we're really about to serve
|
|
18
15
|
# HTTP. `after_initialize` runs at the end of boot, so Puma/Unicorn/etc.
|
|
19
16
|
# are already loaded and the detection in `start_ssr_server?` is reliable.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
17
|
+
initializer "svelte-on-rails.initialize_ssr_client" do |app|
|
|
18
|
+
app.config.after_initialize do
|
|
19
|
+
|
|
20
|
+
# if SvelteOnRails::SsrServer.start_ssr_server?
|
|
21
|
+
if defined?(Puma::Server)
|
|
22
|
+
SvelteOnRails::Lib::Utils.secure_debug_log("Initializing SSR client")
|
|
23
|
+
SvelteOnRails::SsrServer.instance
|
|
24
|
+
SvelteOnRails::Lib::Utils.secure_debug_log("Initializing SSR client finished")
|
|
25
|
+
end
|
|
26
|
+
# else
|
|
27
|
+
# SvelteOnRails::Lib::Utils.secure_debug_log("Skipping SSR client (not a web server boot)")
|
|
28
|
+
# end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
36
31
|
|
|
37
32
|
# initializer "svelte-on-rails.initialize_ssr_client" do
|
|
38
33
|
# SvelteOnRails::Lib::Utils.secure_debug_log("calling Initializing SSR client")
|
|
@@ -40,14 +35,6 @@ module SvelteOnRails
|
|
|
40
35
|
# SvelteOnRails::Lib::Utils.secure_debug_log("Initializing SSR client finished")
|
|
41
36
|
# end
|
|
42
37
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
38
|
initializer 'svelte_on_rails.active_record_extensions' do
|
|
52
39
|
ActiveSupport.on_load(:active_record) do
|
|
53
40
|
|
|
@@ -6,58 +6,48 @@ module SvelteOnRails
|
|
|
6
6
|
|
|
7
7
|
include Singleton
|
|
8
8
|
|
|
9
|
-
attr_reader :
|
|
10
|
-
:logfile_path,
|
|
9
|
+
attr_reader :logfile_path,
|
|
11
10
|
:logfile_max_lines,
|
|
12
11
|
:socket_path,
|
|
13
12
|
:ssr_server_bin_path,
|
|
14
|
-
:node_bin
|
|
15
|
-
:ssr_server_ppid_file
|
|
13
|
+
:node_bin
|
|
16
14
|
|
|
17
15
|
# methods
|
|
18
16
|
|
|
19
|
-
def self.instance
|
|
17
|
+
def self.instance
|
|
20
18
|
SvelteOnRails::Lib::Utils.secure_debug_log("SOR Server instance called")
|
|
21
|
-
@instance ||= new
|
|
19
|
+
@instance ||= new
|
|
22
20
|
end
|
|
23
21
|
|
|
24
|
-
def initialize
|
|
22
|
+
def initialize
|
|
25
23
|
|
|
26
24
|
SvelteOnRails::Lib::Utils.secure_debug_log("SOR Server initialize called")
|
|
27
25
|
|
|
28
|
-
@
|
|
29
|
-
"svelte-ssr",
|
|
30
|
-
Rails.application.class.module_parent_name[0..30],
|
|
31
|
-
Rails.env,
|
|
32
|
-
].join("-")
|
|
33
|
-
@dry_run_ppid = dry_run_ppid if dry_run_ppid
|
|
26
|
+
@helpers = SsrServerHelpers.new
|
|
34
27
|
|
|
35
28
|
@logfile_path = Rails.root.join("log/svelte-ssr-server-#{Rails.env}.log")
|
|
36
29
|
@logfile_max_lines = build_logfile_max_lines
|
|
37
|
-
@socket_path =
|
|
30
|
+
@socket_path = @helpers.socket_path
|
|
38
31
|
@use_ssr_server = SvelteOnRails::Configuration.instance.configs[:use_ssr_server]
|
|
39
32
|
@node_bin = SvelteOnRails::Configuration.instance.node_bin_path
|
|
40
|
-
@ssr_server_bin_path =
|
|
41
|
-
@ssr_server_ppid_file = Rails.root.join("tmp", "pids", 'svelte_on_rails.ppid')
|
|
33
|
+
@ssr_server_bin_path = SvelteOnRails::Configuration.instance.ssr_server_bin_path
|
|
42
34
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
# SvelteOnRails::Lib::Utils.secure_debug_log("Rails Server is not yet defined, SSR Server cannot be started because of initializing too early")
|
|
48
|
-
# else
|
|
35
|
+
if @use_ssr_server
|
|
36
|
+
# if !defined?(Rails::Server)
|
|
37
|
+
# SvelteOnRails::Lib::Utils.secure_debug_log("Rails Server is not yet defined, SSR Server cannot be started because of initializing too early")
|
|
38
|
+
# else
|
|
49
39
|
|
|
50
40
|
SvelteOnRails::Lib::Utils.secure_debug_log("SOR using svelte-ssr-server called, now starting node-server...")
|
|
51
41
|
|
|
52
42
|
start_node_server!
|
|
53
|
-
#end
|
|
54
|
-
|
|
55
|
-
|
|
43
|
+
# end
|
|
44
|
+
at_exit do
|
|
45
|
+
kill_my_server
|
|
46
|
+
end
|
|
47
|
+
else
|
|
48
|
+
SvelteOnRails::Lib::Utils.secure_debug_log("SSR Server NOT used => @use_ssr_server #{@use_ssr_server}")
|
|
49
|
+
SvelteOnRails::Lib::Utils.secure_debug_log("SSR Server NOT used => @use_ssr_server #{defined?(Rails::Server)}")
|
|
56
50
|
end
|
|
57
|
-
else
|
|
58
|
-
SvelteOnRails::Lib::Utils.secure_debug_log("SSR Server NOT used => @use_ssr_server #{@use_ssr_server}")
|
|
59
|
-
SvelteOnRails::Lib::Utils.secure_debug_log("SSR Server NOT used => @use_ssr_server #{defined?(Rails::Server)}")
|
|
60
|
-
end
|
|
61
51
|
|
|
62
52
|
end
|
|
63
53
|
|
|
@@ -183,10 +173,8 @@ module SvelteOnRails
|
|
|
183
173
|
SvelteOnRails::Lib::Utils.secure_debug_log("SOR start_node_server! called")
|
|
184
174
|
|
|
185
175
|
# notice ppid
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
File.write(@ssr_server_ppid_file, Process.ppid.to_s)
|
|
189
|
-
end
|
|
176
|
+
FileUtils.mkdir_p(@helpers.ssr_server_ppid_file.dirname)
|
|
177
|
+
File.write(@helpers.ssr_server_ppid_file, Process.ppid.to_s)
|
|
190
178
|
|
|
191
179
|
start = Time.now
|
|
192
180
|
cmd = [
|
|
@@ -256,7 +244,7 @@ module SvelteOnRails
|
|
|
256
244
|
|
|
257
245
|
def kill_my_server
|
|
258
246
|
Process.kill("SIGINT", (node_server_pid || 0)) if node_server_pid
|
|
259
|
-
File.delete(@ssr_server_ppid_file)
|
|
247
|
+
File.delete(@helpers.ssr_server_ppid_file)
|
|
260
248
|
rescue
|
|
261
249
|
|
|
262
250
|
end
|
|
@@ -372,8 +360,31 @@ module SvelteOnRails
|
|
|
372
360
|
end
|
|
373
361
|
end
|
|
374
362
|
|
|
375
|
-
|
|
376
|
-
|
|
363
|
+
end
|
|
364
|
+
|
|
365
|
+
class SsrServerHelpers
|
|
366
|
+
|
|
367
|
+
# theese helpers are used from the :check rake task
|
|
368
|
+
# For that reason they are within a separate class
|
|
369
|
+
|
|
370
|
+
attr_reader :socket_namespace,
|
|
371
|
+
:socket_path
|
|
372
|
+
|
|
373
|
+
def initialize
|
|
374
|
+
|
|
375
|
+
@socket_namespace = [
|
|
376
|
+
"svelte-ssr",
|
|
377
|
+
Rails.application.class.module_parent_name[0..30],
|
|
378
|
+
Rails.env,
|
|
379
|
+
].join("-")
|
|
380
|
+
|
|
381
|
+
end
|
|
382
|
+
|
|
383
|
+
def ssr_server_ppid_file
|
|
384
|
+
Rails.root.join("tmp", "pids", 'svelte_on_rails.ppid')
|
|
385
|
+
end
|
|
386
|
+
def socket_path(ppid: Process.ppid)
|
|
387
|
+
app_sock = Rails.root.join("tmp/sockets/#{@socket_namespace}-#{ppid}.sock").to_s
|
|
377
388
|
FileUtils.mkdir_p(File.dirname(app_sock))
|
|
378
389
|
|
|
379
390
|
return app_sock if app_sock.length < 104
|
|
@@ -383,11 +394,13 @@ module SvelteOnRails
|
|
|
383
394
|
dir = File.expand_path("/tmp/svelte")
|
|
384
395
|
FileUtils.mkdir_p(dir)
|
|
385
396
|
FileUtils.chmod(0777, dir)
|
|
386
|
-
fallback = "#{dir}/#{@socket_namespace}-#{
|
|
397
|
+
fallback = "#{dir}/#{@socket_namespace}-#{ppid}.sock"
|
|
387
398
|
start_server_log(nil, "sockets longer than 104 chars are risky, fallback to: #{fallback}")
|
|
388
399
|
fallback
|
|
389
400
|
end
|
|
390
401
|
|
|
402
|
+
|
|
403
|
+
|
|
391
404
|
end
|
|
392
405
|
|
|
393
406
|
class SsrError < StandardError; end
|
|
@@ -10,26 +10,25 @@ namespace :svelte_on_rails do
|
|
|
10
10
|
configs = SvelteOnRails::Configuration.instance
|
|
11
11
|
ppid_file = Rails.root.join("tmp", "pids", 'svelte_on_rails.ppid')
|
|
12
12
|
ppid = (ppid_file.exist? ? File.read(ppid_file).chomp : nil)
|
|
13
|
-
|
|
14
|
-
socket_path =
|
|
13
|
+
server_helpers = SvelteOnRails::SsrServerHelpers.new
|
|
14
|
+
socket_path = server_helpers.socket_path(ppid: ppid)
|
|
15
15
|
|
|
16
16
|
puts '=' * 80
|
|
17
17
|
puts "Svelte on Rails SSR Server"
|
|
18
18
|
puts '=' * 80
|
|
19
19
|
puts
|
|
20
20
|
puts 'Node'
|
|
21
|
-
puts label('Node bin') +
|
|
21
|
+
puts label('Node bin') + configs.node_bin_path.to_s
|
|
22
22
|
puts label('Node version') + configs.node_version_test
|
|
23
|
-
puts label('SSR Server bin') +
|
|
23
|
+
puts label('SSR Server bin') + configs.ssr_server_bin_path.to_s
|
|
24
24
|
puts label('SSR Server version') + configs.npm_package_version_test.to_s
|
|
25
25
|
puts
|
|
26
26
|
puts 'Rails instance'
|
|
27
|
-
if !
|
|
28
|
-
puts label('Process.ppid') + "#{
|
|
27
|
+
if !server_helpers.ssr_server_ppid_file.exist?
|
|
28
|
+
puts label('Process.ppid') + "#{server_helpers.ssr_server_ppid_file} not found, rails seems not to run or the SsrServer is not initialized yet."
|
|
29
29
|
else
|
|
30
|
-
puts label('Process.ppid') + ppid
|
|
31
|
-
puts label('Socket') + socket_path
|
|
32
|
-
puts label('Server uptime')
|
|
30
|
+
puts label('Process.ppid') + ppid.to_s
|
|
31
|
+
puts label('Socket') + socket_path.to_s
|
|
33
32
|
end
|
|
34
33
|
puts
|
|
35
34
|
puts '=' * 80
|