universal-geocoder
Version:
Universal geocoding abstraction server-side and client-side with multiple built-in providers
50 lines (39 loc) • 918 B
text/typescript
export interface AdminLevelObject {
readonly level: number;
readonly name: string;
readonly code?: string;
}
// eslint-disable-next-line no-shadow
export enum ADMIN_LEVEL_CODES {
STATE_CODE = 1,
COUNTY_CODE = 2,
}
export default class AdminLevel {
private readonly level: number;
private readonly name: string;
private readonly code?: string;
private constructor({ level, name, code }: AdminLevelObject) {
this.level = level;
this.name = name;
this.code = code;
}
public static create(object: AdminLevelObject): AdminLevel {
return new this(object);
}
public toObject(): AdminLevelObject {
return {
level: this.level,
name: this.name,
code: this.code,
};
}
public getLevel(): number {
return this.level;
}
public getName(): string {
return this.name;
}
public getCode(): undefined | string {
return this.code;
}
}