types_from_serializers 0.1.1 → 0.1.2

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 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