opal-up 0.0.3 → 0.0.4

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.
@@ -1,25 +0,0 @@
1
- require 'up/node/cluster'
2
-
3
- module Up
4
- module Node
5
- module RackCluster
6
- def self.run(app, options = {})
7
- raise "already running" if @server
8
- @server = Up::Node::Cluster.new(app: app, **options).listen
9
- true
10
- end
11
-
12
- def self.shutdown
13
- @server&.stop
14
- @server = nil
15
- end
16
- end
17
- end
18
- end
19
-
20
- ENV['RACK_HANDLER'] ||= 'up'
21
-
22
- begin
23
- ::Rackup::Handler.register('up', Up::Node::RackCluster) if defined?(::Rackup::Handler)
24
- rescue StandardError
25
- end
@@ -1,106 +0,0 @@
1
- # backtick_javascript: true
2
-
3
- require 'logger'
4
- require 'up/version'
5
-
6
- module Up
7
- module Node
8
- class RackEnv < ::Hash
9
- RACK_VARS = %w[rack.errors rack.hijack rack.hijack? rack.input rack.logger
10
- rack.multipart.buffer_size rack.multipart.tempfile_factory
11
- rack.response_finished
12
- rack.session rack.upgrade rack.upgrade? rack.url_scheme
13
- HTTP_ACCEPT HTTP_ACCEPT_ENCODING HTTP_ACCEPT_LANGUAGE
14
- HTTP_CONNECTION HTTP_HOST HTTP_USER_AGENT HTTP_VERSION PATH_INFO QUERY_STRING REQUEST_METHOD
15
- SCRIPT_NAME SERVER_NAME SERVER_PROTOCOL SERVER_SOFTWARE]
16
- def initialize(req, config)
17
- @req = req
18
- @config = config
19
- end
20
-
21
- def [](key)
22
- return super(key) if key?(key)
23
- self[key] = case key
24
- when 'rack.errors'
25
- STDERR
26
- when 'rack.hijack'
27
- nil
28
- when 'rack.hijack?'
29
- false
30
- when 'rack.input'
31
- ::IO.new
32
- when 'rack.logger'
33
- ::Logger.new(self['rack.errors'])
34
- when 'rack.multipart.buffer_size'
35
- 4096
36
- when 'rack.multipart.tempfile_factory'
37
- proc { |_filename, _content_type| File.new }
38
- when 'rack.response_finished'
39
- []
40
- when 'rack.session'
41
- {}
42
- when 'rack.upgrade'
43
- nil
44
- when 'rack.upgrade?'
45
- nil
46
- when 'rack.url_scheme'
47
- @config[:scheme]
48
- when 'HTTP_VERSION'
49
- `#@req.httpVersion`
50
- when 'PATH_INFO'
51
- `#@req.url`
52
- when 'QUERY_STRING'
53
- nil
54
- when 'RACK_ERRORS'
55
- self['rack.errors']
56
- when 'RACK_LOGGER'
57
- self['rack.logger']
58
- when 'REQUEST_METHOD'
59
- `#@req.method`
60
- when 'SCRIPT_NAME'
61
- ""
62
- when 'SERVER_NAME'
63
- @config[:host]
64
- when 'SERVER_PORT'
65
- @config[:port].to_s
66
- when 'SERVER_PROTOCOL'
67
- ""
68
- when 'SERVER_SOFTWARE'
69
- "#{@config[:handler]}/#{Up::VERSION} #{@config[:engine]}"
70
- else
71
- if key.start_with?('HTTP_')
72
- key = key[5..].gsub(/_/, '-')
73
- `#@req.headers[key.toLowerCase()]`
74
- else
75
- nil
76
- end
77
- end
78
- end
79
-
80
- def req_headers
81
- h = {}
82
- %x{
83
- var hdr, hds = #@req.headers;
84
- for (hdr in hds) { h.set(hdr, hdrs[hdr]); }
85
- }
86
- h
87
- end
88
-
89
- def each
90
- unless @got_them_all
91
- RACK_VARS.each { |k| self[k] unless self.key?(k) }
92
- @got_them_all = true
93
- end
94
- super
95
- end
96
-
97
- def to_s
98
- unless @got_them_all
99
- RACK_VARS.each { |k| self[k] unless self.key?(k) }
100
- @got_them_all = true
101
- end
102
- super
103
- end
104
- end
105
- end
106
- end
@@ -1,25 +0,0 @@
1
- require 'up/node/server'
2
-
3
- module Up
4
- module Node
5
- module RackServer
6
- def self.run(app, options = {})
7
- raise "already running" if @server
8
- @server = Up::Node::Server.new(app: app, **options).listen
9
- true
10
- end
11
-
12
- def self.shutdown
13
- @server&.stop
14
- @server = nil
15
- end
16
- end
17
- end
18
- end
19
-
20
- ENV['RACK_HANDLER'] ||= 'up'
21
-
22
- begin
23
- ::Rackup::Handler.register('up', Up::Node::RackServer) if defined?(::Rackup::Handler)
24
- rescue StandardError
25
- end
@@ -1,84 +0,0 @@
1
- # backtick_javascript: true
2
- require 'up/cli'
3
- require 'up/node/rack_env'
4
-
5
- %x{
6
- module.paths.push(process.cwd() + '/node_modules');
7
- const http = require('node:http');
8
- const https = require('node:https');
9
- const fs = require('node:fs');
10
- }
11
-
12
- module Up
13
- module Node
14
- class Server
15
- def initialize(app:, host: 'localhost', port: 3000, scheme: 'http', ca_file: nil, cert_file: nil, key_file: nil)
16
- @app = app
17
- @scheme = scheme || 'http'
18
- raise "unsupported scheme #{@scheme}" unless %w[http https].include?(@scheme)
19
- @host = host || 'localhost'
20
- @port = port&.to_i || 3000
21
- @config = { handler: self.class.name, engine: "node/#{`process.version`}", port: port, scheme: scheme, host: host }.freeze
22
- @ca_file = ca_file
23
- @cert_file = cert_file
24
- @key_file = key_file
25
- @server = nil
26
- end
27
-
28
- %x{
29
- self.handle_headers = function(rack_headers, srv_res) {
30
- if (rack_headers.$$is_hash) {
31
- var header, k, v;
32
- for(header of rack_headers) {
33
- k = header[0];
34
- if (!k.startsWith('rack.')) {
35
- v = header[1];
36
- if (v.$$is_array) {
37
- v = v.join("\n");
38
- }
39
- srv_res.setHeader(k, v);
40
- }
41
- }
42
- }
43
- }
44
-
45
- self.handle_response = function(parts, srv_res) {
46
- if (parts["$respond_to?"]('each')) {
47
- #{`parts`.each { |part| `srv_res.write(part)` }}
48
- } else if (parts["$respond_to?"]('call')) {
49
- srv_res.write(parts.$call());
50
- }
51
- #{`parts`.close if `parts`.respond_to?(:close)}
52
- }
53
- }
54
-
55
- def listen
56
- raise "already running" if @server
57
- %x{
58
- const ounr = Opal.Up.Node.RackEnv;
59
- const ouns = Opal.Up.Node.Server;
60
- function handler(req, res) {
61
- const rack_res = #@app.$call(ounr.$new(req, #@config));
62
- res.statusCode = rack_res[0];
63
- ouns.handle_headers(rack_res[1], res);
64
- ouns.handle_response(rack_res[2], res);
65
- res.end();
66
- }
67
- if (#@scheme == 'https') {
68
- #@server = https.createServer({ ca: fs.readFileSync(#@ca_file), cert: fs.readFileSync(#@cert_file), key: fs.readFileSync(#@key_file) }, handler);
69
- } else {
70
- #@server = http.createServer(handler);
71
- }
72
- #@server.listen(#@port, #@host, () => { console.log(`Server is running on ${#@scheme}://${#@host}:${#@port}`)});
73
- }
74
- end
75
-
76
- def stop
77
- if Up::CLI::stoppable?
78
- `#@server.close()`
79
- @server = nil
80
- end
81
- end
82
- end
83
- end
84
- end
@@ -1,15 +0,0 @@
1
- require 'opal/platform'
2
- require 'nodejs/file'
3
- require 'nodejs/require'
4
- require 'opal-parser'
5
- require 'rack/builder'
6
- require 'up/rack_builder_patch'
7
- require 'up/node/rack_server'
8
-
9
- module Up
10
- module CLI
11
- def self.call
12
- Up::Node::RackServer.run(get_app, get_options)
13
- end
14
- end
15
- end
@@ -1,97 +0,0 @@
1
- require 'logger'
2
- require 'up/version'
3
-
4
- module Up
5
- module Ruby
6
- class RackEnv < ::Hash
7
- RACK_VARS = %w[rack.errors rack.hijack rack.hijack? rack.input rack.logger
8
- rack.multipart.buffer_size rack.multipart.tempfile_factory
9
- rack.response_finished
10
- rack.session rack.upgrade rack.upgrade? rack.url_scheme
11
- HTTP_ACCEPT HTTP_ACCEPT_ENCODING HTTP_ACCEPT_LANGUAGE
12
- HTTP_CONNECTION HTTP_HOST HTTP_USER_AGENT PATH_INFO QUERY_STRING REQUEST_METHOD
13
- SCRIPT_NAME SERVER_NAME SERVER_PROTOCOL SERVER_SOFTWARE]
14
- def initialize(req, config = {})
15
- @req = req
16
- @config = config
17
- end
18
-
19
- def [](key)
20
- return super(key) if key?(key)
21
- self[key] = case key
22
- when 'rack.errors'
23
- STDERR
24
- when 'rack.hijack'
25
- nil
26
- when 'rack.hijack?'
27
- false
28
- when 'rack.input'
29
- nil # ::IO.new
30
- when 'rack.logger'
31
- ::Logger.new(self['rack.errors'])
32
- when 'rack.multipart.buffer_size'
33
- 4096
34
- when 'rack.multipart.tempfile_factory'
35
- proc { |_filename, _content_type| File.new }
36
- when 'rack.response_finished'
37
- []
38
- when 'rack.session'
39
- {}
40
- when 'rack.upgrade'
41
- nil
42
- when 'rack.upgrade?'
43
- nil
44
- when 'rack.url_scheme'
45
- @config[:scheme]
46
- when 'PATH_INFO'
47
- @req.get_url
48
- when 'QUERY_STRING'
49
- @req.get_query
50
- when 'RACK_ERRORS'
51
- self['rack.errors']
52
- when 'RACK_LOGGER'
53
- self['rack.logger']
54
- when 'REQUEST_METHOD'
55
- @req.get_method
56
- when 'SCRIPT_NAME'
57
- ""
58
- when 'SERVER_NAME'
59
- @config[:host]
60
- when 'SERVER_PORT'
61
- @config[:port].to_s
62
- when 'SERVER_PROTOCOL'
63
- @req.get_header('protocol')
64
- when 'SERVER_SOFTWARE'
65
- "#{@config[:handler]}/#{Up::VERSION} #{@config[:engine]}"
66
- else
67
- if key.start_with?('HTTP_')
68
- key = key[5..].gsub(/_/, '-')
69
- @req.get_header(key.downcase)
70
- else
71
- nil
72
- end
73
- end
74
- end
75
-
76
- def req_headers
77
- @req.headers
78
- end
79
-
80
- def each
81
- unless @got_them_all
82
- RACK_VARS.each { |k| self[k] unless self.key?(k) }
83
- @got_them_all = true
84
- end
85
- super
86
- end
87
-
88
- def to_s
89
- unless @got_them_all
90
- RACK_VARS.each { |k| self[k] unless self.key?(k) }
91
- @got_them_all = true
92
- end
93
- super
94
- end
95
- end
96
- end
97
- end
@@ -1,101 +0,0 @@
1
- # backtick_javascript: true
2
-
3
- require 'logger'
4
- require 'up/version'
5
-
6
- module Up
7
- module UWebSocket
8
- class RackEnv < ::Hash
9
- RACK_VARS = %w[rack.errors rack.hijack rack.hijack? rack.input rack.logger
10
- rack.multipart.buffer_size rack.multipart.tempfile_factory
11
- rack.response_finished
12
- rack.session rack.upgrade rack.upgrade? rack.url_scheme
13
- HTTP_ACCEPT HTTP_ACCEPT_ENCODING HTTP_ACCEPT_LANGUAGE
14
- HTTP_CONNECTION HTTP_HOST HTTP_USER_AGENT PATH_INFO QUERY_STRING REQUEST_METHOD
15
- SCRIPT_NAME SERVER_NAME SERVER_PROTOCOL SERVER_SOFTWARE]
16
- def initialize(req, config)
17
- @req = req
18
- @config = config
19
- end
20
-
21
- def [](key)
22
- return super(key) if key?(key)
23
- self[key] = case key
24
- when 'rack.errors'
25
- STDERR
26
- when 'rack.hijack'
27
- nil
28
- when 'rack.hijack?'
29
- false
30
- when 'rack.input'
31
- ::IO.new
32
- when 'rack.logger'
33
- ::Logger.new(self['rack.errors'])
34
- when 'rack.multipart.buffer_size'
35
- 4096
36
- when 'rack.multipart.tempfile_factory'
37
- proc { |_filename, _content_type| File.new }
38
- when 'rack.response_finished'
39
- []
40
- when 'rack.session'
41
- {}
42
- when 'rack.upgrade'
43
- nil
44
- when 'rack.upgrade?'
45
- nil
46
- when 'rack.url_scheme'
47
- @config[:scheme]
48
- when 'PATH_INFO'
49
- `#@req.getUrl()`
50
- when 'QUERY_STRING'
51
- `#@req.getQuery() || nil`
52
- when 'RACK_ERRORS'
53
- self['rack.errors']
54
- when 'RACK_LOGGER'
55
- self['rack.logger']
56
- when 'REQUEST_METHOD'
57
- `#@req.getMethod().toUpperCase()`
58
- when 'SCRIPT_NAME'
59
- ""
60
- when 'SERVER_NAME'
61
- @config[:host]
62
- when 'SERVER_PORT'
63
- @config[:port].to_s
64
- when 'SERVER_PROTOCOL'
65
- `#@req.getHeader('protocol')`
66
- when 'SERVER_SOFTWARE'
67
- "#{@config[:handler]}/#{Up::VERSION} #{@config[:engine]}"
68
- else
69
- if key.start_with?('HTTP_')
70
- key = key[5..].gsub(/_/, '-')
71
- `#@req.getHeader(key.toLowerCase())`
72
- else
73
- nil
74
- end
75
- end
76
- end
77
-
78
- def req_headers
79
- h = {}
80
- `#@req.forEach((k, v) => { h.set(k, v); })`
81
- h
82
- end
83
-
84
- def each
85
- unless @got_them_all
86
- RACK_VARS.each { |k| self[k] unless self.key?(k) }
87
- @got_them_all = true
88
- end
89
- super
90
- end
91
-
92
- def to_s
93
- unless @got_them_all
94
- RACK_VARS.each { |k| self[k] unless self.key?(k) }
95
- @got_them_all = true
96
- end
97
- super
98
- end
99
- end
100
- end
101
- end