Skip to content

Commit 28da8a9

Browse files
committed
chore: refactor getPackageManagerController yarn-modern
1 parent 24e17eb commit 28da8a9

File tree

2 files changed

+28
-14
lines changed

2 files changed

+28
-14
lines changed

packages/create-amplify/src/package-manager-controller/package_manager_controller_factory.ts

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -188,10 +188,13 @@ export class PackageManagerControllerFactory {
188188
/**
189189
* Copies the template directory to an amplify folder within the projectRoot
190190
*/
191-
generateInitialProjectFiles = async (packageManagerProps: {
192-
name: string;
193-
binaryRunner: string;
194-
}): Promise<void> => {
191+
generateInitialProjectFiles = async (
192+
packageManagerProps: {
193+
name: string;
194+
binaryRunner: string;
195+
},
196+
operate?: (param: string) => Promise<void>
197+
): Promise<void> => {
195198
const targetDir = path.resolve(this.projectRoot, 'amplify');
196199
await this.fsp.mkdir(targetDir, { recursive: true });
197200
await this.fsp.cp(
@@ -206,15 +209,10 @@ export class PackageManagerControllerFactory {
206209
JSON.stringify(packageJsonContent, null, 2)
207210
);
208211

209-
if (packageManagerProps.name === 'yarn-modern') {
210-
try {
211-
await this.fsp.writeFile(path.resolve(targetDir, 'yarn.lock'), '');
212-
console.log(`${targetDir}/yarn.lock created successfully.`);
213-
} catch (error) {
214-
console.error(`Error creating ${targetDir}/${targetDir}`, error);
215-
}
216-
}
217-
218212
await this.initializeTsConfig(targetDir, packageManagerProps);
213+
214+
if (operate) {
215+
await operate(targetDir);
216+
}
219217
};
220218
}

packages/create-amplify/src/package-manager-controller/yarn_modern_package_manager_controller.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import { execa as _execa } from 'execa';
2+
import fsp from 'fs/promises';
3+
import * as path from 'path';
24
import { executeWithDebugLogger } from '../execute_with_logger.js';
35
import {
46
DependencyType,
@@ -12,6 +14,7 @@ import {
1214
export class YarnModernPackageManagerController
1315
implements PackageManagerController
1416
{
17+
private readonly fsp = fsp;
1518
private readonly execa = _execa;
1619
private readonly packageManagerProps = {
1720
name: 'yarn-modern',
@@ -29,6 +32,18 @@ export class YarnModernPackageManagerController
2932
private readonly packageManagerControllerFactory: PackageManagerControllerFactory
3033
) {}
3134

35+
/**
36+
* createLockFile
37+
*/
38+
private async createLockFile(targetDir: string) {
39+
try {
40+
await this.fsp.writeFile(path.resolve(targetDir, 'yarn.lock'), '');
41+
console.log(`${targetDir}/yarn.lock created successfully.`);
42+
} catch (error) {
43+
console.error(`Error creating ${targetDir}/${targetDir}`, error);
44+
}
45+
}
46+
3247
/**
3348
* Installs the given package names as devDependencies
3449
*/
@@ -59,7 +74,8 @@ export class YarnModernPackageManagerController
5974

6075
generateInitialProjectFiles = async () => {
6176
await this.packageManagerControllerFactory.generateInitialProjectFiles(
62-
this.packageManagerProps
77+
this.packageManagerProps,
78+
this.createLockFile
6379
);
6480
};
6581

0 commit comments

Comments
 (0)