UNPKG

@sizium/core

Version:

Get the actual size of any local or remote package

42 lines (38 loc) 1.19 kB
'use strict'; 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;