opal-up 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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