UNPKG

libphonenumber-metadata-generator

Version:

Metadata generator for `libphonenumber-js`

55 lines (32 loc) 2.35 kB
# libphonenumber-metadata-generator Generates metadata for [`libphonenumber-js`](https://gitlab.com/catamphetamine/libphonenumber-js). ## Install ``` npm install libphonenumber-metadata-generator --save-dev ``` ## Use Add metadata generation script to **your project's** `package.json`. Example: ```js { "scripts": { "generate-libphonenumber-metadata": "libphonenumber-metadata-generator metadata.custom.json --countries RU,DE --extended" } } ``` And then run it like `npm run generate-libphonenumber-metadata`. The arguments are: * The first argument is the output metadata file path. * `--countries` argument is a comma-separated list of the countries included (if `--countries` is omitted then all countries are included). * `--extended` argument may be passed to include all regular expressions for precise phone number validation and getting phone number type, which will enlarge the resulting metadata size approximately twice. * `--types ...` argument may be passed instead of `--extended` to generate metadata that _only_ supports the selected phone number types (a comma-separated list, e.g. `--types mobile,fixed_line`). [See the list of all possible phone number types](https://gitlab.com/catamphetamine/libphonenumber-metadata-generator/-/blob/master/source/generate.js#L6-17). Other phone number types will still be parseable, but they won't be recognized as being "valid" (`.isValid()` will return `false`), and also their "type" won't be detected (`.getType()` will return `undefined`). ## Versioning Metadata generated by `libphonenumber-metadata-generator` has a numeric `version`: this is for backwards compatibility, because metadata file format could change in some future. ## API ### `download(): { date: Date, version: string, changes: string[], xml: string }` Downloads the latest released metadata and returns the release version and the metadata XML, along with a list of changes. ### `generate(xml: string, version: number, includedCountries: string[]?, extended: boolean?, includedPhoneNumberTypes: string[]?): object` Parses metadata XML and returns a JSON object. ### `compress(metadata: object): object` Compresses metadata JSON object: replaces objects with arrays. ### `version: number` Provides the current version of metadata format.