Skip to content

Commit

Permalink
Ignore nil values on fingerprint calculation
Browse files Browse the repository at this point in the history
To prevent digest changes due to internal typelizer changes
  • Loading branch information
Envek authored and skryukov committed Feb 20, 2025
1 parent d270cd5 commit 2df908e
Show file tree
Hide file tree
Showing 26 changed files with 33 additions and 24 deletions.
4 changes: 4 additions & 0 deletions lib/typelizer/interface.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ def inspect
"<#{self.class.name} #{name} properties=#{properties.inspect}>"
end

def fingerprint
"<#{self.class.name} #{name} properties=[#{properties.map(&:fingerprint).join(", ")}]>"
end

private

def self_type_name
Expand Down
5 changes: 5 additions & 0 deletions lib/typelizer/property.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@ def to_s
"#{name}#{"?" if optional}: #{type_str}"
end

def fingerprint
props = to_h.merge(type: type_name).reject { |_, v| v.nil? }.map { |k, v| "#{k}=#{v.inspect}" }.join(" ")
"<#{self.class.name} #{props}>"
end

private

def type_name
Expand Down
2 changes: 1 addition & 1 deletion lib/typelizer/writer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def write_index(interfaces)
end

def write_interface(interface)
write_file("#{interface.filename}.ts", interface.inspect) do
write_file("#{interface.filename}.ts", interface.fingerprint) do
render_template("interface.ts.erb", interface: interface)
end
end
Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/AlbaInline.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest 4387ed2156b17d770db0059cae5d7a38
// Typelizer digest 896dd685718ad8566caa23d432af5a77
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.

Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/AlbaMeta.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest 526732453f6aca249ef72f2dd8bc1cde
// Typelizer digest 43ee134e2e6f80e20688ca9bd209bfd0
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.

Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/AlbaMetaNil.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest 25d43603864687a55f5a2ece2a6aa228
// Typelizer digest a7b61fcea19d1c5f20db87a38b9e3f05
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.

Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/AlbaPoro.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest 87487e81d77b218d3be41a33279d8e4c
// Typelizer digest 3c3acd1390157d9666f0f2be46bfcb1c
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.

Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/AlbaPost.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest c272bbef7d366eb5882788757480509d
// Typelizer digest 33bb871b21b62c96495746ba66a4f06b
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.
import type {AlbaUser} from '@/types'
Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/AlbaUser.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest f32f5122a1999bca2f1be94275248909
// Typelizer digest 99aa66b35b474b7af72aac978dde891e
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.
import type {AlbaPost} from '@/types'
Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/AlbaUserAuthor.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest e2058e5f2991b8733973f5969961e8d8
// Typelizer digest be423353230851a0934123cc561c43e9
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.
import type {AlbaPost} from '@/types'
Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/AlbaUserEmptyNested.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest f40f209302edb8ff018b878f8f618eb4
// Typelizer digest 6ea6be91fb1c96b6e98010baa319f80f
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.
import type {AlbaPost} from '@/types'
Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/AlbaUserSerializerFoo.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest 8ff3ad01b621ef30a6f38a8ebc1c2436
// Typelizer digest f0c977ce367b6dfd2a97aafaeeba1ca1
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.
import type {AlbaUser, AlbaPost} from '@/types'
Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/AlbaVerbatimModuleSyntax.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest 2a963082b278d4edf62085a22140308f
// Typelizer digest fabd90ef100a587f4e093d7c14bba93a
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.

Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/AmsPost.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest f716d8f63d4d1ba1e27cb6ece3df7d29
// Typelizer digest fb87dc0ee5f2b497fbeb6e0e01cba76a
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.
import type {AmsUser} from '@/types'
Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/AmsUser.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest 84108fe00759a43c9279d9440b177111
// Typelizer digest 07ce5260c243433f04930a5cff1c8651
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.
import type {AmsPost} from '@/types'
Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/AmsUserAuthor.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest a1471b4ffbb57ec75c92203fb681462f
// Typelizer digest 76917cd789c2c5deb2d09b685f633e1e
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.
import type {AmsPost} from '@/types'
Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/AmsUserEmptyNested.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest dc082cf20008cc909360bca47160d30b
// Typelizer digest 7135c395958101112cb5fe8808117388
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.
import type {AmsPost} from '@/types'
Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/AmsUserSerializerFoo.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest 9fbbbdad00b20040b0a8080f124102e0
// Typelizer digest 8fd7f92a7083d152f95cf2decb3c8105
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.
import type {AmsUser, AmsPost} from '@/types'
Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/AmsVerbatimModuleSyntax.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest ed83c27665231e5da7eddd7c9f18a293
// Typelizer digest 42601a39caafcfbfc24ebecb8ec213ed
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.

Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/OjSerializersFlatUser.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest 1d3c1a45ff88689555089d3ed14de4b7
// Typelizer digest 64c1825bed66bf5b29b2233238a9b671
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.
import type {OjSerializersUser, OjSerializersPost} from '@/types'
Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/OjSerializersPost.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest 491e0aed7fd3083b542c51fff940bdba
// Typelizer digest dc0c3d45572a7b2c64618acb8ae5b49a
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.
import type {OjSerializersUser} from '@/types'
Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/OjSerializersUser.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest eff6dfac48c94f13ed9af03569b9f6d3
// Typelizer digest 7e2d02c075ba1bd3c2e77052fd1a9d55
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.
import type {OjSerializersPost} from '@/types'
Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/OjSerializersUserAuthor.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest e37ce250dd4715f9565393c0f1049c2a
// Typelizer digest c27c2720e547a652919267b750a89da0
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.
import type {OjSerializersPost} from '@/types'
Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/OjSerializersUserEmptyNested.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest c34e6deb0554a1777fb0c41d6dc4a5d2
// Typelizer digest b7183d85038347b3d9c7a876218d87fe
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.
import type {OjSerializersPost} from '@/types'
Expand Down
2 changes: 1 addition & 1 deletion spec/__snapshots__/OjSerializersUserSerializerFoo.ts.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest 0b80edf3c51be3e5b1e41e1034f45d5f
// Typelizer digest 50dce7dd3a8bd9678cdb247ef8dae829
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.
import type {OjSerializersUser, OjSerializersPost} from '@/types'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Typelizer digest 7c167935b1871afe3b9e1ab2f0344e15
// Typelizer digest c0f49e6c7ece40d4d23624555e33da67
//
// DO NOT MODIFY: This file was automatically generated by Typelizer.

Expand Down

0 comments on commit 2df908e

Please sign in to comment.