aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/packages/turbo-workspaces/src/index.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/turbo-workspaces/src/index.ts')
-rw-r--r--packages/turbo-workspaces/src/index.ts58
1 files changed, 58 insertions, 0 deletions
diff --git a/packages/turbo-workspaces/src/index.ts b/packages/turbo-workspaces/src/index.ts
new file mode 100644
index 0000000..c7fc6b8
--- /dev/null
+++ b/packages/turbo-workspaces/src/index.ts
@@ -0,0 +1,58 @@
+import { getAvailablePackageManagers } from "@turbo/utils";
+import getWorkspaceDetails from "./getWorkspaceDetails";
+import { convertProject } from "./convert";
+import { Logger } from "./logger";
+import install, { getPackageManagerMeta } from "./install";
+import { ConvertError } from "./errors";
+import MANAGERS from "./managers";
+
+import type {
+ PackageManager,
+ Options,
+ InstallArgs,
+ Workspace,
+ Project,
+} from "./types";
+import type { ConvertErrorType } from "./errors";
+
+async function convert({
+ root,
+ to,
+ options,
+}: {
+ root: string;
+ to: PackageManager;
+ options?: Options;
+}) {
+ const logger = new Logger({ ...options, interactive: false });
+ const [project, availablePackageManagers] = await Promise.all([
+ getWorkspaceDetails({ root }),
+ getAvailablePackageManagers(),
+ ]);
+ await convertProject({
+ project,
+ to: {
+ name: to,
+ version: availablePackageManagers[to].version as PackageManager,
+ },
+ logger,
+ options,
+ });
+}
+
+export type {
+ PackageManager,
+ Options,
+ InstallArgs,
+ Workspace,
+ Project,
+ ConvertErrorType,
+};
+export {
+ convert,
+ getWorkspaceDetails,
+ install,
+ MANAGERS,
+ getPackageManagerMeta,
+ ConvertError,
+};