myanimelist-url-to-id
Version:
MyAnimeList raw URL to ID
33 lines (32 loc) • 1.17 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAnimeUrl = exports.getAnimeId = 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 animePattern = /\/anime\/([\d]+)/;
/**
* Get Charater ID from given MAL Anime URL.
* @param url URL string of MyAnimeList Anime URL
*/
function getAnimeId(url) {
if (!utils_1.startsWith(ConstDefinition_1.MAL_BaseUrl, url) || !animePattern.test(url)) {
throw new InvalidUrl_1.default("The url doesn't match the Anime Pattern.");
}
var result = animePattern.exec(url);
return parseInt(result[1]);
}
exports.getAnimeId = getAnimeId;
/**
* Get MAL Anime URL (not canonical) from given ID.
* @param id Anime ID
*/
function getAnimeUrl(id) {
var url = new url_1.URL('/anime/' + id, ConstDefinition_1.MAL_BaseUrl);
return url.toString();
}
exports.getAnimeUrl = getAnimeUrl;