Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
@shopify/address
Advanced tools
Readme
@shopify/address
Address utilities for formatting addresses.
yarn add @shopify/address
country
field in Address is expected to be of format ISO 3166-1 alpha-2, eg. CA / FR / JPAddressFormatter
classShow an address:
import AddressFormatter from '@shopify/address';
const address = {
company: 'Shopify',
firstName: '恵子',
lastName: '田中',
address1: '八重洲1-5-3',
address2: '',
city: '目黒区',
province: 'JP-13',
zip: '100-8994',
country: 'JP',
phone: '',
};
const addressFormatter = new AddressFormatter('ja');
await addressFormatter.format(address);
/* =>
日本
〒100-8994東京都目黒区八重洲1-5-3
Shopify
田中恵子様
*/
await addressFormatter.getOrderedFields('CA');
/* =>
[
['firstName', 'lastName'],
['company'],
['address1'],
['address2'],
['city'],
['country', 'province', 'zip'],
['phone']
]
*/
constructor(private locale: string)
Instantiate the AddressFormatter by passing it a locale.
updateLocale(locale: string)
Update the current locale of the formatter. Following requests will be in the given locale.
async .getCountry(countryCode: string): Promise<Country>
Loads and returns data about a given country in the current locale. Country and province names are localized. Province names are sorted based on the locale.
async .getCountries(): Promise<Country[]>
Loads and returns data for all countries in the current locale. Countries are sorted based on the locale. Zones are also ordered based on the locale.
async .getZoneName(countryCode: string, zoneCode: string): Promise<string>
This returns the names of the provinces or regions for the specified country, displayed in the language that is currently set.
async .getOrderedFields(countryCode): Promise<FieldName[][]>
Returns how to order address fields for a country code. Fetches the country if not already cached.
async .format(address: Address): Promise<string[]>
Given an address, returns the address ordered for multiline rendering. Uses the formatAddress
sync API in the background.
AddressFormatter.resetCache(): void
Resets the internal cache. Useful to avoid side-effects in test suite.
If you already have the input data ready, like a Country
object, you can use the sync API to get the result right away.
The following functions can be imported as stand-alone utilities.
formatAddress(address: Address, country: Country): string[]
Given an address and a country, returns the address ordered for multiline rendering. e.g.:
['Shopify', 'Lindenstraße 9-14', '10969 Berlin', 'Germany'];
buildOrderedFields(country: Country): FieldName[][]
Returns how to order address fields for a specific country.
Eg.:
[
['firstName', 'lastName'],
['company'],
['address1'],
['address2'],
['city'],
['country', 'province', 'zip'],
['phone'],
];
If your component uses this package and you want to test it with mock API calls you can use the following:
import {fetch} from '@shopify/jest-dom-mocks';
import {mockCountryRequests} from '@shopify/address/tests';
import AddressFormatter from '@shopify/address';
beforeEach(() => {
AddressFormatter.resetCache(); // to avoid side-effects.
mockCountryRequests();
});
afterEach(fetch.restore);
Note: Only FR / JA and EN are mocked.
FAQs
Address utilities for formatting addresses
The npm package @shopify/address receives a total of 26,358 weekly downloads. As such, @shopify/address popularity was classified as popular.
We found that @shopify/address demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 24 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.