isomorfeus-data 2.2.3 → 2.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2be6d699092fcfe828d576a95f320a465dd5580e6b87397b7463c7aae95cdc10
4
- data.tar.gz: e703dc37e202262e72e65dceba8758ef2fa7a4a34272134564cc844d32a8c297
3
+ metadata.gz: f38e6bfe020ed2d119bfa65c03081a66cbaa25a6c7de2e1cfc3bf81d6a664509
4
+ data.tar.gz: 2ee22f40a1eee27e38f6b24fea9bfff03b78415a0ff1a19385b82b38cd057159
5
5
  SHA512:
6
- metadata.gz: 15dd953c787af8e00838e5d03bbbbce74a3ef38e06904464f5f83e11c60456a3a68091e79cc8d36f90bd0f20de5bf147bc8efe4f50c296b690ca9709a94d9a34
7
- data.tar.gz: 4331648418677ea736fabe1319e60ffcedbc70fb0b22612b6c17aa24461bf69601f74a3b7b56e55c7a4c0a73571fa5c5a380e2b5f270882178a28acad1e53f36
6
+ metadata.gz: 573f1fe92e77a05e4c53fb02b39ae32e1ae9d4765190b7652a0f59da9d90c4d39b3d7ee5976ba1d029819aa7f8a9db0bc683319e883650fb824b9148d64f403a
7
+ data.tar.gz: 42a357b982e34c4feef9d5493b11d403f9a94fd4f76ecc136421ea50eef114dff2cdd342228a55e74753e742aa12ac64eac8dd5f038479fd0662ef6d09a6ae3c
@@ -1,5 +1,5 @@
1
1
  module Isomorfeus
2
2
  module Data
3
- VERSION = '2.2.3'
3
+ VERSION = '2.2.4'
4
4
  end
5
5
  end
@@ -6,28 +6,62 @@ module LucidQuery
6
6
 
7
7
  if RUBY_ENGINE == 'opal'
8
8
  base.instance_exec do
9
+ def _generate_auto_key(props_s)
10
+ component = nil
11
+ component_name = '_'
12
+ %x{
13
+ let c = Opal.Preact.active_component();
14
+ if (typeof c?.__ruby_instance !== 'undefined') { component = c.__ruby_instance; }
15
+ }
16
+ component_name = component.class.name if component
17
+ "#{component_name}:_:#{self.name}:#{props_s}"
18
+ end
19
+
20
+ def _should_return?(lqri, gak)
21
+ if on_ssr?
22
+ lqri.loaded? && gak
23
+ else on_browser?
24
+ if Isomorfeus::TopLevel.hydrated
25
+ if Isomorfeus::TopLevel.first_pass
26
+ lqri.loaded?
27
+ else
28
+ lqri.loaded? && !gak
29
+ end
30
+ else
31
+ lqri.loaded? && !gak
32
+ end
33
+ end
34
+ end
35
+
9
36
  def execute(key: nil, **props)
10
- props[:query_result_instance] = LucidQueryResult.new(key: key)
11
- promise_execute(props) unless props[:query_result_instance].loaded?
12
- props[:query_result_instance]
37
+ gak = key ? false : true
38
+ key = _generate_auto_key(`JSON.stringify(props)`) unless key
39
+
40
+ lqri = LucidQueryResult.new(key: key)
41
+ return lqri if _should_return?(lqri, gak)
42
+ props[:query_result_instance] = lqri
43
+ promise_execute(key: gak ? nil : key, **props)
44
+ lqri
13
45
  end
14
46
 
15
47
  def promise_execute(key: nil, **props)
16
- query_result_instance = props.delete(:query_result_instance)
17
- query_result_instance = LucidQueryResult.new(key: key) unless query_result_instance
48
+ gak = key ? false : true
49
+ key = _generate_auto_key(`JSON.stringify(props)`) unless key
18
50
 
19
- return Promise.new.resolve(query_result_instance) if query_result_instance.loaded?
51
+ lqri = props.delete(:query_result_instance)
52
+ lqri = LucidQueryResult.new(key: key) unless lqri
53
+ return Promise.new.resolve(lqri) if _should_return?(lqri, gak)
20
54
 
21
55
  props.each_key do |prop_name|
22
56
  Isomorfeus.raise_error(message: "#{self.to_s} No such query prop declared: '#{prop_name}'!") unless declared_props.key?(prop_name)
23
57
  end
24
58
  props = validated_props(props)
25
- props[:key] = query_result_instance.key
59
+ props[:key] = lqri.key
26
60
  Isomorfeus::Transport.promise_send_path( 'Isomorfeus::Data::Handler::Generic', self.name, :execute, props).then do |agent|
27
61
  agent.process do
28
- query_result_instance._load_from_store!
62
+ lqri._load_from_store!
29
63
  Isomorfeus.store.dispatch(type: 'DATA_LOAD', data: agent.full_response[:data])
30
- query_result_instance
64
+ lqri
31
65
  end
32
66
  end
33
67
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isomorfeus-data
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.3
4
+ version: 2.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Biedermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-22 00:00:00.000000000 Z
11
+ date: 2022-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -114,42 +114,42 @@ dependencies:
114
114
  requirements:
115
115
  - - '='
116
116
  - !ruby/object:Gem::Version
117
- version: 2.2.3
117
+ version: 2.2.4
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - '='
123
123
  - !ruby/object:Gem::Version
124
- version: 2.2.3
124
+ version: 2.2.4
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: isomorfeus-policy
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - '='
130
130
  - !ruby/object:Gem::Version
131
- version: 2.2.3
131
+ version: 2.2.4
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - '='
137
137
  - !ruby/object:Gem::Version
138
- version: 2.2.3
138
+ version: 2.2.4
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: isomorfeus-preact
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 10.6.47
145
+ version: 10.6.49
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 10.6.47
152
+ version: 10.6.49
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: isomorfeus-redux
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -170,28 +170,28 @@ dependencies:
170
170
  requirements:
171
171
  - - '='
172
172
  - !ruby/object:Gem::Version
173
- version: 2.2.3
173
+ version: 2.2.4
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - '='
179
179
  - !ruby/object:Gem::Version
180
- version: 2.2.3
180
+ version: 2.2.4
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: isomorfeus
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - '='
186
186
  - !ruby/object:Gem::Version
187
- version: 2.2.3
187
+ version: 2.2.4
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - '='
193
193
  - !ruby/object:Gem::Version
194
- version: 2.2.3
194
+ version: 2.2.4
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: rake
197
197
  requirement: !ruby/object:Gem::Requirement