Skip to content

Commit d89d624

Browse files
committed
docs: recommend string identifiers for numeric codes
- add warning callouts about leading-zero numeric literal hazards - stop advertising bare numeric identifier examples in the README - keep runtime behavior unchanged
1 parent e6dc728 commit d89d624

1 file changed

Lines changed: 12 additions & 15 deletions

File tree

README.md

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,12 @@ The same method can convert from other identifiers.
108108
iso1A2Code('Q145'); // returns 'GB'
109109
```
110110

111+
> [!WARNING]
112+
> Numeric identifiers are accepted for convenience, but string identifiers are recommended.
113+
> In JavaScript, leading-zero numeric literals like `021`, `030`, or `053` can be misparsed in non-strict code before `country-coder` receives them.
114+
> Prefer string values like `'021'`, `'030'`, and `'053'` for ISO numeric-3 and UN M49 identifiers.
115+
> Numeric identifier support may be deprecated in a future release.
116+
111117
Read the [full API reference](#api-reference) to see everything `country-coder` can do.
112118

113119

@@ -161,6 +167,12 @@ This package is kept intentionally minimal. However, if you find a bug or have a
161167
* [RegionFeatureProperties](#RegionFeatureProperties)
162168
* [RegionFeatureCollection](#RegionFeatureCollection)
163169

170+
> [!WARNING]
171+
> Numeric identifiers are accepted for convenience, but string identifiers are recommended.
172+
> In JavaScript, leading-zero numeric literals like `021`, `030`, or `053` can be misparsed in non-strict code before `country-coder` receives them.
173+
> Prefer string values like `'021'`, `'030'`, and `'053'` for ISO numeric-3 and UN M49 identifiers.
174+
> Numeric identifier support may be deprecated in a future release.
175+
164176

165177
## Methods
166178

@@ -175,7 +187,6 @@ feature([0, 90]); // returns null
175187
feature('GB'); // returns {United Kingdom}
176188
feature('GBR'); // returns {United Kingdom}
177189
feature('826'); // returns {United Kingdom}
178-
feature(826); // returns {United Kingdom}
179190
feature('Q145'); // returns {United Kingdom}
180191
feature('🇬🇧'); // returns {United Kingdom}
181192
feature('.uk'); // returns {United Kingdom}
@@ -199,7 +210,6 @@ iso1A2Code([-4.5, 54.2], { level: 'territory' }); // returns 'IM'
199210
iso1A2Code([0, 90]); // returns null
200211
iso1A2Code('GBR'); // returns 'GB'
201212
iso1A2Code('826'); // returns 'GB'
202-
iso1A2Code(826); // returns 'GB'
203213
iso1A2Code('Q145'); // returns 'GB'
204214
iso1A2Code('🇬🇧'); // returns 'GB'
205215
iso1A2Code('.uk'); // returns 'GB'
@@ -237,7 +247,6 @@ iso1A3Code([-4.5, 54.2], { level: 'territory' }); // returns 'IMN'
237247
iso1A3Code([0, 90]); // returns null
238248
iso1A3Code('GB'); // returns 'GBR'
239249
iso1A3Code('826'); // returns 'GBR'
240-
iso1A3Code(826); // returns 'GBR'
241250
iso1A3Code('Q145'); // returns 'GBR'
242251
iso1A3Code('🇬🇧'); // returns 'GBR'
243252
iso1A3Code('.uk'); // returns 'GBR'
@@ -352,7 +361,6 @@ wikidataQID([0, 90]); // returns null
352361
wikidataQID('GB'); // returns 'Q145'
353362
wikidataQID('GBR'); // returns 'Q145'
354363
wikidataQID('826'); // returns 'Q145'
355-
wikidataQID(826); // returns 'Q145'
356364
wikidataQID('🇬🇧'); // returns 'Q145'
357365
wikidataQID('.uk'); // returns 'Q145'
358366
wikidataQID('UK'); // returns 'Q145'
@@ -390,7 +398,6 @@ emojiFlag([0, 90]); // returns null
390398
emojiFlag('GB'); // returns '🇬🇧'
391399
emojiFlag('GBR'); // returns '🇬🇧'
392400
emojiFlag('826'); // returns '🇬🇧'
393-
emojiFlag(826); // returns '🇬🇧'
394401
emojiFlag('Q145'); // returns '🇬🇧'
395402
emojiFlag('UK'); // returns '🇬🇧'
396403
emojiFlag('IM'); // returns '🇮🇲'
@@ -427,7 +434,6 @@ ccTLD([0, 90]); // returns null
427434
ccTLD('GB'); // returns '.uk'
428435
ccTLD('GBR'); // returns '.uk'
429436
ccTLD('826'); // returns '.uk'
430-
ccTLD(826); // returns '.uk'
431437
ccTLD('Q145'); // returns '.uk'
432438
ccTLD('UK'); // returns '.uk'
433439
ccTLD('IM'); // returns '.im'
@@ -465,7 +471,6 @@ featuresContaining([0, 90]); // returns []
465471
featuresContaining('GB'); // returns [{United Kingdom}, {United Nations}, {World}]
466472
featuresContaining('GBR'); // returns [{United Kingdom}, {United Nations}, {World}]
467473
featuresContaining('826'); // returns [{United Kingdom}, {United Nations}, {World}]
468-
featuresContaining(826); // returns [{United Kingdom}, {United Nations}, {World}]
469474
featuresContaining('Q145'); // returns [{United Kingdom}, {United Nations}, {World}]
470475
featuresContaining('🇬🇧'); // returns [{United Kingdom}, {United Nations}, {World}]
471476
featuresContaining('.uk'); // returns [{United Kingdom}, {United Nations}, {World}]
@@ -488,7 +493,6 @@ Returns all the the features that match or are contained within the given identi
488493
featuresIn('CN'); // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]
489494
featuresIn('CHN'); // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]
490495
featuresIn('156'); // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]
491-
featuresIn(156); // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]
492496
featuresIn('Q148'); // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]
493497
featuresIn('🇨🇳'); // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]
494498
featuresIn('.cn'); // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]
@@ -505,7 +509,6 @@ Returns a new feature with the `properties` of the feature matching `id` and the
505509
aggregateFeature('CN'); // returns Mainland China, Hong Kong, and Macau as one feature
506510
aggregateFeature('CHN'); // returns Mainland China, Hong Kong, and Macau as one feature
507511
aggregateFeature('156'); // returns Mainland China, Hong Kong, and Macau as one feature
508-
aggregateFeature(156); // returns Mainland China, Hong Kong, and Macau as one feature
509512
aggregateFeature('Q148'); // returns Mainland China, Hong Kong, and Macau as one feature
510513
aggregateFeature('🇨🇳'); // returns Mainland China, Hong Kong, and Macau as one feature
511514
aggregateFeature('.cn'); // returns Mainland China, Hong Kong, and Macau as one feature
@@ -553,7 +556,6 @@ isInEuropeanUnion('EU'); // returns true
553556
isInEuropeanUnion('DE'); // returns true
554557
isInEuropeanUnion('DEU'); // returns true
555558
isInEuropeanUnion('276'); // returns true
556-
isInEuropeanUnion(276); // returns true
557559
isInEuropeanUnion('Q183'); // returns true
558560
isInEuropeanUnion('🇩🇪'); // returns true
559561
isInEuropeanUnion('.de'); // returns true
@@ -584,7 +586,6 @@ isInUnitedNations('EU'); // returns true
584586
isInUnitedNations('DE'); // returns true
585587
isInUnitedNations('DEU'); // returns true
586588
isInUnitedNations('276'); // returns true
587-
isInUnitedNations(276); // returns true
588589
isInUnitedNations('Q183'); // returns true
589590
isInUnitedNations('🇩🇪'); // returns true
590591
isInUnitedNations('.de'); // returns true
@@ -615,7 +616,6 @@ driveSide('EU'); // returns null
615616
driveSide('GB'); // returns 'left'
616617
driveSide('GBR'); // returns 'left'
617618
driveSide('826'); // returns 'left'
618-
driveSide(826); // returns 'left'
619619
driveSide('Q145'); // returns 'left'
620620
driveSide('🇬🇧'); // returns 'left'
621621
driveSide('.uk'); // returns 'left'
@@ -641,7 +641,6 @@ roadSpeedUnit('EU'); // returns null
641641
roadSpeedUnit('GB'); // returns 'mph'
642642
roadSpeedUnit('GBR'); // returns 'mph'
643643
roadSpeedUnit('826'); // returns 'mph'
644-
roadSpeedUnit(826); // returns 'mph'
645644
roadSpeedUnit('Q145'); // returns 'mph'
646645
roadSpeedUnit('🇬🇧'); // returns 'mph'
647646
roadSpeedUnit('.uk'); // returns 'mph'
@@ -667,7 +666,6 @@ roadHeightUnit('EU'); // returns null
667666
roadHeightUnit('GB'); // returns 'ft'
668667
roadHeightUnit('GBR'); // returns 'ft'
669668
roadHeightUnit('826'); // returns 'ft'
670-
roadHeightUnit(826); // returns 'ft'
671669
roadHeightUnit('Q145'); // returns 'ft'
672670
roadHeightUnit('🇬🇧'); // returns 'ft'
673671
roadHeightUnit('.uk'); // returns 'ft'
@@ -692,7 +690,6 @@ callingCodes('EU'); // returns []
692690
callingCodes('GB'); // returns ['44']
693691
callingCodes('GBR'); // returns ['44']
694692
callingCodes('826'); // returns ['44']
695-
callingCodes(826); // returns ['44']
696693
callingCodes('Q145'); // returns ['44']
697694
callingCodes('🇬🇧'); // returns ['44']
698695
callingCodes('.uk'); // returns ['44']

0 commit comments

Comments
 (0)