Skip to content

Commit 411c744

Browse files
committed
Fix manual self-referencing type imports
1 parent 9736b0c commit 411c744

File tree

11 files changed

+114
-2
lines changed

11 files changed

+114
-2
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ and this project adheres to [Semantic Versioning].
3232
}
3333
```
3434

35+
### Fixed
36+
37+
- Fix self-import issue when using custom `typelize` types for self-referential associations in namespaced serializers. ([@skryukov])
38+
3539
## [0.5.4] - 2025-12-08
3640

3741
### Added

lib/typelizer/interface.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ def imports
119119
prop.with_traits.map { |t| "#{prop.type.name}#{t.to_s.camelize}Trait" }
120120
end
121121

122-
(custom_type_imports + serializer_types + trait_imports + Array(parent_interface&.name)).uniq - Array(self_type_name)
122+
(custom_type_imports + serializer_types + trait_imports + Array(parent_interface&.name)).uniq - [self_type_name, name]
123123
end
124124
end
125125

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// Typelizer digest bdd7629a3f8e4b1b303dba168e371216
2+
//
3+
// DO NOT MODIFY: This file was automatically generated by Typelizer.
4+
5+
type AlbaComment = {
6+
/** Unique identifier */
7+
id: string;
8+
body: string;
9+
parent?: AlbaComment;
10+
replies: Array<AlbaComment>;
11+
}
12+
13+
export default AlbaComment;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// Typelizer digest 4fbbc386947dc7e3c7169e4c303b4785
2+
//
3+
// DO NOT MODIFY: This file was automatically generated by Typelizer.
4+
5+
type AmsComment = {
6+
/** Unique identifier */
7+
id: string;
8+
body: string;
9+
parent?: AmsComment;
10+
replies: Array<AmsComment>;
11+
}
12+
13+
export default AmsComment;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// Typelizer digest 843792f5793c70e0768b039a28cf8727
2+
//
3+
// DO NOT MODIFY: This file was automatically generated by Typelizer.
4+
5+
type OjSerializersComment = {
6+
/** Unique identifier */
7+
id: string;
8+
body: string;
9+
parent?: OjSerializersComment;
10+
replies: Array<OjSerializersComment>;
11+
}
12+
13+
export default OjSerializersComment;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// Typelizer digest a2a29045940f667315f8531c089157fb
2+
//
3+
// DO NOT MODIFY: This file was automatically generated by Typelizer.
4+
5+
type PankoComment = {
6+
/** Unique identifier */
7+
id: string;
8+
body: string;
9+
replies: Array<PankoComment>;
10+
parent?: PankoComment;
11+
}
12+
13+
export default PankoComment;

spec/__snapshots__/index.ts.snap

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
// Typelizer digest da3ef4d9b32dcff7331e40b1c3d44222
1+
// Typelizer digest 3a75a2405ef35e074a5d4cebe43b320d
22
//
33
// DO NOT MODIFY: This file was automatically generated by Typelizer.
44
export type { default as AlbaArPost } from './AlbaArPost'
55
export type { default as AlbaArUser } from './AlbaArUser'
66
export type { default as AlbaAttributesApi } from './AlbaAttributesApi'
7+
export type { default as AlbaComment } from './AlbaComment'
78
export type { default as AlbaInheritedCustomTypeUser } from './AlbaInheritedCustomTypeUser'
89
export type { default as AlbaInheritedDeepUser } from './AlbaInheritedDeepUser'
910
export type { default as AlbaInheritedEmptyUser } from './AlbaInheritedEmptyUser'
@@ -30,6 +31,7 @@ export type { default as AlbaUserSerializerFoo } from './AlbaUserSerializerFoo'
3031
export type { AlbaVerbatimModuleSyntax } from './AlbaVerbatimModuleSyntax'
3132
export type { default as AmsArPost } from './AmsArPost'
3233
export type { default as AmsArUser } from './AmsArUser'
34+
export type { default as AmsComment } from './AmsComment'
3335
export type { default as AmsInheritedCustomTypeUser } from './AmsInheritedCustomTypeUser'
3436
export type { default as AmsInheritedDeepUser } from './AmsInheritedDeepUser'
3537
export type { default as AmsInheritedEmptyUser } from './AmsInheritedEmptyUser'
@@ -47,6 +49,7 @@ export type { default as AmsUserSerializerFoo } from './AmsUserSerializerFoo'
4749
export type { AmsVerbatimModuleSyntax } from './AmsVerbatimModuleSyntax'
4850
export type { default as OjSerializersArPost } from './OjSerializersArPost'
4951
export type { default as OjSerializersArUser } from './OjSerializersArUser'
52+
export type { default as OjSerializersComment } from './OjSerializersComment'
5053
export type { default as OjSerializersFlatUser } from './OjSerializersFlatUser'
5154
export type { default as OjSerializersInheritedCustomTypeUser } from './OjSerializersInheritedCustomTypeUser'
5255
export type { default as OjSerializersInheritedDeepUser } from './OjSerializersInheritedDeepUser'
@@ -65,6 +68,7 @@ export type { default as OjSerializersUserSerializerFoo } from './OjSerializersU
6568
export type { OjSerializersVerbatimModuleSyntax } from './OjSerializersVerbatimModuleSyntax'
6669
export type { default as PankoArPost } from './PankoArPost'
6770
export type { default as PankoArUser } from './PankoArUser'
71+
export type { default as PankoComment } from './PankoComment'
6872
export type { default as PankoInheritedCustomTypeUser } from './PankoInheritedCustomTypeUser'
6973
export type { default as PankoInheritedDeepUser } from './PankoInheritedDeepUser'
7074
export type { default as PankoInheritedEmptyUser } from './PankoInheritedEmptyUser'
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# frozen_string_literal: true
2+
3+
module Alba
4+
class CommentSerializer < BaseSerializer
5+
attributes :id, :body
6+
7+
has_one :parent, resource: CommentSerializer
8+
has_many :replies, resource: CommentSerializer
9+
10+
# Test manual self-referencing types
11+
typelize parent: "AlbaComment?", replies: "AlbaComment[]", body: :string
12+
end
13+
end
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# frozen_string_literal: true
2+
3+
module Ams
4+
class CommentSerializer < BaseSerializer
5+
attributes :id, :body
6+
7+
belongs_to :parent, serializer: CommentSerializer
8+
has_many :replies, serializer: CommentSerializer
9+
10+
# Test manual self-referencing types
11+
typelize parent: "AmsComment?", replies: "AmsComment[]", body: :string
12+
end
13+
end
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# frozen_string_literal: true
2+
3+
module OjSerializers
4+
class CommentSerializer < BaseSerializer
5+
attributes :id, :body
6+
7+
has_one :parent, serializer: CommentSerializer
8+
has_many :replies, serializer: CommentSerializer
9+
10+
# Test manual self-referencing types
11+
typelize parent: "OjSerializersComment?", replies: "OjSerializersComment[]", body: :string
12+
end
13+
end

0 commit comments

Comments
 (0)