types_from_serializers 0.1.1 → 0.1.2

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: 7bfb48892a066d214d5a96b814516a45fce439e17f39da5293b7d972f230ff37
4
- data.tar.gz: 741fee0da243cc9c2d07b592c2d78f05dd6b6d736aae1f4212f62ccdbc4cfa7e
3
+ metadata.gz: 942530179ec9019d6555a26ff060ac31188b0e28655fbd8c562133d43e4c91b5
4
+ data.tar.gz: 826b1d915ff118d970d1972f91ed76c6fdf85870c37460dad400ffca6f54f568
5
5
  SHA512:
6
- metadata.gz: 12b4306f9d43f471a1755cbdce1d0b956c42b4ffeb4835aa5301c3d069b69d7336c8bbebd8524fa9f5f71a56af955f9dc35675873e5a796cff98a3a9d1d49986
7
- data.tar.gz: 579a846b0a583d0eb4fa16b111a8aca26ce04abd26c2866a19fe9767763c66c2a6d7de20d27638b0a3955b4db22f60fec53f25e5ea4f84dfc34807cb90c0ebc3
6
+ metadata.gz: 1d2350e94ca4c20fff3518a137197d49c1172aa4432d1c8f8ffba419b9bcb98f37de72f2b3982fbe90a5e2c3601a9123a0fc2e6b0bf3a1339800d9cce1681aa8
7
+ data.tar.gz: 48eb7d7f7f90c7686a45515f585d536476b8ca8a6cd9d069c461ea6456859b87d7adefb4a0b94b5261f7b9d29b786f3f74c794f636ad000373bde0523a14c2b7
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## [0.1.2](https://github.com/ElMassimo/types_from_serializers/compare/types_from_serializers@0.1.1...types_from_serializers@0.1.2) (2022-07-12)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * avoid having the full file path in the cache key ([556f8f6](https://github.com/ElMassimo/types_from_serializers/commit/556f8f667608fa950a3ad0647540055b1b5f1dc8))
7
+
8
+
9
+
1
10
  ## [0.1.1](https://github.com/ElMassimo/types_from_serializers/compare/types_from_serializers@0.1.0...types_from_serializers@0.1.1) (2022-07-12)
2
11
 
3
12
 
@@ -222,26 +222,16 @@ module TypesFromSerializers
222
222
 
223
223
  write_if_changed(filename: filename, cache_key: metadata.inspect) {
224
224
  serializer.typescript_infer_types(metadata)
225
- <<~TS
226
- //
227
- // DO NOT MODIFY: This file was automatically generated by TypesFromSerializers.
228
- #{serializer.typescript_imports(metadata).join}
229
- export default interface #{serializer.typescript_interface_name} {
230
- #{serializer.typescript_fields(metadata).join("\n")}
231
- }
232
- TS
225
+ serializer_interface_content(serializer, metadata)
233
226
  }
234
227
  end
235
228
 
236
229
  # Internal: Allows to import all serializer types from a single file.
237
230
  def generate_index_file
238
- write_if_changed(filename: "index", cache_key: all_serializer_files.join) {
231
+ cache_key = all_serializer_files.map { |file| file.delete_prefix(root.to_s) }.join
232
+ write_if_changed(filename: "index", cache_key: cache_key) {
239
233
  load_serializers(all_serializer_files)
240
- <<~TS
241
- //
242
- // DO NOT MODIFY: This file was automatically generated by TypesFromSerializers.
243
- #{loaded_serializers.map { |s| "export type { default as #{s.typescript_interface_name} } from './#{s.typescript_interface_basename}'" }.join("\n")}
244
- TS
234
+ serializers_index_content(loaded_serializers)
245
235
  }
246
236
  end
247
237
 
@@ -266,7 +256,7 @@ module TypesFromSerializers
266
256
  end
267
257
 
268
258
  def all_serializer_files
269
- config.serializers_dirs.flat_map { |dir| Dir["#{dir}/**/*.rb"] }
259
+ config.serializers_dirs.flat_map { |dir| Dir["#{dir}/**/*.rb"] }.sort
270
260
  end
271
261
 
272
262
  def load_serializers(files)
@@ -336,6 +326,25 @@ module TypesFromSerializers
336
326
  }
337
327
  end
338
328
 
329
+ def serializers_index_content(serializers)
330
+ <<~TS
331
+ //
332
+ // DO NOT MODIFY: This file was automatically generated by TypesFromSerializers.
333
+ #{serializers.map { |s| "export type { default as #{s.typescript_interface_name} } from './#{s.typescript_interface_basename}'" }.join("\n")}
334
+ TS
335
+ end
336
+
337
+ def serializer_interface_content(serializer, metadata)
338
+ <<~TS
339
+ //
340
+ // DO NOT MODIFY: This file was automatically generated by TypesFromSerializers.
341
+ #{serializer.typescript_imports(metadata).join}
342
+ export default interface #{serializer.typescript_interface_name} {
343
+ #{serializer.typescript_fields(metadata).join("\n")}
344
+ }
345
+ TS
346
+ end
347
+
339
348
  # Internal: Returns true if the cache key has changed since the last codegen.
340
349
  def stale?(file, cache_key_comment)
341
350
  @force_generation || file.gets != cache_key_comment
@@ -2,5 +2,5 @@
2
2
 
3
3
  module TypesFromSerializers
4
4
  # Public: This library adheres to semantic versioning.
5
- VERSION = "0.1.1"
5
+ VERSION = "0.1.2"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: types_from_serializers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Máximo Mussini
@@ -114,6 +114,20 @@ dependencies:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
116
  version: '3.8'
117
+ - !ruby/object:Gem::Dependency
118
+ name: rspec-snapshot
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
117
131
  - !ruby/object:Gem::Dependency
118
132
  name: simplecov
119
133
  requirement: !ruby/object:Gem::Requirement
@@ -142,6 +156,48 @@ dependencies:
142
156
  - - "~>"
143
157
  - !ruby/object:Gem::Version
144
158
  version: '1.0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: activerecord
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ - !ruby/object:Gem::Dependency
174
+ name: js_from_routes
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ - !ruby/object:Gem::Dependency
188
+ name: sqlite3
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
145
201
  - !ruby/object:Gem::Dependency
146
202
  name: rubocop
147
203
  requirement: !ruby/object:Gem::Requirement