types_from_serializers 2.2.0 → 2.4.0
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 +19 -0
- data/lib/types_from_serializers/generator.rb +13 -5
- data/lib/types_from_serializers/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be10a6dcb68468930d839963a8ce27bacde784ff887f0171eb924289d63ec163
|
4
|
+
data.tar.gz: 03a221ba1c0a452cdbf8214d14d3ebd8dccc37a5a3c7860e5fa46c919bfb2905
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b05949d6f5355e8e7dad8e22a639dc3e92bcc47e47d379a2695e5530b86a1ed2db66ecd687b96964e06415a58c283475dd6aa4cf77eef4c39c9c1b64bf68782
|
7
|
+
data.tar.gz: f0132d60528bdca4dc175700aeea04cd31f9e06b22247d3fe9ce98e9eb2cbc0c9d575d1ce2effc8f305cd911179ef70434a8e5c71c90b63de2ddff99d5f7084e
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,22 @@
|
|
1
|
+
# [2.4.0](https://github.com/ElMassimo/types_from_serializers/compare/types_from_serializers@2.3.0...types_from_serializers@2.4.0) (2025-04-08)
|
2
|
+
|
3
|
+
|
4
|
+
### Features
|
5
|
+
|
6
|
+
* add support for json and jsonb fields ([#25](https://github.com/ElMassimo/types_from_serializers/issues/25)) ([34e747f](https://github.com/ElMassimo/types_from_serializers/commit/34e747f11ebdd032484d10679240701eb2548ed3))
|
7
|
+
* convert uuid fields to string type ([#24](https://github.com/ElMassimo/types_from_serializers/issues/24)) ([35c87a9](https://github.com/ElMassimo/types_from_serializers/commit/35c87a96365d32d40adce5ba9fddd3d380f29169))
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
# [2.3.0](https://github.com/ElMassimo/types_from_serializers/compare/types_from_serializers@2.2.0...types_from_serializers@2.3.0) (2024-08-23)
|
12
|
+
|
13
|
+
|
14
|
+
### Features
|
15
|
+
|
16
|
+
* generate types for inline serializers, exclude them from the index ([1c3657c](https://github.com/ElMassimo/types_from_serializers/commit/1c3657c61a1bc891f3219f6eaf8557cd3cd6344a)), closes [#19](https://github.com/ElMassimo/types_from_serializers/issues/19)
|
17
|
+
|
18
|
+
|
19
|
+
|
1
20
|
# [2.2.0](https://github.com/ElMassimo/types_from_serializers/compare/types_from_serializers@2.1.0...types_from_serializers@2.2.0) (2024-08-23)
|
2
21
|
|
3
22
|
|
@@ -38,6 +38,11 @@ module TypesFromSerializers
|
|
38
38
|
TypesFromSerializers.config.name_from_serializer.call(name).gsub("::", "/")
|
39
39
|
end
|
40
40
|
|
41
|
+
# Internal: If the serializer was defined inside a file.
|
42
|
+
def inline_serializer?
|
43
|
+
name.include?("Serializer::")
|
44
|
+
end
|
45
|
+
|
41
46
|
# Internal: The TypeScript properties of the serialzeir interface.
|
42
47
|
def ts_properties
|
43
48
|
@ts_properties ||= begin
|
@@ -312,9 +317,7 @@ module TypesFromSerializers
|
|
312
317
|
# Internal: Checks if it should avoid generating an interface.
|
313
318
|
def skip_serializer?(serializer)
|
314
319
|
serializer.name.in?(config.base_serializers) ||
|
315
|
-
config.skip_serializer_if.call(serializer)
|
316
|
-
# NOTE: Ignore inline serializers.
|
317
|
-
serializer.ts_name.include?("Serializer")
|
320
|
+
config.skip_serializer_if.call(serializer)
|
318
321
|
end
|
319
322
|
|
320
323
|
# Internal: Returns an object compatible with FileUpdateChecker.
|
@@ -362,7 +365,9 @@ module TypesFromSerializers
|
|
362
365
|
output_dir: root.join(defined?(ViteRuby) ? ViteRuby.config.source_code_dir : "app/frontend").join("types/serializers"),
|
363
366
|
|
364
367
|
# Remove the serializer suffix from the class name.
|
365
|
-
name_from_serializer: ->(name) {
|
368
|
+
name_from_serializer: ->(name) {
|
369
|
+
name.split("::").map { |n| n.delete_suffix("Serializer") }.join("::")
|
370
|
+
},
|
366
371
|
|
367
372
|
# Types that don't need to be imported in TypeScript.
|
368
373
|
global_types: [
|
@@ -387,6 +392,9 @@ module TypesFromSerializers
|
|
387
392
|
string: :string,
|
388
393
|
text: :string,
|
389
394
|
citext: :string,
|
395
|
+
uuid: :string,
|
396
|
+
json: "Record<string, any>",
|
397
|
+
jsonb: "Record<string, any>",
|
390
398
|
}.tap do |types|
|
391
399
|
types.default = :unknown
|
392
400
|
end,
|
@@ -420,7 +428,7 @@ module TypesFromSerializers
|
|
420
428
|
<<~TS
|
421
429
|
//
|
422
430
|
// DO NOT MODIFY: This file was automatically generated by TypesFromSerializers.
|
423
|
-
#{serializers.map { |s|
|
431
|
+
#{serializers.reject(&:inline_serializer?).map { |s|
|
424
432
|
"export type { default as #{s.ts_name} } from './#{s.ts_filename}'"
|
425
433
|
}.join("\n")}
|
426
434
|
TS
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: types_from_serializers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Máximo Mussini
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -277,7 +277,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
277
277
|
- !ruby/object:Gem::Version
|
278
278
|
version: '0'
|
279
279
|
requirements: []
|
280
|
-
rubygems_version: 3.
|
280
|
+
rubygems_version: 3.5.16
|
281
281
|
signing_key:
|
282
282
|
specification_version: 4
|
283
283
|
summary: Generate TypeScript interfaces from your JSON serializers.
|