@sizium/core
Version:
Get the actual size of any local or remote package
42 lines (38 loc) • 1.19 kB
JavaScript
;
const _super = require('../shared/core.-Ai0yTLh.cjs');
require('semver');
class SiziumRegistry extends _super.PackageSuper {
#parseName(input) {
try {
const RE_SCOPED = /^(@[^\\/]+\/[^@\\/]+)(?:@([^\\/]+))?(\/.*)?$/;
const RE_NON_SCOPED = /^([^@\\/]+)(?:@([^\\/]+))?(\/.*)?$/;
input = input.toLowerCase();
const m = RE_SCOPED.exec(input) || RE_NON_SCOPED.exec(input);
if (!m) throw new this.Error(
this.ERROR_ID.INVALID_PKG_NAME,
{ msg: `invalid package name: ${input}` }
);
return {
name: m[1] || "",
version: m[2] || "latest",
path: m[3] || ""
};
} catch (e) {
if (e instanceof this.Error) throw e;
throw new this.Error(
this.ERROR_ID.GETTING_PKG_NAME,
{
msg: `Unexpected error getting name`,
e
}
);
}
}
async get() {
const data = this.#parseName(this.input);
const mainPackage = await this.getRegistryData(data.name, data.version, 0);
const allPackages = await this.getPackagesData(mainPackage);
return this.getMainPkgData(allPackages);
}
}
exports.SiziumRegistry = SiziumRegistry;