aki-plugin-manager
Version:
Lightweight at-runtime plugin manager and loader
43 lines (42 loc) • 1.47 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.searchRegistry = exports.getManifest = void 0;
const https_1 = __importDefault(require("https"));
const BASE_URL = "https://registry.npmjs.org";
const _cleanVersion = (version) => {
if (version === "latest")
return version;
return version.replace(/^\D/, "");
};
const getManifest = (name, version) => {
return new Promise((resolve) => {
https_1.default.get(`${BASE_URL}/${name}/${_cleanVersion(version)}`, (stream) => {
let body = "";
stream.on("data", (chunk) => {
body += chunk;
});
stream.on("end", () => {
resolve(JSON.parse(body));
});
});
});
};
exports.getManifest = getManifest;
const searchRegistry = (text, scope, limit) => {
const scopeText = scope ? `scope:${scope} ` : "";
return new Promise((resolve) => {
https_1.default.get(`${BASE_URL}/-/v1/search?size=${limit}&text=${scopeText}${text}`, (stream) => {
let body = "";
stream.on("data", (chunk) => {
body += chunk;
});
stream.on("end", () => {
resolve(JSON.parse(body));
});
});
});
};
exports.searchRegistry = searchRegistry;