myanimelist-url-to-id
Version:
MyAnimeList raw URL to ID
33 lines (32 loc) • 1.19 kB
JavaScript
;
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;