isomorfeus-data 2.2.3 → 2.2.6

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: 75a9c8b414039562455c5b7a869da4751653c82d0031b710d0a8417af7370a39
4
+ data.tar.gz: 2293d29e72b6c62b4de861ba38d6db77a98c1c5f8defd69d4004ee234316a3b1
5
5
  SHA512:
6
- metadata.gz: 15dd953c787af8e00838e5d03bbbbce74a3ef38e06904464f5f83e11c60456a3a68091e79cc8d36f90bd0f20de5bf147bc8efe4f50c296b690ca9709a94d9a34
7
- data.tar.gz: 4331648418677ea736fabe1319e60ffcedbc70fb0b22612b6c17aa24461bf69601f74a3b7b56e55c7a4c0a73571fa5c5a380e2b5f270882178a28acad1e53f36
6
+ metadata.gz: 775a51d6cd7886279e560a44c2eb0cdd6b2cf0f542ad1ee44f35874e5e47bffc26dc62cf5a44910a6cb34f224efab6fb050d38d818d4a36f6e5c2c66284f58bd
7
+ data.tar.gz: 741d236c0f5add80ec028845b6aa459a9305c208dfe54fec089e26d7ef0a624dff1303c86daa6e5be55fbf85d9cd5934ddd87ec6cb979ec17ccf035040663778
@@ -1,5 +1,5 @@
1
1
  module Isomorfeus
2
2
  module Data
3
- VERSION = '2.2.3'
3
+ VERSION = '2.2.6'
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?
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.6
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-25 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.6
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.6
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.6
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.6
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.50
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.50
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.6
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.6
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.6
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.6
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: rake
197
197
  requirement: !ruby/object:Gem::Requirement