UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

117 lines (112 loc) 4.34 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var nodejs_fs = require('../nodejs/fs.js'); var nodejs_os = require('../nodejs/os.js'); var nodejs_path = require('../nodejs/path.js'); var kMinutes = 601000; var kDataFile = 't-comm-install.data'; function getNpmTipTemplate(_ref) { var prefix = _ref.prefix, link = _ref.link, postfix = _ref.postfix, feedbackTitle = _ref.feedbackTitle, feedbackList = _ref.feedbackList; return "".concat(colorFactory(96)).concat(prefix, " (").concat(colorFactory(94), " ").concat(link, " ").concat(colorFactory(96), ") ").concat(postfix).concat(colorFactory(), "\n\n") + "".concat(colorFactory(96)).concat(feedbackTitle).concat(colorFactory(), "\n") + "".concat(feedbackList.map(function (feedback) { return "".concat(colorFactory(96), ">").concat(colorFactory(94), " ").concat(feedback, " ").concat(colorFactory()); }).join('\n'), "\n"); } function getNpmTips(_ref2) { var packageName = _ref2.packageName, packageLink = _ref2.packageLink, packagePostfix = _ref2.packagePostfix, packagePostfixEn = _ref2.packagePostfixEn, feedbackList = _ref2.feedbackList; var content = isUtf8Encoding() ? getNpmTipTemplate({ prefix: "\u611F\u8C22\u60A8\u4F7F\u7528".concat(packageName), link: packageLink, postfix: "".concat(packagePostfix, "\uFF01"), feedbackTitle: '如有任何疑问或建议,可通过下述渠道向我们反馈:', feedbackList: feedbackList }) : getNpmTipTemplate({ prefix: "Thank you for using ".concat(packageName), link: packageLink, postfix: "".concat(packagePostfixEn, "!"), feedbackTitle: 'If you have any issue or advice, you can give us feedback:', feedbackList: feedbackList }); return content; } function not(it) { return !it || it === '0' || it === 'false'; } function colorFactory(color) { if (!process.stdout.hasColors()) { return ''; } return "\x1B[".concat(color !== null && color !== void 0 ? color : 0, "m"); } function isUtf8Encoding() { var _a; var _process = process, _process$env = _process.env, LANG = _process$env.LANG, LC_CTYPE = _process$env.LC_CTYPE; var language = ((_a = LANG !== null && LANG !== void 0 ? LANG : LC_CTYPE) !== null && _a !== void 0 ? _a : '').toLowerCase(); if (language.includes('utf-8') || language.includes('utf8')) { return true; } if (process.platform === 'win32') { return true; } return false; } function isShowInfo(kContent) { // eslint-disable-next-line @typescript-eslint/naming-convention var _process2 = process, _process2$env = _process2.env, ADBLOCK = _process2$env.ADBLOCK, CI = _process2$env.CI, DISABLE_OPENCOLLECTIVE = _process2$env.DISABLE_OPENCOLLECTIVE, OPEN_SOURCE_CONTRIBUTOR = _process2$env.OPEN_SOURCE_CONTRIBUTOR, npm_config_loglevel = _process2$env.npm_config_loglevel; var isSilent = typeof npm_config_loglevel === 'string' && ['silent', 'error', 'warn'].includes(npm_config_loglevel); if (not(ADBLOCK) && not(CI) && not(DISABLE_OPENCOLLECTIVE) && not(OPEN_SOURCE_CONTRIBUTOR) && !isSilent) { var file = nodejs_path.getPath().join(nodejs_os.getOs().tmpdir(), kDataFile); var contents = []; try { var delta = Date.now() - nodejs_fs.getFs().statSync(file).mtime.getTime(); if (delta >= 0 && delta < 3 * kMinutes) { contents = JSON.parse(nodejs_fs.getFs().readFileSync(file, 'utf8')); // if (contents.includes(kContent)) { // return false; // } } } catch (_a) { contents = []; } try { contents.push(kContent); nodejs_fs.getFs().writeFileSync(file, JSON.stringify(contents), 'utf8'); } catch (/* (empty function) */_b) {/* (empty function) */} return true; } return false; } function npmInstallTip(_ref3) { var packageName = _ref3.packageName, packageLink = _ref3.packageLink, packagePostfix = _ref3.packagePostfix, packagePostfixEn = _ref3.packagePostfixEn, feedbackList = _ref3.feedbackList; var content = getNpmTips({ packageName: packageName, packageLink: packageLink, packagePostfix: packagePostfix, packagePostfixEn: packagePostfixEn, feedbackList: feedbackList }); if (isShowInfo(content)) { console.log(content); } } exports.npmInstallTip = npmInstallTip;