UNPKG

@ts-dev-tools/core

Version:
35 lines (34 loc) 1.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createTestMonorepoProject = void 0; const node_path_1 = require("node:path"); const PackageJson_1 = require("../services/PackageJson"); const cli_1 = require("./cli"); const test_project_1 = require("./test-project"); async function generateProjectInMonorepoProject(packageName, projectDir, useCache, testProjectGenerator) { await (0, cli_1.safeExec)(projectDir, "npm init --yes"); await (0, cli_1.safeExec)(projectDir, "npm install"); await (0, cli_1.safeExec)(projectDir, "npm install --save-dev -W typescript"); await (0, cli_1.safeExec)(projectDir, "npm exec tsc -- --init"); PackageJson_1.PackageJson.fromDirPath(projectDir).merge({ private: true, workspaces: ["packages/*"], }); const packageDir = (0, node_path_1.join)(projectDir, "packages/test-package"); await (0, test_project_1.createTestProject)(packageName, packageDir, useCache, testProjectGenerator); await (0, cli_1.safeExec)(projectDir, `npm exec lerna -- init --no-progress --skipInstall`); await (0, cli_1.safeExec)(projectDir, "npm install"); } function generateMonorepoProject(packageName, useCache, testProjectGenerator) { const projectGenerator = (projectDir) => generateProjectInMonorepoProject(packageName, projectDir, useCache, testProjectGenerator); Object.defineProperty(projectGenerator, "name", { value: `monorepo-project-generator-${testProjectGenerator.name}`, configurable: true, }); return projectGenerator; } const createTestMonorepoProject = async (filepath, useCache, testProjectGenerator) => { const packageName = (0, test_project_1.getPackageNameFromFilepath)(filepath); return (0, test_project_1.createProjectForTestFile)(filepath, useCache, generateMonorepoProject(packageName, useCache, testProjectGenerator)); }; exports.createTestMonorepoProject = createTestMonorepoProject;