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 +4 -4
- data/CHANGELOG.md +9 -0
- data/lib/types_from_serializers/generator.rb +24 -15
- data/lib/types_from_serializers/version.rb +1 -1
- metadata +57 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 942530179ec9019d6555a26ff060ac31188b0e28655fbd8c562133d43e4c91b5
|
4
|
+
data.tar.gz: 826b1d915ff118d970d1972f91ed76c6fdf85870c37460dad400ffca6f54f568
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
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.
|
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
|