hanami-lambda 0.2.0 → 0.2.1
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/README.md +2 -2
- data/Rakefile +10 -1
- data/Steepfile +13 -0
- data/lib/hanami/lambda/dispatcher.rb +1 -1
- data/lib/hanami/lambda/version.rb +1 -1
- data/lib/hanami/lambda.rb +2 -1
- data/rbs_collection.lock.yaml +168 -0
- data/rbs_collection.yaml +23 -0
- data/sig/hanami/lambda/application.rbs +40 -0
- data/sig/hanami/lambda/dispatcher.rbs +75 -0
- data/sig/hanami/lambda/errors.rbs +0 -0
- data/sig/hanami/lambda/event.rbs +47 -0
- data/sig/hanami/lambda/events/base.rbs +8 -0
- data/sig/hanami/lambda/events/event_bridge.rbs +8 -0
- data/sig/hanami/lambda/function.rbs +42 -0
- data/sig/hanami/lambda/rack.rbs +32 -0
- data/sig/hanami/lambda/types.rbs +18 -0
- data/sig/hanami/lambda.rbs +47 -1
- data/sig/shims/dry.rbs +15 -0
- data/sig/shims/hanami.rbs +24 -0
- data/sig/shims/rack.rbs +3 -0
- data/sig/shims/zeitwerk.rbs +17 -0
- metadata +32 -3
- data/lib/hanami/errors.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40ca307310677286db9dee58417a0c6fa6517e9e96b196cd7121ba65ca780264
|
4
|
+
data.tar.gz: f8775ac6c22599741d7a6ff165ab9e6ec629179ccac22710837153f43adf4607
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a9ddd07660396c06bdba09df2715bc76465f6623a6306c5f4d5d9a13c6e252c8bfd359f8024a1d2d2c43a9c7332afc1f10b3ba5db0e1c2c27617a3d3ed585881
|
7
|
+
data.tar.gz: e4a2abe530fa6b23bf5c17b608aa4168f030ef01d9b696879f6a0988fb12250607dbac3dd3af359fcc5a3988fd0129e1adacd3f0afd2a2de82fecee3d373b5e8
|
data/README.md
CHANGED
@@ -52,7 +52,7 @@ end
|
|
52
52
|
|
53
53
|
## Usage
|
54
54
|
|
55
|
-
Use `config/
|
55
|
+
Use `config/app.Hanami::Lambda.call` as the function handler
|
56
56
|
|
57
57
|
```yaml
|
58
58
|
# AWS SAM
|
@@ -61,7 +61,7 @@ Resources:
|
|
61
61
|
Type: AWS::Serverless::Function
|
62
62
|
Properties:
|
63
63
|
CodeUri: .
|
64
|
-
Handler: config/
|
64
|
+
Handler: config/app.Hanami::Lambda.call
|
65
65
|
Runtime: ruby3.2
|
66
66
|
```
|
67
67
|
|
data/Rakefile
CHANGED
@@ -9,4 +9,13 @@ require "rubocop/rake_task"
|
|
9
9
|
|
10
10
|
RuboCop::RakeTask.new
|
11
11
|
|
12
|
-
task
|
12
|
+
task :steep do
|
13
|
+
# Steep doesn't provide Rake integration yet,
|
14
|
+
# but can do that ourselves
|
15
|
+
require "steep"
|
16
|
+
require "steep/cli"
|
17
|
+
|
18
|
+
Steep::CLI.new(argv: ["check"], stdout: $stdout, stderr: $stderr, stdin: $stdin).run
|
19
|
+
end
|
20
|
+
|
21
|
+
task default: %i[spec rubocop steep]
|
data/Steepfile
ADDED
data/lib/hanami/lambda.rb
CHANGED
@@ -40,6 +40,7 @@ module Hanami
|
|
40
40
|
#
|
41
41
|
# @api public
|
42
42
|
def self.call(event:, context:)
|
43
|
+
require "bundler/setup"
|
43
44
|
app.boot
|
44
45
|
app.handle_lambda(event: event, context: context)
|
45
46
|
end
|
@@ -64,7 +65,7 @@ module Hanami
|
|
64
65
|
# @api private
|
65
66
|
def self.gem_loader
|
66
67
|
@gem_loader ||= Zeitwerk::Loader.new.tap do |loader|
|
67
|
-
root = File.expand_path("..", __dir__)
|
68
|
+
root = File.expand_path("..", __dir__ || "")
|
68
69
|
loader.tag = "hanami-lambda"
|
69
70
|
loader.inflector = Zeitwerk::GemInflector.new("#{root}/hanami-lambda.rb")
|
70
71
|
loader.push_dir(root)
|
@@ -0,0 +1,168 @@
|
|
1
|
+
---
|
2
|
+
path: ".gem_rbs_collection"
|
3
|
+
gems:
|
4
|
+
- name: abbrev
|
5
|
+
version: '0'
|
6
|
+
source:
|
7
|
+
type: stdlib
|
8
|
+
- name: activesupport
|
9
|
+
version: '7.0'
|
10
|
+
source:
|
11
|
+
type: git
|
12
|
+
name: ruby/gem_rbs_collection
|
13
|
+
revision: ec140aff951e3af39846eed4525ba5d040d294fa
|
14
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
15
|
+
repo_dir: gems
|
16
|
+
- name: base64
|
17
|
+
version: '0'
|
18
|
+
source:
|
19
|
+
type: stdlib
|
20
|
+
- name: bigdecimal
|
21
|
+
version: '0'
|
22
|
+
source:
|
23
|
+
type: stdlib
|
24
|
+
- name: cgi
|
25
|
+
version: '0'
|
26
|
+
source:
|
27
|
+
type: stdlib
|
28
|
+
- name: connection_pool
|
29
|
+
version: '2.4'
|
30
|
+
source:
|
31
|
+
type: git
|
32
|
+
name: ruby/gem_rbs_collection
|
33
|
+
revision: ec140aff951e3af39846eed4525ba5d040d294fa
|
34
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
35
|
+
repo_dir: gems
|
36
|
+
- name: csv
|
37
|
+
version: '0'
|
38
|
+
source:
|
39
|
+
type: stdlib
|
40
|
+
- name: date
|
41
|
+
version: '0'
|
42
|
+
source:
|
43
|
+
type: stdlib
|
44
|
+
- name: erb
|
45
|
+
version: '0'
|
46
|
+
source:
|
47
|
+
type: stdlib
|
48
|
+
- name: fileutils
|
49
|
+
version: '0'
|
50
|
+
source:
|
51
|
+
type: stdlib
|
52
|
+
- name: forwardable
|
53
|
+
version: '0'
|
54
|
+
source:
|
55
|
+
type: stdlib
|
56
|
+
- name: i18n
|
57
|
+
version: '1.10'
|
58
|
+
source:
|
59
|
+
type: git
|
60
|
+
name: ruby/gem_rbs_collection
|
61
|
+
revision: ec140aff951e3af39846eed4525ba5d040d294fa
|
62
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
63
|
+
repo_dir: gems
|
64
|
+
- name: json
|
65
|
+
version: '0'
|
66
|
+
source:
|
67
|
+
type: stdlib
|
68
|
+
- name: listen
|
69
|
+
version: '3.2'
|
70
|
+
source:
|
71
|
+
type: git
|
72
|
+
name: ruby/gem_rbs_collection
|
73
|
+
revision: ec140aff951e3af39846eed4525ba5d040d294fa
|
74
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
75
|
+
repo_dir: gems
|
76
|
+
- name: logger
|
77
|
+
version: '0'
|
78
|
+
source:
|
79
|
+
type: stdlib
|
80
|
+
- name: minitest
|
81
|
+
version: '0'
|
82
|
+
source:
|
83
|
+
type: stdlib
|
84
|
+
- name: monitor
|
85
|
+
version: '0'
|
86
|
+
source:
|
87
|
+
type: stdlib
|
88
|
+
- name: mutex_m
|
89
|
+
version: '0'
|
90
|
+
source:
|
91
|
+
type: stdlib
|
92
|
+
- name: optparse
|
93
|
+
version: '0'
|
94
|
+
source:
|
95
|
+
type: stdlib
|
96
|
+
- name: pathname
|
97
|
+
version: '0'
|
98
|
+
source:
|
99
|
+
type: stdlib
|
100
|
+
- name: rack
|
101
|
+
version: '2.2'
|
102
|
+
source:
|
103
|
+
type: git
|
104
|
+
name: ruby/gem_rbs_collection
|
105
|
+
revision: ec140aff951e3af39846eed4525ba5d040d294fa
|
106
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
107
|
+
repo_dir: gems
|
108
|
+
- name: rainbow
|
109
|
+
version: '3.0'
|
110
|
+
source:
|
111
|
+
type: git
|
112
|
+
name: ruby/gem_rbs_collection
|
113
|
+
revision: ec140aff951e3af39846eed4525ba5d040d294fa
|
114
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
115
|
+
repo_dir: gems
|
116
|
+
- name: rake
|
117
|
+
version: '13.0'
|
118
|
+
source:
|
119
|
+
type: git
|
120
|
+
name: ruby/gem_rbs_collection
|
121
|
+
revision: ec140aff951e3af39846eed4525ba5d040d294fa
|
122
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
123
|
+
repo_dir: gems
|
124
|
+
- name: rbs
|
125
|
+
version: 3.4.2
|
126
|
+
source:
|
127
|
+
type: rubygems
|
128
|
+
- name: rdoc
|
129
|
+
version: '0'
|
130
|
+
source:
|
131
|
+
type: stdlib
|
132
|
+
- name: securerandom
|
133
|
+
version: '0'
|
134
|
+
source:
|
135
|
+
type: stdlib
|
136
|
+
- name: singleton
|
137
|
+
version: '0'
|
138
|
+
source:
|
139
|
+
type: stdlib
|
140
|
+
- name: steep
|
141
|
+
version: 1.6.0
|
142
|
+
source:
|
143
|
+
type: rubygems
|
144
|
+
- name: strscan
|
145
|
+
version: '0'
|
146
|
+
source:
|
147
|
+
type: stdlib
|
148
|
+
- name: tempfile
|
149
|
+
version: '0'
|
150
|
+
source:
|
151
|
+
type: stdlib
|
152
|
+
- name: time
|
153
|
+
version: '0'
|
154
|
+
source:
|
155
|
+
type: stdlib
|
156
|
+
- name: timeout
|
157
|
+
version: '0'
|
158
|
+
source:
|
159
|
+
type: stdlib
|
160
|
+
- name: tsort
|
161
|
+
version: '0'
|
162
|
+
source:
|
163
|
+
type: stdlib
|
164
|
+
- name: uri
|
165
|
+
version: '0'
|
166
|
+
source:
|
167
|
+
type: stdlib
|
168
|
+
gemfile_lock_path: Gemfile.lock
|
data/rbs_collection.yaml
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# Download sources
|
2
|
+
sources:
|
3
|
+
- type: git
|
4
|
+
name: ruby/gem_rbs_collection
|
5
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
6
|
+
revision: main
|
7
|
+
repo_dir: gems
|
8
|
+
|
9
|
+
# You can specify local directories as sources also.
|
10
|
+
# - type: local
|
11
|
+
# path: path/to/your/local/repository
|
12
|
+
|
13
|
+
# A directory to install the downloaded RBSs
|
14
|
+
path: .gem_rbs_collection
|
15
|
+
|
16
|
+
gems:
|
17
|
+
# If you want to avoid installing rbs files for gems, you can specify them here.
|
18
|
+
- name: parser
|
19
|
+
ignore: true
|
20
|
+
- name: concurrent-ruby
|
21
|
+
ignore: true
|
22
|
+
- name: rubocop
|
23
|
+
ignore: true
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Hanami
|
2
|
+
module Lambda
|
3
|
+
HANDLER_KEY_NAMESPACE: "functions"
|
4
|
+
|
5
|
+
# The application to configure for AWS Lambda.
|
6
|
+
#
|
7
|
+
# @since 0.1.0
|
8
|
+
module Application
|
9
|
+
include Hanami::_App
|
10
|
+
extend Hanami::_App
|
11
|
+
|
12
|
+
@lambda_dispatcher: untyped
|
13
|
+
|
14
|
+
# @since 0.2.0
|
15
|
+
# @api private
|
16
|
+
def self.extended: (Class base) -> untyped
|
17
|
+
|
18
|
+
# Dispatch event to the handler
|
19
|
+
#
|
20
|
+
# @api private
|
21
|
+
# @since 0.1.0
|
22
|
+
def handle_lambda: (event: untyped, context: untyped) -> untyped
|
23
|
+
|
24
|
+
# Get lambda dispatcher
|
25
|
+
#
|
26
|
+
# @return [Hanami::Lambda::Dispatcher] the dispatcher
|
27
|
+
#
|
28
|
+
# @since 0.1.0
|
29
|
+
def lambda_dispatcher: () -> untyped
|
30
|
+
|
31
|
+
# Load lambda dispatcher
|
32
|
+
#
|
33
|
+
# @return [Hanami::Lambda::Dispatcher] the dispatcher
|
34
|
+
#
|
35
|
+
# @since 0.2.0
|
36
|
+
# @api private
|
37
|
+
def load_lambda_dispatcher: () -> untyped
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module Hanami
|
2
|
+
module Lambda
|
3
|
+
# Dispatch Event to the Handler
|
4
|
+
#
|
5
|
+
# @api private
|
6
|
+
class Dispatcher
|
7
|
+
self.@definitions: untyped
|
8
|
+
|
9
|
+
@handlers: untyped
|
10
|
+
|
11
|
+
@resolver: untyped
|
12
|
+
|
13
|
+
@default: untyped
|
14
|
+
|
15
|
+
# @since 0.2.0
|
16
|
+
# @api private
|
17
|
+
DEFAULT_RESOLVER: untyped
|
18
|
+
|
19
|
+
attr_reader rack_app: untyped
|
20
|
+
|
21
|
+
attr_reader handlers: untyped
|
22
|
+
|
23
|
+
attr_reader default: untyped
|
24
|
+
|
25
|
+
attr_reader resolver: untyped
|
26
|
+
|
27
|
+
# @since 0.2.0
|
28
|
+
def initialize: (rack_app: untyped, ?resolver: untyped) -> void
|
29
|
+
|
30
|
+
# Call the handler
|
31
|
+
#
|
32
|
+
# @param event [Hash] the event
|
33
|
+
# @param context [Hash] the context
|
34
|
+
#
|
35
|
+
# @since 0.2.0
|
36
|
+
def call: (event: untyped, context: untyped) -> untyped
|
37
|
+
|
38
|
+
# Lookup the handler
|
39
|
+
#
|
40
|
+
# @param event [Hash] the event
|
41
|
+
# @param context [Hash] the context
|
42
|
+
#
|
43
|
+
# @return [Handler] the handler
|
44
|
+
def lookup: (event: untyped, context: untyped) -> untyped
|
45
|
+
|
46
|
+
# Register a handler
|
47
|
+
#
|
48
|
+
# @param name [String] the name of the handler
|
49
|
+
# @param args [Array] the arguments to pass to the handler
|
50
|
+
# @param kwargs [Hash] the keyword arguments to pass to the handler
|
51
|
+
# @param block [Proc] the block to pass to the handler
|
52
|
+
#
|
53
|
+
# @since 0.2.0
|
54
|
+
def register: (String name, *Array[untyped] args, ?to: String?) -> nil
|
55
|
+
|
56
|
+
# Definitions of handlers
|
57
|
+
#
|
58
|
+
# @api private
|
59
|
+
def self.definitions: () -> untyped
|
60
|
+
|
61
|
+
# Define function delegate action
|
62
|
+
#
|
63
|
+
# @param name [String] the name of the handler
|
64
|
+
# @param args [Array] the arguments to pass to the handler
|
65
|
+
# @param kwargs [Hash] the keyword arguments to pass to the handler
|
66
|
+
# @param block [Proc] the block to pass to the handler
|
67
|
+
def self.delegate: (untyped name, *untyped args, **untyped kwargs) { () -> untyped } -> untyped
|
68
|
+
|
69
|
+
# Build Dispatcher
|
70
|
+
#
|
71
|
+
# @api private
|
72
|
+
def self.build: (rack_app: untyped, resolver: untyped) -> untyped
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
File without changes
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Hanami
|
2
|
+
module Lambda
|
3
|
+
# Base event class
|
4
|
+
#
|
5
|
+
# @since 0.2.0
|
6
|
+
class Event
|
7
|
+
@raw: untyped
|
8
|
+
|
9
|
+
@event: untyped
|
10
|
+
|
11
|
+
attr_reader raw: untyped
|
12
|
+
|
13
|
+
# @param event [Hash] the raw event from AWS Lambda
|
14
|
+
# @return [Hanami::Lambda::Event]
|
15
|
+
#
|
16
|
+
# @since 0.2.0
|
17
|
+
def initialize: (untyped event) -> void
|
18
|
+
|
19
|
+
# Return the value of the given key
|
20
|
+
#
|
21
|
+
# @param key [Symbol] the key to fetch
|
22
|
+
#
|
23
|
+
# @return [Object,NilClass] the associated value if found
|
24
|
+
#
|
25
|
+
# @since 0.2.0
|
26
|
+
def []: (untyped key) -> untyped
|
27
|
+
|
28
|
+
# Return an value associated with the given event key
|
29
|
+
#
|
30
|
+
# @param keys [Array<Symbol, Integer>] the keys to fetch
|
31
|
+
#
|
32
|
+
# @return [Object,NilClass] the associated value if found
|
33
|
+
#
|
34
|
+
# @since 0.2.0
|
35
|
+
def get: (*untyped keys) -> untyped
|
36
|
+
|
37
|
+
alias dig get
|
38
|
+
|
39
|
+
# Return the hash of the event
|
40
|
+
#
|
41
|
+
# @return [Hash] the hash of the event
|
42
|
+
#
|
43
|
+
# @since 0.2.0
|
44
|
+
def to_h: () -> untyped
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Hanami
|
2
|
+
module Lambda
|
3
|
+
# The base class for handler
|
4
|
+
#
|
5
|
+
# @since 0.2.0
|
6
|
+
class Function
|
7
|
+
extend ClassMethods
|
8
|
+
# Override the Ruby's hook for modules
|
9
|
+
#
|
10
|
+
# @param base [Class] the target class
|
11
|
+
#
|
12
|
+
# @since 0.2.0
|
13
|
+
# @api private
|
14
|
+
def self.inherited: (untyped subclass) -> untyped
|
15
|
+
|
16
|
+
module ClassMethods
|
17
|
+
@event_type: untyped
|
18
|
+
|
19
|
+
# Return the class which define the event type
|
20
|
+
#
|
21
|
+
# @return [Class] the class which define the event type
|
22
|
+
#
|
23
|
+
# @since 0.2.0
|
24
|
+
# @api private
|
25
|
+
def event_type: () -> untyped
|
26
|
+
|
27
|
+
# Define the event type
|
28
|
+
#
|
29
|
+
# @param klass [Class] the class which define the event type
|
30
|
+
#
|
31
|
+
# @since 0.2.0
|
32
|
+
# @api private
|
33
|
+
def type: (untyped klass) -> untyped
|
34
|
+
end
|
35
|
+
|
36
|
+
# @since 0.2.0
|
37
|
+
def call: (event: untyped, context: untyped) -> untyped
|
38
|
+
|
39
|
+
def handle: (untyped _event, untyped _context) -> nil
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Hanami
|
2
|
+
module Lambda
|
3
|
+
# Rack interface for AWS Lambda.
|
4
|
+
#
|
5
|
+
# @api private
|
6
|
+
# @since 0.1.0
|
7
|
+
class Rack
|
8
|
+
@app: untyped
|
9
|
+
|
10
|
+
attr_reader app: untyped
|
11
|
+
|
12
|
+
# Initialize the Rack interface
|
13
|
+
#
|
14
|
+
# @since 0.1.0
|
15
|
+
def initialize: (untyped app) -> void
|
16
|
+
|
17
|
+
# Handle the request
|
18
|
+
#
|
19
|
+
# @return [Hash] the response
|
20
|
+
#
|
21
|
+
# @since 0.1.0
|
22
|
+
def call: (event: untyped, context: untyped) -> { statusCode: untyped, headers: untyped, body: untyped }
|
23
|
+
|
24
|
+
# Build the Rack environment
|
25
|
+
#
|
26
|
+
# @return [Hash] the Rack environment
|
27
|
+
#
|
28
|
+
# @since 0.1.0
|
29
|
+
def build_env: (untyped event, untyped context) -> ::Hash[untyped, untyped]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/sig/hanami/lambda.rbs
CHANGED
@@ -1,6 +1,52 @@
|
|
1
|
+
# @see Hanami::Lambda
|
2
|
+
# @since 0.1.0
|
1
3
|
module Hanami
|
4
|
+
# Make Hanami can be run on AWS Lambda.
|
5
|
+
#
|
6
|
+
# @since 0.1.0
|
7
|
+
# @api private
|
2
8
|
module Lambda
|
3
9
|
VERSION: String
|
4
|
-
|
10
|
+
|
11
|
+
self.@_mutex: Mutex
|
12
|
+
|
13
|
+
self.@gem_loader: Zeitwerk::Loader
|
14
|
+
|
15
|
+
# @since 0.1.0
|
16
|
+
LAMBDA_EVENT: "lambda.event"
|
17
|
+
|
18
|
+
# @since 0.1.0
|
19
|
+
LAMBDA_CONTEXT: "lambda.context"
|
20
|
+
|
21
|
+
# @since 0.2.0
|
22
|
+
LAMBDA_CONFIG_PATH: String
|
23
|
+
|
24
|
+
# @since 0.2.0
|
25
|
+
LAMBDA_CLASS_NAME: "Lambda"
|
26
|
+
|
27
|
+
# Return the application
|
28
|
+
#
|
29
|
+
# @api public
|
30
|
+
# @since 0.1.0
|
31
|
+
#
|
32
|
+
# @return [Hanami::Lambda::Application] the application
|
33
|
+
def self.app: () -> untyped
|
34
|
+
|
35
|
+
# Run the application
|
36
|
+
#
|
37
|
+
# @api public
|
38
|
+
def self.call: (event: Hash[String, String], context: untyped) -> untyped
|
39
|
+
|
40
|
+
# Inflector to convert event key
|
41
|
+
#
|
42
|
+
# @return [Dry::Inflector]
|
43
|
+
#
|
44
|
+
# @since 0.2.0
|
45
|
+
# @api private
|
46
|
+
def self.inflector: () -> Dry::Inflector
|
47
|
+
|
48
|
+
# @since 0.1.0
|
49
|
+
# @api private
|
50
|
+
def self.gem_loader: () -> Zeitwerk::Loader
|
5
51
|
end
|
6
52
|
end
|
data/sig/shims/dry.rbs
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
module Dry
|
2
|
+
interface _Type
|
3
|
+
end
|
4
|
+
|
5
|
+
def self.Types: (?default: Symbol) -> Module
|
6
|
+
|
7
|
+
class Struct
|
8
|
+
def self.transform_keys: () ?{ (String) -> (String | Symbol) } -> untyped
|
9
|
+
def self.attribute: (Symbol, _Type) -> untyped
|
10
|
+
end
|
11
|
+
|
12
|
+
class Inflector
|
13
|
+
def underscore: (String) -> String
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Hanami
|
2
|
+
def self.app: () -> App
|
3
|
+
|
4
|
+
class App
|
5
|
+
extend _App
|
6
|
+
|
7
|
+
def resolve: (String) -> untyped
|
8
|
+
def rack_app: () -> _Rack
|
9
|
+
end
|
10
|
+
|
11
|
+
interface _App
|
12
|
+
def boot: () -> void
|
13
|
+
def root: () -> (Pathname & _ToStr)
|
14
|
+
def app: () -> App
|
15
|
+
def namespace: () -> Module
|
16
|
+
def prepare_load_path: () -> void
|
17
|
+
end
|
18
|
+
|
19
|
+
module Utils
|
20
|
+
class Hash
|
21
|
+
def self.deep_symbolize: (::Hash[String, String]) -> ::Hash[Symbol, String]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/sig/shims/rack.rbs
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
module Zeitwerk
|
2
|
+
class GemInflector
|
3
|
+
def initialize: (String) -> untyped
|
4
|
+
def inflect: (Hash[String, String]) -> untyped
|
5
|
+
end
|
6
|
+
|
7
|
+
class Loader
|
8
|
+
attr_reader inflector: GemInflector
|
9
|
+
|
10
|
+
attr_writer inflector: GemInflector
|
11
|
+
attr_writer tag: String
|
12
|
+
|
13
|
+
def ignore: (*String) -> untyped
|
14
|
+
def push_dir: (String) -> untyped
|
15
|
+
def setup: () -> untyped
|
16
|
+
end
|
17
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hanami-lambda
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aotokitsuruya
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: zeitwerk
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '1.59'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: steep
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 1.6.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.6.0
|
97
111
|
description: Hanami Lambda is a gem that provides a way to run hanami application
|
98
112
|
on AWS Lambda.
|
99
113
|
email:
|
@@ -107,8 +121,8 @@ files:
|
|
107
121
|
- LICENSE.txt
|
108
122
|
- README.md
|
109
123
|
- Rakefile
|
124
|
+
- Steepfile
|
110
125
|
- lib/hanami-lambda.rb
|
111
|
-
- lib/hanami/errors.rb
|
112
126
|
- lib/hanami/lambda.rb
|
113
127
|
- lib/hanami/lambda/application.rb
|
114
128
|
- lib/hanami/lambda/dispatcher.rb
|
@@ -119,7 +133,22 @@ files:
|
|
119
133
|
- lib/hanami/lambda/rack.rb
|
120
134
|
- lib/hanami/lambda/types.rb
|
121
135
|
- lib/hanami/lambda/version.rb
|
136
|
+
- rbs_collection.lock.yaml
|
137
|
+
- rbs_collection.yaml
|
122
138
|
- sig/hanami/lambda.rbs
|
139
|
+
- sig/hanami/lambda/application.rbs
|
140
|
+
- sig/hanami/lambda/dispatcher.rbs
|
141
|
+
- sig/hanami/lambda/errors.rbs
|
142
|
+
- sig/hanami/lambda/event.rbs
|
143
|
+
- sig/hanami/lambda/events/base.rbs
|
144
|
+
- sig/hanami/lambda/events/event_bridge.rbs
|
145
|
+
- sig/hanami/lambda/function.rbs
|
146
|
+
- sig/hanami/lambda/rack.rbs
|
147
|
+
- sig/hanami/lambda/types.rbs
|
148
|
+
- sig/shims/dry.rbs
|
149
|
+
- sig/shims/hanami.rbs
|
150
|
+
- sig/shims/rack.rbs
|
151
|
+
- sig/shims/zeitwerk.rbs
|
123
152
|
homepage: https://github.com/elct9620/hanami-lambda
|
124
153
|
licenses:
|
125
154
|
- MIT
|
data/lib/hanami/errors.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Hanami
|
4
|
-
module Lambda
|
5
|
-
# Base error for Hanami::Lambda
|
6
|
-
#
|
7
|
-
# @api public
|
8
|
-
# @since 0.2.0
|
9
|
-
Error = Class.new(StandardError)
|
10
|
-
|
11
|
-
# Raised when {Hanami::Lambda::Application} fails to load.
|
12
|
-
#
|
13
|
-
# @api public
|
14
|
-
# @since 0.2.0
|
15
|
-
AppLoadError = Class.new(Error)
|
16
|
-
end
|
17
|
-
end
|