UNPKG

myanimelist-url-to-id

Version:
33 lines (32 loc) 1.19 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getCharaUrl = exports.getCharaId = void 0; var InvalidUrl_1 = __importDefault(require("./exceptions/InvalidUrl")); var url_1 = require("url"); var ConstDefinition_1 = require("./ConstDefinition"); var utils_1 = require("./utils"); var charaPattern = /\/character\/([\d]+)/; /** * Get Charater ID from given MAL Character URL. * @param url URL string of MyAnimeList Character URL */ function getCharaId(url) { if (!utils_1.startsWith(ConstDefinition_1.MAL_BaseUrl, url) || !charaPattern.test(url)) { throw new InvalidUrl_1.default("The url doesn't match the Character Pattern."); } var result = charaPattern.exec(url); return parseInt(result[1]); } exports.getCharaId = getCharaId; /** * Get MAL Character URL (not canonical) from given ID. * @param id Character ID */ function getCharaUrl(id) { var url = new url_1.URL('/character/' + id, ConstDefinition_1.MAL_BaseUrl); return url.toString(); } exports.getCharaUrl = getCharaUrl;