line_push/node_modules/@nuxt/telemetry/dist/cli.js
2022-07-17 13:16:16 +08:00

157 lines
3.9 KiB
JavaScript

'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var destr = _interopDefault(require('destr'));
var rc = require('rc9');
var meta = require('./meta-73536716.js');
var path = require('path');
var path__default = _interopDefault(path);
var fs = require('fs');
var os = _interopDefault(require('os'));
var consola = _interopDefault(require('consola'));
var c = _interopDefault(require('chalk'));
var stdEnv = _interopDefault(require('std-env'));
var arg = _interopDefault(require('arg'));
var jiti = _interopDefault(require('jiti'));
var dotenv = _interopDefault(require('dotenv'));
const usage = 'nuxt telemetry `status`|`enable`|`disable` [`-g`,`--global`] [`dir`]';
const RC_FILENAME = '.nuxtrc';
function _run() {
const args = arg({
'--global': Boolean,
'-g': '--global'
});
const [command, _dir = '.'] = args._;
const dir = path.resolve(process.cwd(), _dir);
const global = args['--global'];
if (!global && !fs.existsSync(path.resolve(dir, 'nuxt.config.js')) && !fs.existsSync(path.resolve(dir, 'nuxt.config.ts'))) {
consola.error('It seems you are not in a nuxt project!');
consola.info('You can try with providing dir or using `-g`');
showUsage();
}
switch (command) {
case 'enable':
setRC('telemetry.enabled', true);
setRC('telemetry.consent', meta.consentVersion);
showStatus();
consola.info('You can disable telemetry with `npx nuxt telemetry disable ' + (global ? '-g' : _dir));
return;
case 'disable':
setRC('telemetry.enabled', false);
setRC('telemetry.consent', 0);
showStatus();
consola.info('You can enable telemetry with `npx nuxt telemetry enable ' + (global ? '-g' : _dir) + '`');
return;
case 'status':
showStatus();
return;
default:
showUsage();
}
function _checkDisabled() {
// test
if (stdEnv.test) {
return 'Because running in test environment';
} // env
if (destr(process.env.NUXT_TELEMETRY_DISABLED)) {
return 'by `NUXT_TELEMETRY_DISABLED` environment variable';
} // dotenv
const dotenvFile = path.resolve(dir, '.env');
if (fs.existsSync(dotenvFile)) {
const _env = dotenv.parse(fs.readFileSync(dotenvFile));
if (destr(_env.NUXT_TELEMETRY_DISABLED)) {
return 'by `NUXT_TELEMETRY_DISABLED` from ' + dotenvFile;
}
}
const disabledByConf = conf => conf.telemetry === false || conf.telemetry && conf.telemetry.enabled === false; // nuxt.config
try {
const _require = jiti(dir);
if (disabledByConf(_require('./nuxt.config'))) {
return 'by ' + _require.resolve('./nuxt.config');
}
} catch (_) {} // Projct .nuxtrc
if (disabledByConf(rc.read({
name: RC_FILENAME,
dir
}))) {
return 'by ' + path.resolve(dir, RC_FILENAME);
} // Global .nuxtrc
if (disabledByConf(rc.readUser({
name: RC_FILENAME
}))) {
return 'by ' + path.resolve(os.homedir(), RC_FILENAME);
}
}
function showStatus() {
const disabled = _checkDisabled();
if (disabled) {
consola.info(`Nuxt telemetry is ${c.yellow('disabled')} ${disabled}`);
} else {
consola.info(`Nuxt telemetry is ${c.green('enabled')}`, global ? 'on machine' : 'on current project');
}
}
function showUsage() {
consola.info(`Usage: ${usage}`);
process.exit(0);
}
function setRC(key, val) {
const update = {
[key]: val
};
if (global) {
rc.updateUser(update, RC_FILENAME);
} else {
rc.update(update, {
name: RC_FILENAME,
dir
});
}
}
}
function run() {
try {
_run();
} catch (err) {
consola.fatal(err);
process.exit(1);
}
}
if (!module.parent) {
run();
}
exports.run = run;
exports.usage = usage;