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.getMangaUrl = exports.getMangaId = 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 mangaPattern = /\/manga\/([\d]+)/;
/**
* Get Charater ID from given MAL Manga URL.
* @param url URL string of MyAnimeList Manga URL
*/
function getMangaId(url) {
if (!utils_1.startsWith(ConstDefinition_1.MAL_BaseUrl, url) || !mangaPattern.test(url)) {
throw new InvalidUrl_1.default("The url doesn't match the Manga Pattern.");
}
var result = mangaPattern.exec(url);
return parseInt(result[1]);
}
exports.getMangaId = getMangaId;
/**
* Get MAL Manga URL (not canonical) from given ID.
* @param id Manga ID
*/
function getMangaUrl(id) {
var url = new url_1.URL('/manga/' + id, ConstDefinition_1.MAL_BaseUrl);
return url.toString();
}
exports.getMangaUrl = getMangaUrl;