cnpmcore
Version:
96 lines • 7.2 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.BinaryAdapter = exports.AbstractBinary = exports.BINARY_ADAPTER_ATTRIBUTE = void 0;
const tegg_1 = require("@eggjs/tegg");
const platforms = ['darwin', 'linux', 'win32'];
exports.BINARY_ADAPTER_ATTRIBUTE = Symbol('BINARY_ADAPTER_ATTRIBUTE');
class AbstractBinary {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async finishFetch(_success, _binaryName) {
// do not thing by default
}
async requestXml(url) {
const { status, data, headers } = await this.httpclient.request(url, {
timeout: 30000,
followRedirect: true,
gzip: true,
});
const xml = data.toString();
if (status !== 200) {
this.logger.warn('[AbstractBinary.requestXml:non-200-status] url: %s, status: %s, headers: %j, xml: %j', url, status, headers, xml);
return '';
}
return xml;
}
async requestJSON(url, requestHeaders) {
const { status, data, headers } = await this.httpclient.request(url, {
timeout: 30000,
dataType: 'json',
followRedirect: true,
gzip: true,
headers: requestHeaders,
});
if (status !== 200) {
this.logger.warn('[AbstractBinary.requestJSON:non-200-status] url: %s, status: %s, headers: %j', url, status, headers);
return data;
}
return data;
}
// https://nodejs.org/api/n-api.html#n_api_node_api_version_matrix
async listNodeABIVersions() {
const nodeABIVersions = [];
const versions = await this.requestJSON('https://nodejs.org/dist/index.json');
for (const version of versions) {
if (!version.modules)
continue;
const modulesVersion = parseInt(version.modules);
// node v6.0.0 moduels 48 min
if (modulesVersion >= 48 && !nodeABIVersions.includes(modulesVersion)) {
nodeABIVersions.push(modulesVersion);
}
}
return nodeABIVersions;
}
listNodePlatforms() {
// https://nodejs.org/api/os.html#osplatform
return platforms;
}
listNodeArchs(binaryConfig) {
if (binaryConfig?.options?.nodeArchs)
return binaryConfig.options.nodeArchs;
// https://nodejs.org/api/os.html#osarch
return {
linux: ['arm', 'arm64', 's390x', 'ia32', 'x64'],
darwin: ['arm64', 'ia32', 'x64'],
win32: ['ia32', 'x64'],
};
}
listNodeLibcs() {
// https://github.com/lovell/detect-libc/blob/master/lib/detect-libc.js#L42
return {
darwin: ['unknown'],
linux: ['glibc', 'musl'],
win32: ['unknown'],
};
}
}
exports.AbstractBinary = AbstractBinary;
__decorate([
(0, tegg_1.Inject)(),
__metadata("design:type", Object)
], AbstractBinary.prototype, "logger", void 0);
__decorate([
(0, tegg_1.Inject)(),
__metadata("design:type", Object)
], AbstractBinary.prototype, "httpclient", void 0);
exports.BinaryAdapter = tegg_1.QualifierImplDecoratorUtil.generatorDecorator(AbstractBinary, exports.BINARY_ADAPTER_ATTRIBUTE);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RCaW5hcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9hcHAvY29tbW9uL2FkYXB0ZXIvYmluYXJ5L0Fic3RyYWN0QmluYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHNDQUFnRjtBQW1CaEYsTUFBTSxTQUFTLEdBQUcsQ0FBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBVyxDQUFDO0FBRTdDLFFBQUEsd0JBQXdCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFFM0UsTUFBc0IsY0FBYztJQVVsQyw2REFBNkQ7SUFDN0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFpQixFQUFFLFdBQXVCO1FBQzFELDBCQUEwQjtJQUM1QixDQUFDO0lBRVMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFXO1FBQ3BDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ25FLE9BQU8sRUFBRSxLQUFLO1lBQ2QsY0FBYyxFQUFFLElBQUk7WUFDcEIsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDLENBQUM7UUFDSCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFZLENBQUM7UUFDdEMsSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHNGQUFzRixFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3BJLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFUyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQVcsRUFBRSxjQUF1QztRQUM5RSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtZQUNuRSxPQUFPLEVBQUUsS0FBSztZQUNkLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLElBQUksRUFBRSxJQUFJO1lBQ1YsT0FBTyxFQUFFLGNBQWM7U0FDeEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDhFQUE4RSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDdkgsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtFQUFrRTtJQUN4RCxLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLE1BQU0sZUFBZSxHQUFhLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUM5RSxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRTtZQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87Z0JBQUUsU0FBUztZQUMvQixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pELDZCQUE2QjtZQUM3QixJQUFJLGNBQWMsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUNyRSxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3RDO1NBQ0Y7UUFDRCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBRVMsaUJBQWlCO1FBQ3pCLDRDQUE0QztRQUM1QyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRVMsYUFBYSxDQUFDLFlBQStCO1FBQ3JELElBQUksWUFBWSxFQUFFLE9BQU8sRUFBRSxTQUFTO1lBQUUsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUM1RSx3Q0FBd0M7UUFDeEMsT0FBTztZQUNMLEtBQUssRUFBRSxDQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUU7WUFDakQsTUFBTSxFQUFFLENBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUU7WUFDbEMsS0FBSyxFQUFFLENBQUUsTUFBTSxFQUFFLEtBQUssQ0FBRTtTQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVTLGFBQWE7UUFDckIsMkVBQTJFO1FBQzNFLE9BQU87WUFDTCxNQUFNLEVBQUUsQ0FBRSxTQUFTLENBQUU7WUFDckIsS0FBSyxFQUFFLENBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBRTtZQUMxQixLQUFLLEVBQUUsQ0FBRSxTQUFTLENBQUU7U0FDckIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWxGRCx3Q0FrRkM7QUFoRlc7SUFEVCxJQUFBLGFBQU0sR0FBRTs7OENBQ21CO0FBR2xCO0lBRFQsSUFBQSxhQUFNLEdBQUU7O2tEQUMyQjtBQStFekIsUUFBQSxhQUFhLEdBQ3hCLGlDQUEwQixDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxnQ0FBd0IsQ0FBQyxDQUFDIn0=