Skip to content

Dart-written, Flutter-powered, and ISO-backed ecosystem for the world's data in forms of compile-time constant sealed classes 🌍

License

Notifications You must be signed in to change notification settings

tsinis/sealed_world

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CodeFactor Codecov CodeRabbit Dart Code Metrics Last commit GitHub stars License MIT

Sealed World

A pure Dart, fully tested and ISO-driven ecosystem for the world's data in the form of compile-time, tree-shakable constant sealed classes.

Tip

Flutter packages follow a world prefix convention, whereas Dart packages utilize the sealed prefix.

Package SDK Description Pub
world_countries Flutter Country/phone/currency/language pickers and APIs for typed localizations. pub.dev
world_flags Flutter Country flags built entirely with Flutter's CustomPainters. pub.dev
sealed_countries Dart Countries in the form of compile-time constant sealed classes. pub.dev
sealed_currencies Dart Currencies in the form of compile-time constant sealed classes. pub.dev
sealed_languages Dart Languages in the form of compile-time constant sealed classes. pub.dev

This ecosystem exhibits a strict hierarchical dependency structure. At the foundation are languages and scripts, essential for localization and translation across all packages. Building upon this, currencies are required for subsequent packages dealing with countries. The countries package, is necessary for rendering country flags, which is then needed by the world_countries package for displaying localized (given that a locale typically consists of three components: language, script, and region/country) country, language and currency names, and also flags (for example within country/phone code pickers).

graph TD
sealed_languages["<span title='Sealed Languages Package'>sealed_languages</span>"]
sealed_currencies["<span title='Sealed Currencies Package'>sealed_currencies</span>"]
sealed_countries["<span title='Sealed Countries Package'>sealed_countries</span>"]
world_flags["<span title='World Flags Package'>world_flags</span>"]
world_countries["<span title='World Countries Package'>world_countries</span>"]

sealed_languages --> sealed_currencies --> sealed_countries --> world_flags --> world_countries

click sealed_languages "https://github.com/tsinis/sealed_world/tree/main/packages/sealed_languages"
click sealed_currencies "https://github.com/tsinis/sealed_world/tree/main/packages/sealed_currencies"
click sealed_countries "https://github.com/tsinis/sealed_world/tree/main/packages/sealed_countries"
click world_flags "https://github.com/tsinis/sealed_world/tree/main/packages/world_flags"
click world_countries "https://github.com/tsinis/sealed_world/tree/main/packages/world_countries"

style sealed_languages fill:#aec7e8,stroke:#aec7e8,stroke-width:2px,fill-opacity:0.2,rx:10,ry:10
style sealed_currencies fill:#aec7e8,stroke:#aec7e8,stroke-width:2px,fill-opacity:0.2,rx:10,ry:10
style sealed_countries fill:#aec7e8,stroke:#aec7e8,stroke-width:2px,fill-opacity:0.2,rx:10,ry:10
style world_flags fill:#aec7e8,stroke:#0050B9,stroke-width:2px,fill-opacity:0.5,rx:10,ry:10
style world_countries fill:#aec7e8,stroke:#0050B9,stroke-width:2px,fill-opacity:0.5,rx:10,ry:10
Loading