Skip to content
/ mm-nrc Public

JSON data and utilities for Myanmar National Registration Card (NRC).

License

Notifications You must be signed in to change notification settings

wai-lin/mm-nrc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Myanmar National Registration Card JSON Data and Utils Helpers

Installation

npm install mm-nrc
# OR
yarn add mm-nrc

Documentation

! Important

States has NAY PYI TAW as 9* which is not needed in NRC. You may use it as you needed.

{
  "id": "sH0ybsmxNuxmeOT_",
  "code": "NAYPYITAW",
  "number": { "en": "9*", "mm": "၉*" },
  "name": { "en": "NAYPYITAW", "mm": "နေပြည်တော်" }
}

When using the library as NRC input, you also need to include NayPyiTaw townships as Mandalay townships.

There are two OUKAMA data in this json data. You can filter out the one you need when getting the township values. Otherwise there will be two OUKAMA in your application.

{
  "id": "KZFQuHHRo7fanPlq",
  "code": "SHWEPAUKKAN",
  "short": {
    "en": "OUKAMA",
    "mm": "ဥကမ"
  },
  "name": {
    "en": "SHWE PAUK KAN",
    "mm": "ရွှေပေါက်ကံ"
  },
  "stateId": "Zvxm3m8cAwCeDgz1",
  "stateCode": "12"
}

{
  "id": "oAIpEryyl6pOobUS",
  "code": "NORTHOKKALAPA",
  "short": {
    "en": "OUKAMA",
    "mm": "ဥကမ"
  },
  "name": {
    "en": "NORTH OKKALAPA",
    "mm": "မြောက်ဥက္ကလာ"
  },
  "stateId": "Zvxm3m8cAwCeDgz1",
  "stateCode": "12"
}
Functions
/** get all nrc raw data */
function getNrcData(): {
  nrcStates: NrcState[];
  nrcTownships: NrcTownship[];
  nrcTypes: NrcType[];
};

/** get all nrc raw states */
function getNrcStates(): NrcState[];

/** get all nrc raw townships */
function getNrcTownships(): NrcTownship[];

/** get all nrc raw types */
function getNrcTypes(): NrcType[];

/** find single nrc state by it's id */
function getNrcStateById(id: string): NrcState;

/** find single nrc township by it's id */
function getNrcTownshipById(id: string): NrcTownship;

/** find single nrc type by it's id */
function getNrcTypeById(id: string): NrcType;

/** find all nrc townships with state id */
function getNrcTownshipsByStateId(stateId: string): NrcTownship[];
Types
type NrcState = {
  id: string;
  code: string;
  number: {
    en: string;
    mm: string;
  };
  name: {
    en: string;
    mm: string;
  };
};

type NrcTownship = {
  id: string;
  code: string;
  short: {
    en: string;
    mm: string;
  };
  name: {
    en: string;
    mm: string;
  };
  stateId: string;
  stateCode: string;
};

type NrcType = {
  id: string;
  name: {
    en: string;
    mm: string;
  };
};

Helpers

/**
 * convert english nrc to myanmar nrc
 *
 * ```js
 * const mmNrc = convertToMmNrc('12/TAMANA(N)112233')
 * console.log(mmNrc) // ၁၂/တမန(နိုင်)112233
 * ```
 */
function convertToMmNrc(engNrc: string): string;

/**
 * convert myanmar nrc to english nrc
 *
 * ```js
 * const mmNrc = convertToEnNrc('၁၂/တမန(နိုင်)112233')
 * console.log(mmNrc) // 12/TAMANA(N)112233
 * ```
 */
function convertToEnNrc(mmNrc: string): string;

/** regex to check if the Nrc is correct pattern */
const pattern = {
  en: /\d{1,2}\/[A-Z]{6,6}\((N|E|P|T|R|S)\)\d{5,6}/,
  mm: /[၀-၉]{1,2}\/[က-အ]{3,3}\((နိုင်|ဧည့်|ပြု|သာသနာ|ယာယီ|စ)\)([၀-၉]{5,6}|[0-9]{5,6})/,
};

/**
 * destructure the provided nrc string
 *
 * ```js
 * const { nrcNumber, nrcType, stateNo, townshipCode } = splitNrc('12/TAMANA(N)112233')
 * console.log({
 *  nrcNumber, // 112233
 *  nrcType, // N
 *  stateNo, // 12
 *  townshipCode, // TAMANA
 * })
 * ```
 */
function splitNrc(nrc: string): {
  stateNo: string;
  townshipCode: string;
  nrcType: string;
  nrcNumber: string;
};

About

JSON data and utilities for Myanmar National Registration Card (NRC).

Resources

License

Stars

Watchers

Forks

Packages

No packages published