nx-mesh
Version:
GraphQL Mesh support for Nx
56 lines • 2.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createPackageJson = void 0;
const tslib_1 = require("tslib");
const devkit_1 = require("@nrwl/devkit");
const node_path_1 = require("node:path");
const mesh_packages_1 = require("./mesh-packages");
const get_mesh_packages_1 = require("./get-mesh-packages");
const get_package_versions_1 = require("./get-package-versions");
const get_source_file_1 = require("./get-source-file");
const get_wildcard_packages_1 = require("./get-wildcard-packages");
function createPackageJson(options, context) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
if (context.projectName === undefined) {
throw new Error('project name is undefined');
}
const depGraph = (0, devkit_1.readCachedProjectGraph)();
const packageJson = (0, devkit_1.createPackageJson)(context.projectName, depGraph, {
root: context.root,
// projectRoot:
// options.projectRoot ??
// context.workspace.projects[context.projectName].sourceRoot,
});
if (!packageJson.name) {
packageJson.name = context.projectName;
}
if (!packageJson.scripts) {
packageJson.scripts = {};
}
packageJson.scripts['start'] = 'graphql-mesh start';
if (!packageJson.devDependencies) {
packageJson.devDependencies = {};
}
const sourceFile = yield (0, get_source_file_1.getSourceFile)({
dir: options.dir,
root: context.root,
});
let packages = [
'@graphql-mesh/cli',
'graphql',
...(0, get_mesh_packages_1.getMeshPackages)(sourceFile, mesh_packages_1.meshPackages),
];
if (packageJson.dependencies) {
packages = [...packages, ...(0, get_wildcard_packages_1.getWildcardPackages)(packageJson.dependencies)];
}
packageJson.dependencies = Object.assign(Object.assign({}, packageJson.dependencies), (0, get_package_versions_1.getPackageVersions)(packages, depGraph.externalNodes));
const outputFile = (0, node_path_1.join)(options.outputPath, 'package.json');
(0, devkit_1.writeJsonFile)(outputFile, packageJson);
return {
outputFile,
packageJson,
};
});
}
exports.createPackageJson = createPackageJson;
//# sourceMappingURL=create-package-json.js.map