Son CV dans un terminal web en Javascript!
https://terminal-cv.gregandev.fr
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
2.5 KiB
106 lines
2.5 KiB
2 years ago
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.MockPackageInstaller = void 0;
|
||
|
|
||
|
function _path() {
|
||
|
const data = _interopRequireDefault(require("path"));
|
||
|
|
||
|
_path = function () {
|
||
|
return data;
|
||
|
};
|
||
|
|
||
|
return data;
|
||
|
}
|
||
|
|
||
|
function _fs() {
|
||
|
const data = require("@parcel/fs");
|
||
|
|
||
|
_fs = function () {
|
||
|
return data;
|
||
|
};
|
||
|
|
||
|
return data;
|
||
|
}
|
||
|
|
||
|
function _core() {
|
||
|
const data = require("@parcel/core");
|
||
|
|
||
|
_core = function () {
|
||
|
return data;
|
||
|
};
|
||
|
|
||
|
return data;
|
||
|
}
|
||
|
|
||
|
var _package = _interopRequireDefault(require("../package.json"));
|
||
|
|
||
|
var _utils = require("./utils");
|
||
|
|
||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
|
||
|
// This PackageInstaller implementation simply copies files from one filesystem to another.
|
||
|
// Mostly useful for testing purposes.
|
||
|
class MockPackageInstaller {
|
||
|
packages = new Map();
|
||
|
|
||
|
register(packageName, fs, packagePath) {
|
||
|
this.packages.set(packageName, {
|
||
|
fs,
|
||
|
packagePath
|
||
|
});
|
||
|
}
|
||
|
|
||
|
async install({
|
||
|
modules,
|
||
|
fs,
|
||
|
cwd,
|
||
|
packagePath,
|
||
|
saveDev = true
|
||
|
}) {
|
||
|
if (packagePath == null) {
|
||
|
packagePath = _path().default.join(cwd, 'package.json');
|
||
|
await fs.writeFile(packagePath, '{}');
|
||
|
}
|
||
|
|
||
|
let pkg = JSON.parse(await fs.readFile(packagePath, 'utf8'));
|
||
|
let key = saveDev ? 'devDependencies' : 'dependencies';
|
||
|
|
||
|
if (!pkg[key]) {
|
||
|
pkg[key] = {};
|
||
|
}
|
||
|
|
||
|
for (let module of modules) {
|
||
|
pkg[key][module.name] = '^' + (await this.installPackage(module, fs, packagePath));
|
||
|
}
|
||
|
|
||
|
await fs.writeFile(packagePath, JSON.stringify(pkg));
|
||
|
}
|
||
|
|
||
|
async installPackage(moduleRequest, fs, packagePath) {
|
||
|
let pkg = this.packages.get(moduleRequest.name);
|
||
|
|
||
|
if (!pkg) {
|
||
|
throw new Error('Unknown package ' + moduleRequest.name);
|
||
|
}
|
||
|
|
||
|
let dest = _path().default.join(_path().default.dirname(packagePath), 'node_modules', moduleRequest.name);
|
||
|
|
||
|
await (0, _fs().ncp)(pkg.fs, pkg.packagePath, fs, dest);
|
||
|
let packageJSON = JSON.parse(await fs.readFile(_path().default.join(dest, 'package.json'), 'utf8'));
|
||
|
|
||
|
if (packageJSON.dependencies != null) {
|
||
|
for (let dep of (0, _utils.moduleRequestsFromDependencyMap)(packageJSON.dependencies)) {
|
||
|
await this.installPackage(dep, fs, packagePath);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return packageJSON.version;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
exports.MockPackageInstaller = MockPackageInstaller;
|
||
|
(0, _core().registerSerializableClass)(`${_package.default.version}:MockPackageInstaller`, MockPackageInstaller);
|