annexare/countries-list

大洲和 国家:ISO 3166-1 alpha-2 码,名称,ISO 639-1 语言,首都,货币,本地名称,电话。JSON,CSV 和 SQL。

安装 145,851

依赖者: 3

建议者: 0

安全: 0

星标 1,155

关注者: 18

分支: 429

公开问题: 13

语言:TypeScript

3.1.1 2024-07-31 10:54 UTC

README

Monthly Downloads NPM Packagist CI: JS CI: PHP Twitter

大洲和 国家: ISO 3166-1 alpha-2 码(包含 alpha-2alpha-3 集合),名称,ISO 639-1 语言,首都,ISO 4217 货币代码,本地名称,电话区号。列表以 JSON、CSV 和 SQL 格式提供。还包含包含额外国家 表情符号 国旗数据的单独 JSON 文件。

版本 3.0:重大更改

版本 3 包含一些数据结构更改。底层完全使用 TypeScriptESM 导出和 Turborepo 文件结构进行了重构。

所有内容都进行了强类型定义,因此您可以在您的 IDE 中轻松使用具有自动完成的代码。

注意:如果您项目依赖于旧结构,请仔细指定依赖项中所需版本。

安装

通过以下方式提供软件包

  • NPM npm install countries-list
  • Composer / Packagist composer require annexare/countries-list

使用(版本 3.x)

模块导出 continentscountrieslanguages 和实用函数。

// Interfaces and types
import type {
  ICountry,
  ICountryData,
  ILanguage,
  TContinentCode,
  TCountryCode,
  TLanguageCode,
} from 'countries-list'

// Main data and utils
import { continents, countries, languages } from 'countries-list'
// Utils
import { getCountryCode, getCountryData, getCountryDataList, getEmojiFlag } from 'countries-list'

// Minimal data in JSON
import countries2to3 from 'countries-list/minimal/countries.2to3.min.json'
import countries3to2 from 'countries-list/minimal/countries.3to2.min.json'
import languageNames from 'countries-list/minimal/languages.native.min'

getCountryCode('Ukraine') // 'UA'
getCountryCode('Україна') // 'UA'
getCountryData('UA') // ICountryData

构建的文件位于此存储库的 dist 目录中,而 packages/countries 目录包含源数据。

注意:JS 构建包含 ES 模块、CommonJS 和 IIFE(目前如此)

  • CJS cjs/index.js
  • ESM mjs/index.js
  • IIFE index.iife.js

数据结构示例

const continents = {
  AF: 'Africa',
  AN: 'Antarctica',
  AS: 'Asia',
  EU: 'Europe',
  NA: 'North America',
  OC: 'Oceania',
  SA: 'South America',
}

const countries = {
  // ...
  UA: {
    name: 'Ukraine',
    native: 'Україна',
    phone: [380],
    continent: 'EU',
    capital: 'Kyiv',
    currency: ['UAH'],
    languages: ['uk'],
  },
  // ...
}

const languages = {
  // ...
  uk: {
    name: 'Ukrainian',
    native: 'Українська',
  },
  ur: {
    name: 'Urdu',
    native: 'اردو',
    rtl: 1,
  },
  // ...
}

为此存储库做出贡献

所有内容均来自 packages/countries/src 中的强类型文件,包括 SQL 文件。

dist 中的所有内容都是生成的,因此请仅对来自 packages/countries 的文件进行数据相关更改,提交它们。使用 npm run build(或 turbo buildturbo test)命令来构建/测试生成的文件。

致谢

由来自不同公共来源的 Annexare Studio 准备。请随意在您的应用程序中使用它,并将更新发送到 公共存储库。它受 MIT 许可证的保护。