| 1234567891011121314151617181920212223242526272829303132333435 |
- 'use strict';
- const installPkg = require('@antfu/install-pkg');
- const utils = require('@antfu/utils');
- const kolorist = require('kolorist');
- const loader_warn = require('./warn.cjs');
- let pending;
- const tasks = {};
- async function tryInstallPkg(name, autoInstall) {
- if (pending) {
- await pending;
- }
- if (!tasks[name]) {
- console.log(kolorist.cyan(`Installing ${name}...`));
- if (typeof autoInstall === "function") {
- tasks[name] = pending = autoInstall(name).then(() => utils.sleep(300)).finally(() => {
- pending = void 0;
- });
- } else {
- tasks[name] = pending = installPkg.installPackage(name, {
- dev: true,
- preferOffline: true
- }).then(() => utils.sleep(300)).catch((e) => {
- loader_warn.warnOnce(`Failed to install ${name}`);
- console.error(e);
- }).finally(() => {
- pending = void 0;
- });
- }
- }
- return tasks[name];
- }
- exports.tryInstallPkg = tryInstallPkg;
|