@jakubmazanec/carson 0.1.0-c5ebb6f → 0.1.0-next.336fe21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/README.md +65 -10
  2. package/dist/commands/create-project/CreateProject.js.map +1 -1
  3. package/dist/commands/create-project/CreateProjectInput.js +1 -1
  4. package/dist/commands/create-project/CreateProjectInput.js.map +1 -1
  5. package/dist/commands/create-project/createProjectCommand.js +3 -4
  6. package/dist/commands/create-project/createProjectCommand.js.map +1 -1
  7. package/dist/commands/create-project/runCreateProject.js +3 -13
  8. package/dist/commands/create-project/runCreateProject.js.map +1 -1
  9. package/dist/commands/create-workspace/CreateWorkspace.d.ts +1 -2
  10. package/dist/commands/create-workspace/CreateWorkspace.js +7 -5
  11. package/dist/commands/create-workspace/CreateWorkspace.js.map +1 -1
  12. package/dist/commands/create-workspace/createWorkspaceCommand.js +1 -11
  13. package/dist/commands/create-workspace/createWorkspaceCommand.js.map +1 -1
  14. package/dist/commands/create-workspace/runCreateWorkspace.js +3 -12
  15. package/dist/commands/create-workspace/runCreateWorkspace.js.map +1 -1
  16. package/dist/commands/internals/CommandStatus.d.ts +1 -0
  17. package/dist/commands/internals/CommandStatus.js +3 -0
  18. package/dist/commands/internals/CommandStatus.js.map +1 -0
  19. package/dist/commands/internals.d.ts +1 -0
  20. package/dist/commands/internals.js +1 -0
  21. package/dist/commands/internals.js.map +1 -1
  22. package/dist/commands/update-workspace/UpdateWorkspace.js +1 -1
  23. package/dist/commands/update-workspace/UpdateWorkspace.js.map +1 -1
  24. package/dist/commands/update-workspace/updateWorkspaceCommand.js +3 -4
  25. package/dist/commands/update-workspace/updateWorkspaceCommand.js.map +1 -1
  26. package/dist/template/CarsonTemplate.d.ts +1 -1
  27. package/dist/template/CarsonTemplate.js.map +1 -1
  28. package/dist/template/CarsonTemplateConfig.d.ts +1 -1
  29. package/dist/template/CarsonTemplateConfig.js.map +1 -1
  30. package/dist/template/CarsonTemplateError.d.ts +8 -0
  31. package/dist/template/CarsonTemplateError.js +13 -0
  32. package/dist/template/CarsonTemplateError.js.map +1 -0
  33. package/dist/template/TemplateAttributes.d.ts +3 -3
  34. package/dist/template/TemplateAttributes.js +2 -1
  35. package/dist/template/TemplateAttributes.js.map +1 -1
  36. package/dist/template/TemplateRender.d.ts +6 -2
  37. package/dist/template/TemplateRender.js.map +1 -1
  38. package/dist/template/TemplateRenders.d.ts +1 -1
  39. package/dist/template/TemplateRenders.js.map +1 -1
  40. package/dist/template/applyTemplateRenders.d.ts +3 -0
  41. package/dist/template/applyTemplateRenders.js +36 -6
  42. package/dist/template/applyTemplateRenders.js.map +1 -1
  43. package/dist/template/internals/TemplateRenderSnapshot.d.ts +18 -5
  44. package/dist/template/internals/TemplateRenderSnapshot.js +4 -1
  45. package/dist/template/internals/TemplateRenderSnapshot.js.map +1 -1
  46. package/dist/template/internals/TemplateRenderSnapshots.d.ts +18 -5
  47. package/dist/template/internals/deleteUsingTemplateRender.d.ts +4 -1
  48. package/dist/template/internals/deleteUsingTemplateRender.js +16 -3
  49. package/dist/template/internals/deleteUsingTemplateRender.js.map +1 -1
  50. package/dist/template/internals/insertUsingTemplateRender.js +11 -1
  51. package/dist/template/internals/insertUsingTemplateRender.js.map +1 -1
  52. package/dist/template/internals/loadTemplateRenderSnapshots.d.ts +4 -1
  53. package/dist/template/internals/mergeUsingTemplateRender.js +11 -1
  54. package/dist/template/internals/mergeUsingTemplateRender.js.map +1 -1
  55. package/dist/template/internals/parseCarsonTemplateId.js +6 -1
  56. package/dist/template/internals/parseCarsonTemplateId.js.map +1 -1
  57. package/dist/template/internals/readCarsonTemplate.js +7 -1
  58. package/dist/template/internals/readCarsonTemplate.js.map +1 -1
  59. package/dist/template/internals/saveTemplateRenderSnapshots.js +4 -4
  60. package/dist/template/internals/saveTemplateRenderSnapshots.js.map +1 -1
  61. package/dist/template/internals/uninsertUsingTemplateRender.js +11 -1
  62. package/dist/template/internals/uninsertUsingTemplateRender.js.map +1 -1
  63. package/dist/template/internals/unmerge.d.ts +1 -1
  64. package/dist/template/internals/unmerge.js +1 -1
  65. package/dist/template/internals/unmerge.js.map +1 -1
  66. package/dist/template/internals/unmergeUsingTemplateRender.js +11 -1
  67. package/dist/template/internals/unmergeUsingTemplateRender.js.map +1 -1
  68. package/dist/template/renderCarsonTemplate.d.ts +3 -0
  69. package/dist/template/renderCarsonTemplate.js +15 -4
  70. package/dist/template/renderCarsonTemplate.js.map +1 -1
  71. package/dist/template.d.ts +1 -0
  72. package/dist/template.js +1 -0
  73. package/dist/template.js.map +1 -1
  74. package/dist/workspace/Project.d.ts +2 -2
  75. package/dist/workspace/Project.js +19 -4
  76. package/dist/workspace/Project.js.map +1 -1
  77. package/dist/workspace/ProjectConfig.d.ts +3 -0
  78. package/dist/workspace/ProjectConfig.js.map +1 -1
  79. package/dist/workspace/ProjectCreateOptions.d.ts +3 -0
  80. package/dist/workspace/ProjectCreateOptions.js.map +1 -1
  81. package/dist/workspace/ProjectError.d.ts +5 -2
  82. package/dist/workspace/ProjectError.js +6 -2
  83. package/dist/workspace/ProjectError.js.map +1 -1
  84. package/dist/workspace/ProjectOptions.d.ts +1 -1
  85. package/dist/workspace/ProjectOptions.js.map +1 -1
  86. package/dist/workspace/ProjectUpdateOptions.d.ts +3 -0
  87. package/dist/workspace/ProjectUpdateOptions.js +3 -1
  88. package/dist/workspace/ProjectUpdateOptions.js.map +1 -1
  89. package/dist/workspace/Workspace.d.ts +8 -6
  90. package/dist/workspace/Workspace.js +106 -33
  91. package/dist/workspace/Workspace.js.map +1 -1
  92. package/dist/workspace/WorkspaceConfig.d.ts +3 -0
  93. package/dist/workspace/WorkspaceConfig.js.map +1 -1
  94. package/dist/workspace/WorkspaceCreateOptions.d.ts +3 -0
  95. package/dist/workspace/WorkspaceCreateOptions.js +3 -1
  96. package/dist/workspace/WorkspaceCreateOptions.js.map +1 -1
  97. package/dist/workspace/WorkspaceCreateProjectOptions.d.ts +3 -0
  98. package/dist/workspace/WorkspaceCreateProjectOptions.js +3 -1
  99. package/dist/workspace/WorkspaceCreateProjectOptions.js.map +1 -1
  100. package/dist/workspace/WorkspaceDependencies.d.ts +26 -19
  101. package/dist/workspace/WorkspaceDependencies.js +27 -9
  102. package/dist/workspace/WorkspaceDependencies.js.map +1 -1
  103. package/dist/workspace/WorkspaceDependenciesFromWorkspaceOptions.d.ts +8 -0
  104. package/dist/workspace/WorkspaceDependenciesFromWorkspaceOptions.js +5 -0
  105. package/dist/workspace/WorkspaceDependenciesFromWorkspaceOptions.js.map +1 -0
  106. package/dist/workspace/WorkspaceDependenciesGetVersionsOptions.d.ts +6 -0
  107. package/dist/workspace/WorkspaceDependenciesGetVersionsOptions.js +5 -0
  108. package/dist/workspace/WorkspaceDependenciesGetVersionsOptions.js.map +1 -0
  109. package/dist/workspace/WorkspaceDependency.d.ts +14 -0
  110. package/dist/workspace/WorkspaceDependency.js +3 -0
  111. package/dist/workspace/WorkspaceDependency.js.map +1 -0
  112. package/dist/workspace/WorkspaceDependencyProject.d.ts +11 -0
  113. package/dist/workspace/WorkspaceDependencyProject.js +5 -0
  114. package/dist/workspace/WorkspaceDependencyProject.js.map +1 -0
  115. package/dist/workspace/WorkspaceError.d.ts +5 -2
  116. package/dist/workspace/WorkspaceError.js +10 -3
  117. package/dist/workspace/WorkspaceError.js.map +1 -1
  118. package/dist/workspace/WorkspaceFindAndReadOptions.d.ts +6 -0
  119. package/dist/workspace/WorkspaceFindAndReadOptions.js +5 -0
  120. package/dist/workspace/WorkspaceFindAndReadOptions.js.map +1 -0
  121. package/dist/workspace/WorkspaceOptions.d.ts +4 -4
  122. package/dist/workspace/WorkspaceOptions.js.map +1 -1
  123. package/dist/workspace/{WorkspaceOptionsProjectOptions.d.ts → WorkspaceOptionsProject.d.ts} +4 -1
  124. package/dist/workspace/WorkspaceOptionsProject.js +3 -0
  125. package/dist/workspace/WorkspaceOptionsProject.js.map +1 -0
  126. package/dist/workspace/WorkspacePackageJson.d.ts +3 -0
  127. package/dist/workspace/WorkspacePackageJson.js.map +1 -1
  128. package/dist/workspace/WorkspaceProjectGlobs.d.ts +3 -0
  129. package/dist/workspace/WorkspaceProjectGlobs.js +3 -1
  130. package/dist/workspace/WorkspaceProjectGlobs.js.map +1 -1
  131. package/dist/workspace/WorkspaceProjects.d.ts +3 -0
  132. package/dist/workspace/WorkspaceProjects.js.map +1 -1
  133. package/dist/workspace/WorkspaceRepository.d.ts +4 -1
  134. package/dist/workspace/WorkspaceRepository.js +3 -1
  135. package/dist/workspace/WorkspaceRepository.js.map +1 -1
  136. package/dist/workspace/WorkspaceUpdateOptions.d.ts +3 -0
  137. package/dist/workspace/WorkspaceUpdateOptions.js +3 -1
  138. package/dist/workspace/WorkspaceUpdateOptions.js.map +1 -1
  139. package/dist/workspace/internals/compareProjectPath.d.ts +2 -0
  140. package/dist/workspace/internals/compareProjectPath.js +10 -0
  141. package/dist/workspace/internals/compareProjectPath.js.map +1 -0
  142. package/dist/workspace/internals/compareWorkspaceDependencyProjectName.d.ts +2 -0
  143. package/dist/workspace/internals/compareWorkspaceDependencyProjectName.js +10 -0
  144. package/dist/workspace/internals/compareWorkspaceDependencyProjectName.js.map +1 -0
  145. package/dist/workspace/internals/getRepositoryBranches.js +6 -0
  146. package/dist/workspace/internals/getRepositoryBranches.js.map +1 -1
  147. package/dist/workspace/internals/getRepositoryUrl.js +0 -1
  148. package/dist/workspace/internals/getRepositoryUrl.js.map +1 -1
  149. package/dist/workspace/internals.d.ts +2 -0
  150. package/dist/workspace/internals.js +2 -0
  151. package/dist/workspace/internals.js.map +1 -1
  152. package/dist/workspace/saveProjectConfig.d.ts +8 -0
  153. package/dist/workspace/saveProjectConfig.js +5 -1
  154. package/dist/workspace/saveProjectConfig.js.map +1 -1
  155. package/dist/workspace/saveWorkspaceConfig.d.ts +8 -0
  156. package/dist/workspace/saveWorkspaceConfig.js +5 -1
  157. package/dist/workspace/saveWorkspaceConfig.js.map +1 -1
  158. package/dist/workspace.d.ts +12 -0
  159. package/dist/workspace.js +12 -0
  160. package/dist/workspace.js.map +1 -1
  161. package/package.json +10 -10
  162. package/src/commands/create-project/CreateProject.tsx +2 -2
  163. package/src/commands/create-project/CreateProjectInput.ts +1 -1
  164. package/src/commands/create-project/createProjectCommand.tsx +1 -5
  165. package/src/commands/create-project/runCreateProject.ts +4 -17
  166. package/src/commands/create-workspace/CreateWorkspace.tsx +8 -6
  167. package/src/commands/create-workspace/createWorkspaceCommand.tsx +1 -14
  168. package/src/commands/create-workspace/runCreateWorkspace.ts +4 -16
  169. package/src/commands/internals/CommandStatus.ts +1 -0
  170. package/src/commands/internals.ts +1 -0
  171. package/src/commands/update-workspace/UpdateWorkspace.tsx +1 -1
  172. package/src/commands/update-workspace/updateWorkspaceCommand.tsx +1 -5
  173. package/src/template/CarsonTemplate.ts +1 -2
  174. package/src/template/CarsonTemplateConfig.ts +1 -1
  175. package/src/template/CarsonTemplateError.ts +19 -0
  176. package/src/template/TemplateAttributes.ts +2 -1
  177. package/src/template/TemplateRender.ts +6 -2
  178. package/src/template/TemplateRenders.ts +1 -1
  179. package/src/template/applyTemplateRenders.ts +40 -4
  180. package/src/template/internals/TemplateRenderSnapshot.ts +5 -0
  181. package/src/template/internals/deleteUsingTemplateRender.ts +21 -2
  182. package/src/template/internals/insertUsingTemplateRender.ts +11 -1
  183. package/src/template/internals/mergeUsingTemplateRender.ts +11 -1
  184. package/src/template/internals/parseCarsonTemplateId.ts +5 -1
  185. package/src/template/internals/readCarsonTemplate.ts +4 -1
  186. package/src/template/internals/saveTemplateRenderSnapshots.ts +3 -2
  187. package/src/template/internals/uninsertUsingTemplateRender.ts +11 -1
  188. package/src/template/internals/unmerge.ts +1 -1
  189. package/src/template/internals/unmergeUsingTemplateRender.ts +11 -1
  190. package/src/template/renderCarsonTemplate.ts +28 -7
  191. package/src/template.ts +1 -0
  192. package/src/workspace/Project.ts +16 -4
  193. package/src/workspace/ProjectConfig.ts +3 -0
  194. package/src/workspace/ProjectCreateOptions.ts +3 -0
  195. package/src/workspace/ProjectError.ts +5 -0
  196. package/src/workspace/ProjectOptions.ts +1 -1
  197. package/src/workspace/ProjectUpdateOptions.ts +3 -0
  198. package/src/workspace/Workspace.ts +125 -42
  199. package/src/workspace/WorkspaceConfig.ts +3 -0
  200. package/src/workspace/WorkspaceCreateOptions.ts +3 -0
  201. package/src/workspace/WorkspaceCreateProjectOptions.ts +3 -0
  202. package/src/workspace/WorkspaceDependencies.ts +30 -27
  203. package/src/workspace/WorkspaceDependenciesFromWorkspaceOptions.ts +8 -0
  204. package/src/workspace/WorkspaceDependenciesGetVersionsOptions.ts +6 -0
  205. package/src/workspace/WorkspaceDependency.ts +18 -0
  206. package/src/workspace/WorkspaceDependencyProject.ts +13 -0
  207. package/src/workspace/WorkspaceError.ts +10 -1
  208. package/src/workspace/WorkspaceFindAndReadOptions.ts +6 -0
  209. package/src/workspace/WorkspaceOptions.ts +4 -4
  210. package/src/workspace/{WorkspaceOptionsProjectOptions.ts → WorkspaceOptionsProject.ts} +4 -1
  211. package/src/workspace/WorkspacePackageJson.ts +3 -0
  212. package/src/workspace/WorkspaceProjectGlobs.ts +3 -0
  213. package/src/workspace/WorkspaceProjects.ts +3 -0
  214. package/src/workspace/WorkspaceRepository.ts +4 -1
  215. package/src/workspace/WorkspaceUpdateOptions.ts +3 -0
  216. package/src/workspace/internals/compareProjectPath.ts +14 -0
  217. package/src/workspace/internals/compareWorkspaceDependencyProjectName.ts +14 -0
  218. package/src/workspace/internals/getRepositoryBranches.ts +8 -0
  219. package/src/workspace/internals/getRepositoryUrl.ts +0 -1
  220. package/src/workspace/internals.ts +2 -0
  221. package/src/workspace/saveProjectConfig.ts +8 -0
  222. package/src/workspace/saveWorkspaceConfig.ts +8 -0
  223. package/src/workspace.ts +12 -0
  224. package/dist/workspace/WorkspaceOptionsProjectOptions.js +0 -3
  225. package/dist/workspace/WorkspaceOptionsProjectOptions.js.map +0 -1
@@ -0,0 +1,18 @@
1
+ import {type WorkspaceDependencyProject} from './WorkspaceDependencyProject.js';
2
+
3
+ /**
4
+ * Dependency is an external piece of software (e.g. a package) that is installed in a {@link Workspace | a workspace} and usually required by one or more of its {@link Project | projects}.
5
+ */
6
+ export type WorkspaceDependency = {
7
+ /** Dependency name. */
8
+ name: string;
9
+
10
+ /** List of SemVer version ranges of the dependency that are installed in the workspace. */
11
+ versions: string[];
12
+
13
+ /** List of exact versions of the dependency that are installed in the workspace. */
14
+ exactVersions: string[];
15
+
16
+ /** Collection of projects that require the dependency. */
17
+ projects: WorkspaceDependencyProject[];
18
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Type alias for {@link WorkspaceDependency.projects | WorkspaceDependency.projects} property.
3
+ */
4
+ export type WorkspaceDependencyProject = {
5
+ /** Project name. */
6
+ name: string;
7
+
8
+ /** SemVer version range of the dependency that is actually is actually required by the project. */
9
+ version: string;
10
+
11
+ /** Exact version of the dependency that is actually is actually required by the project. */
12
+ exactVersion: string;
13
+ };
@@ -1,15 +1,24 @@
1
1
  import {createCustomErrorWithData} from '@jakubmazanec/error';
2
2
  import {type ZodIssue} from 'zod';
3
3
 
4
+ /**
5
+ * A subclass of `Error` that indicates a workspace failure.
6
+ */
4
7
  export const WorkspaceError = createCustomErrorWithData(
5
8
  'WorkspaceError',
6
9
  {
7
- // MISSING_NAME_FIELD: 'No "name" field in file "{0}".',
8
10
  INVALID_PACKAGE_JSON: 'Invalid package.json file "{0}".',
9
11
  INVALID_WORKSPACE_CONFIG: 'Invalid workspace config file "{0}".',
10
12
  NO_SUCH_WORKSPACE_PATH: 'Workspace path "{0}" doesn\'t exist.',
13
+ NO_WORKSPACE_FOUND: 'No workspace was found at path "{0}".',
11
14
  PATH_MISMATCH:
12
15
  'In a single-project workspace, the workspace path must be the same as the project path.',
16
+ WORKSPACE_PATH_NOT_EMPTY: 'Workspace path "{0}" must be an empty directory.',
17
+ MISSING_CARSON_TEMPLATE_ID: 'Workspace config "{0}" is missing the Carson template ID.',
18
+
19
+ DUPLICATE_PROJECT_NAME: 'Workspace already contains project with name "{0}"',
20
+ DUPLICATE_PROJECT_PATH: 'Workspace already contains project with path "{0}"',
21
+ TOO_MANY_PROJECTS: "Workspace can't contain more projects.",
13
22
  },
14
23
  class WorkspaceErrorData {
15
24
  path?: string;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * {@link Workspace.findAndRead | Workspace.findAndRead} options parameter.
3
+ */
4
+ export type WorkspaceFindAndReadOptions = {
5
+ throwIfNotFound?: boolean;
6
+ };
@@ -2,18 +2,18 @@ import {type PackageJson} from '@jakubmazanec/zod-utils';
2
2
 
3
3
  import {type WorkspaceConfig} from './WorkspaceConfig.js';
4
4
  import {type WorkspaceError} from './WorkspaceError.js';
5
- import {type WorkspaceOptionsProjectOptions} from './WorkspaceOptionsProjectOptions.js';
5
+ import {type WorkspaceOptionsProject} from './WorkspaceOptionsProject.js';
6
6
  import {type WorkspaceRepository} from './WorkspaceRepository.js';
7
7
 
8
8
  /**
9
- * New workspace options.
9
+ * {@link Workspace.constructor | Workspace constructor} options parameter.
10
10
  */
11
11
  export type WorkspaceOptions<M extends boolean> = M extends true
12
12
  ? {
13
13
  path: string;
14
14
  isMultiProject?: M;
15
15
  projectGlobs?: string[];
16
- projects?: WorkspaceOptionsProjectOptions[];
16
+ projects?: WorkspaceOptionsProject[];
17
17
  config?: WorkspaceConfig;
18
18
  packageJson?: PackageJson;
19
19
  repository?: WorkspaceRepository;
@@ -22,7 +22,7 @@ export type WorkspaceOptions<M extends boolean> = M extends true
22
22
  : {
23
23
  path: string;
24
24
  isMultiProject?: M;
25
- projects?: [WorkspaceOptionsProjectOptions];
25
+ projects?: [WorkspaceOptionsProject];
26
26
  config?: WorkspaceConfig;
27
27
  repository?: WorkspaceRepository;
28
28
  errors?: Array<InstanceType<typeof WorkspaceError>>;
@@ -2,7 +2,10 @@ import {type PackageJson} from '@jakubmazanec/zod-utils';
2
2
 
3
3
  import {type ProjectConfig} from './ProjectConfig.js';
4
4
 
5
- export type WorkspaceOptionsProjectOptions = {
5
+ /**
6
+ * Type alias for {@link WorkspaceOptions.projects | WorkspaceOptions.projects} property.
7
+ */
8
+ export type WorkspaceOptionsProject = {
6
9
  path: string;
7
10
  config?: ProjectConfig;
8
11
  packageJson?: PackageJson;
@@ -1,3 +1,6 @@
1
1
  import {type PackageJson} from '@jakubmazanec/zod-utils';
2
2
 
3
+ /**
4
+ * Type alias for {@link Workspace.packageJson | Workspace.packageJson} property.
5
+ */
3
6
  export type WorkspacePackageJson<M extends boolean> = M extends true ? PackageJson : null;
@@ -1 +1,4 @@
1
+ /**
2
+ * Type alias for {@link Workspace.projectGlobs | Workspace.projectGlobs} property.
3
+ */
1
4
  export type WorkspaceProjectGlobs<M extends boolean> = M extends true ? string[] : null;
@@ -1,3 +1,6 @@
1
1
  import {type Project} from './Project.js';
2
2
 
3
+ /**
4
+ * Type alias for {@link Workspace.projects | Workspace.projects} property.
5
+ */
3
6
  export type WorkspaceProjects<M extends boolean> = Array<Project<M>>; // TODO: should be `M extends true ? Array<Project<M>> : [Project<M>?]`; change when this is fixed: https://github.com/microsoft/TypeScript/issues/54302
@@ -1,4 +1,7 @@
1
+ /**
2
+ * A workspace repository.
3
+ */
1
4
  export type WorkspaceRepository = {
2
5
  branches: string[];
3
- url: string;
6
+ url?: string;
4
7
  };
@@ -1,3 +1,6 @@
1
+ /**
2
+ * {@link Workspace.update | Workspace.update} options parameter.
3
+ */
1
4
  export type WorkspaceUpdateOptions = {
2
5
  args: Record<string, unknown>;
3
6
  };
@@ -0,0 +1,14 @@
1
+ import {type Project} from '../Project.js';
2
+
3
+ export function compareProjectPath<M extends boolean = true>(
4
+ projectA: Project<M>,
5
+ projectB: Project<M>,
6
+ ) {
7
+ if (projectA.path < projectB.path) {
8
+ return -1;
9
+ } else if (projectA.path > projectB.path) {
10
+ return 1;
11
+ }
12
+
13
+ return 0;
14
+ }
@@ -0,0 +1,14 @@
1
+ import {type WorkspaceDependencyProject} from '../WorkspaceDependencyProject.js';
2
+
3
+ export function compareWorkspaceDependencyProjectName(
4
+ projectA: WorkspaceDependencyProject,
5
+ projectB: WorkspaceDependencyProject,
6
+ ) {
7
+ if (projectA.name < projectB.name) {
8
+ return -1;
9
+ } else if (projectA.name > projectB.name) {
10
+ return 1;
11
+ }
12
+
13
+ return 0;
14
+ }
@@ -17,6 +17,14 @@ export async function getRepositoryBranches(repositoryPath: string): Promise<str
17
17
  repositoryBranches = branchSummary.all.map((branch) =>
18
18
  branch.replace(REMOTE_NAME_PREFIX_REGEXP, ''),
19
19
  );
20
+
21
+ if (!repositoryBranches.length) {
22
+ branchSummary = await git.branch(['-a']);
23
+
24
+ repositoryBranches = branchSummary.all.map((branch) =>
25
+ branch.replace(REMOTE_NAME_PREFIX_REGEXP, ''),
26
+ );
27
+ }
20
28
  } catch (error) {
21
29
  // no-op
22
30
  }
@@ -4,7 +4,6 @@ export async function getRepositoryUrl(repositoryPath: string): Promise<string |
4
4
  let repositoryUrl: string | undefined;
5
5
 
6
6
  try {
7
- // load git repo
8
7
  let git = simpleGit({
9
8
  baseDir: repositoryPath,
10
9
  binary: 'git',
@@ -1,4 +1,6 @@
1
+ export * from './internals/compareProjectPath.js';
1
2
  export * from './internals/compareSemver.js';
3
+ export * from './internals/compareWorkspaceDependencyProjectName.js';
2
4
  export * from './internals/getPackageJsonWorkspaces.js';
3
5
  export * from './internals/getRepositoryBranches.js';
4
6
  export * from './internals/getRepositoryUrl.js';
@@ -5,11 +5,19 @@ import {type ProjectConfig} from './ProjectConfig.js';
5
5
  import {CARSON_CONFIG_DIRECTORY, PROJECT_CONFIG_FILENAME} from '../constants.js';
6
6
  import {prettify} from '../template/internals.js';
7
7
 
8
+ /**
9
+ * {@link saveProjectConfig} options parameter.
10
+ */
8
11
  export type SaveProjectConfigOptions = {
9
12
  projectPath: string;
10
13
  projectConfig: ProjectConfig;
11
14
  };
12
15
 
16
+ /**
17
+ * Saves project configuration to the config file.
18
+ *
19
+ * @param options Options.
20
+ */
13
21
  export async function saveProjectConfig({projectPath, projectConfig}: SaveProjectConfigOptions) {
14
22
  await fs.ensureDir(path.join(projectPath, CARSON_CONFIG_DIRECTORY));
15
23
 
@@ -5,11 +5,19 @@ import {type WorkspaceConfig} from './WorkspaceConfig.js';
5
5
  import {CARSON_CONFIG_DIRECTORY, WORKSPACE_CONFIG_FILENAME} from '../constants.js';
6
6
  import {prettify} from '../template/internals.js';
7
7
 
8
+ /**
9
+ * {@link saveWorkspaceConfig} options parameter.
10
+ */
8
11
  export type SaveWorkspaceConfigOptions = {
9
12
  workspacePath: string;
10
13
  workspaceConfig: WorkspaceConfig;
11
14
  };
12
15
 
16
+ /**
17
+ * Saves workspace configuration to the config file.
18
+ *
19
+ * @param options Options.
20
+ */
13
21
  export async function saveWorkspaceConfig({
14
22
  workspacePath,
15
23
  workspaceConfig,
package/src/workspace.ts CHANGED
@@ -1,10 +1,22 @@
1
1
  export * from './workspace/Project.js';
2
2
  export * from './workspace/ProjectConfig.js';
3
+ export * from './workspace/ProjectCreateOptions.js';
3
4
  export * from './workspace/ProjectError.js';
5
+ export * from './workspace/ProjectOptions.js';
6
+ export * from './workspace/ProjectUpdateOptions.js';
4
7
  export * from './workspace/saveProjectConfig.js';
5
8
  export * from './workspace/saveWorkspaceConfig.js';
6
9
  export * from './workspace/Workspace.js';
7
10
  export * from './workspace/WorkspaceConfig.js';
11
+ export * from './workspace/WorkspaceCreateOptions.js';
12
+ export * from './workspace/WorkspaceCreateProjectOptions.js';
8
13
  export * from './workspace/WorkspaceDependencies.js';
9
14
  export * from './workspace/WorkspaceError.js';
15
+ export * from './workspace/WorkspaceFindAndReadOptions.js';
16
+ export * from './workspace/WorkspaceOptions.js';
17
+ export * from './workspace/WorkspaceOptionsProject.js';
18
+ export * from './workspace/WorkspacePackageJson.js';
19
+ export * from './workspace/WorkspaceProjectGlobs.js';
20
+ export * from './workspace/WorkspaceProjects.js';
10
21
  export * from './workspace/WorkspaceRepository.js';
22
+ export * from './workspace/WorkspaceUpdateOptions.js';
@@ -1,3 +0,0 @@
1
- export { };
2
-
3
- //# sourceMappingURL=WorkspaceOptionsProjectOptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/workspace/WorkspaceOptionsProjectOptions.ts"],"sourcesContent":["import {type PackageJson} from '@jakubmazanec/zod-utils';\n\nimport {type ProjectConfig} from './ProjectConfig.js';\n\nexport type WorkspaceOptionsProjectOptions = {\n path: string;\n config?: ProjectConfig;\n packageJson?: PackageJson;\n};\n"],"names":[],"mappings":"AAAA,WAQE"}