fix(project): Fixed minor formatting issues and improved code consistency.

This commit is contained in:
Philipp Kunz 2024-11-05 00:34:56 +01:00
parent 125be257d6
commit 750f081c03
11 changed files with 59 additions and 39 deletions

View File

@ -1,5 +1,12 @@
# Changelog # Changelog
## 2024-11-05 - 1.7.2 - fix(project)
Fixed minor formatting issues and improved code consistency.
- Added missing semicolons for consistency
- Improved indentation in various files for better readability
- Corrected usage of newlines and whitespace across the codebase
## 2024-11-05 - 1.7.1 - fix(core) ## 2024-11-05 - 1.7.1 - fix(core)
Implement error handling for missing publish module directories Implement error handling for missing publish module directories

View File

@ -172,11 +172,13 @@ Follow these steps:
```typescript ```typescript
import { runCli } from '@git.zone/tspublish'; import { runCli } from '@git.zone/tspublish';
runCli().then(() => { runCli()
console.log('Publishing completed successfully'); .then(() => {
}).catch((error) => { console.log('Publishing completed successfully');
console.error('Error during publishing:', error); })
}); .catch((error) => {
console.error('Error during publishing:', error);
});
``` ```
3. Execute your CLI script: 3. Execute your CLI script:

View File

@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@git.zone/tspublish', name: '@git.zone/tspublish',
version: '1.7.1', version: '1.7.2',
description: 'A tool to publish multiple, concise, and small packages from monorepos, specifically for TypeScript projects within a git environment.' description: 'A tool to publish multiple, concise, and small packages from monorepos, specifically for TypeScript projects within a git environment.'
} }

View File

@ -28,7 +28,7 @@ export class PublishModule {
public async init() { public async init() {
this.options.packageSubFolderFullPath = plugins.path.join( this.options.packageSubFolderFullPath = plugins.path.join(
this.options.monoRepoDir, this.options.monoRepoDir,
this.options.packageSubFolder this.options.packageSubFolder,
); );
// check requirements // check requirements
@ -36,10 +36,12 @@ export class PublishModule {
throw new Error('subFolder must start with "ts"'); throw new Error('subFolder must start with "ts"');
} }
this.options.tsPublishJson = plugins.smartfile.fs.toObjectSync( this.options.tsPublishJson = plugins.smartfile.fs.toObjectSync(
plugins.path.join(this.options.packageSubFolderFullPath, 'tspublish.json') plugins.path.join(this.options.packageSubFolderFullPath, 'tspublish.json'),
); );
const monoRepoPackageJson = JSON.parse( const monoRepoPackageJson = JSON.parse(
plugins.smartfile.fs.toStringSync(plugins.path.join(this.options.monoRepoDir, 'package.json')) plugins.smartfile.fs.toStringSync(
plugins.path.join(this.options.monoRepoDir, 'package.json'),
),
); );
this.options.dependencies = { this.options.dependencies = {
...this.options.dependencies, ...this.options.dependencies,
@ -67,7 +69,10 @@ export class PublishModule {
const availableVersions = packageInfo.allVersions.map((versionArg) => versionArg.version); const availableVersions = packageInfo.allVersions.map((versionArg) => versionArg.version);
logger.log('info', `available versions are: ${availableVersions.toString()}`); logger.log('info', `available versions are: ${availableVersions.toString()}`);
if (availableVersions.includes(this.options.version)) { if (availableVersions.includes(this.options.version)) {
logger.log('error', `package ${this.options.name} already exists with version ${this.options.version}`); logger.log(
'error',
`package ${this.options.name} already exists with version ${this.options.version}`,
);
process.exit(1); process.exit(1);
} }
} }
@ -84,11 +89,12 @@ export class PublishModule {
public async createTsconfigJson() { public async createTsconfigJson() {
const originalTsConfig = plugins.smartfile.fs.toObjectSync( const originalTsConfig = plugins.smartfile.fs.toObjectSync(
plugins.path.join(paths.cwd, 'tsconfig.json') plugins.path.join(paths.cwd, 'tsconfig.json'),
); );
if (originalTsConfig?.compilerOptions?.paths) { if (originalTsConfig?.compilerOptions?.paths) {
for (const path of Object.keys(originalTsConfig.compilerOptions.paths)) { for (const path of Object.keys(originalTsConfig.compilerOptions.paths)) {
originalTsConfig.compilerOptions.paths[path][0] = `.${originalTsConfig.compilerOptions.paths[path][0]}`; originalTsConfig.compilerOptions.paths[path][0] =
`.${originalTsConfig.compilerOptions.paths[path][0]}`;
} }
} }
const tsconfigJson = { const tsconfigJson = {
@ -102,9 +108,7 @@ export class PublishModule {
verbatimModuleSyntax: true, verbatimModuleSyntax: true,
paths: originalTsConfig?.compilerOptions?.paths, paths: originalTsConfig?.compilerOptions?.paths,
}, },
exclude: [ exclude: ['dist_*/**/*.d.ts'],
'dist_*/**/*.d.ts',
],
}; };
return JSON.stringify(tsconfigJson, null, 2); return JSON.stringify(tsconfigJson, null, 2);
} }
@ -146,7 +150,7 @@ export class PublishModule {
public async createPublishModuleDir() { public async createPublishModuleDir() {
this.options.publishModDirFullPath = plugins.path.join( this.options.publishModDirFullPath = plugins.path.join(
this.options.monoRepoDir, this.options.monoRepoDir,
`dist_publish_${this.options.packageSubFolder}` `dist_publish_${this.options.packageSubFolder}`,
); );
await plugins.smartfile.fs.ensureEmptyDir(this.options.publishModDirFullPath); await plugins.smartfile.fs.ensureEmptyDir(this.options.publishModDirFullPath);
@ -154,7 +158,7 @@ export class PublishModule {
const packageJson = await plugins.smartfile.SmartFile.fromString( const packageJson = await plugins.smartfile.SmartFile.fromString(
plugins.path.join(this.options.publishModDirFullPath, 'package.json'), plugins.path.join(this.options.publishModDirFullPath, 'package.json'),
await this.createPackageJson(), await this.createPackageJson(),
'utf8' 'utf8',
); );
await packageJson.write(); await packageJson.write();
@ -162,26 +166,26 @@ export class PublishModule {
const originalTsConfigJson = await plugins.smartfile.SmartFile.fromString( const originalTsConfigJson = await plugins.smartfile.SmartFile.fromString(
plugins.path.join(this.options.publishModDirFullPath, 'tsconfig.json'), plugins.path.join(this.options.publishModDirFullPath, 'tsconfig.json'),
await this.createTsconfigJson(), await this.createTsconfigJson(),
'utf8' 'utf8',
); );
await originalTsConfigJson.write(); await originalTsConfigJson.write();
// ts folder // ts folder
await plugins.smartfile.fs.copy( await plugins.smartfile.fs.copy(
this.options.packageSubFolderFullPath, this.options.packageSubFolderFullPath,
plugins.path.join(this.options.publishModDirFullPath, this.options.packageSubFolder) plugins.path.join(this.options.publishModDirFullPath, this.options.packageSubFolder),
); );
// readme // readme
await plugins.smartfile.fs.copy( await plugins.smartfile.fs.copy(
plugins.path.join(this.options.packageSubFolderFullPath, 'readme.md'), plugins.path.join(this.options.packageSubFolderFullPath, 'readme.md'),
plugins.path.join(this.options.publishModDirFullPath, 'readme.md') plugins.path.join(this.options.publishModDirFullPath, 'readme.md'),
); );
// license // license
await plugins.smartfile.fs.copy( await plugins.smartfile.fs.copy(
plugins.path.join(this.options.monoRepoDir, 'license'), plugins.path.join(this.options.monoRepoDir, 'license'),
plugins.path.join(this.options.publishModDirFullPath, 'license') plugins.path.join(this.options.publishModDirFullPath, 'license'),
); );
} }
@ -203,7 +207,7 @@ export class PublishModule {
await smartshellInstance.exec( await smartshellInstance.exec(
`cd ${this.options.publishModDirFullPath} && pnpm publish ${ `cd ${this.options.publishModDirFullPath} && pnpm publish ${
registryAccessLevel === 'public' ? '--access public' : '' registryAccessLevel === 'public' ? '--access public' : ''
} --no-git-checks --registry https://${registryUrl}` } --no-git-checks --registry https://${registryUrl}`,
); );
} }
} }

View File

@ -7,11 +7,14 @@ import { PublishModule } from './classes.publishmodule.js';
export class TsPublish { export class TsPublish {
constructor() {} constructor() {}
public async publish (monorepoDirArg: string) { public async publish(monorepoDirArg: string) {
const publishModules = await this.getModuleSubDirs(monorepoDirArg); const publishModules = await this.getModuleSubDirs(monorepoDirArg);
logger.log('info', `Found ${Object.keys(publishModules).length} publish modules:`); logger.log('info', `Found ${Object.keys(publishModules).length} publish modules:`);
for (const publishModule of Object.keys(publishModules)) { for (const publishModule of Object.keys(publishModules)) {
logger.log('info', `Publishing module: ${publishModule} -> ${publishModules[publishModule].name}`); logger.log(
'info',
`Publishing module: ${publishModule} -> ${publishModules[publishModule].name}`,
);
} }
for (const publishModule of Object.keys(publishModules)) { for (const publishModule of Object.keys(publishModules)) {
const publishModuleInstance = new PublishModule({ const publishModuleInstance = new PublishModule({
@ -25,9 +28,9 @@ export class TsPublish {
} }
} }
public async getModuleSubDirs (dirArg: string) { public async getModuleSubDirs(dirArg: string) {
const subDirs = await plugins.smartfile.fs.listFolders(dirArg); const subDirs = await plugins.smartfile.fs.listFolders(dirArg);
const publishModules: {[key: string]: interfaces.ITsPublishJson} = {}; const publishModules: { [key: string]: interfaces.ITsPublishJson } = {};
for (const subDir of subDirs) { for (const subDir of subDirs) {
if (!subDir.startsWith('ts')) { if (!subDir.startsWith('ts')) {
continue; continue;
@ -38,7 +41,9 @@ export class TsPublish {
continue; continue;
} }
logger.log('info', `found publish module: ${subDir}`); logger.log('info', `found publish module: ${subDir}`);
publishModules[subDir] = JSON.parse(plugins.smartfile.fs.toStringSync(plugins.path.join(subDir, 'tspublish.json'))); publishModules[subDir] = JSON.parse(
plugins.smartfile.fs.toStringSync(plugins.path.join(subDir, 'tspublish.json')),
);
} }
logger.log('ok', `found ${publishModules.length} publish modules`); logger.log('ok', `found ${publishModules.length} publish modules`);
return publishModules; return publishModules;

View File

@ -1,10 +1,10 @@
import * as paths from './paths.js'; import * as paths from './paths.js';
import { TsPublish } from './classes.tspublish.js'; import { TsPublish } from './classes.tspublish.js';
export * from './classes.tspublish.js' export * from './classes.tspublish.js';
export const runCli = async () => { export const runCli = async () => {
console.log('Starting tspublish...'); console.log('Starting tspublish...');
const tspublish = new TsPublish(); const tspublish = new TsPublish();
await tspublish.publish(paths.cwd); await tspublish.publish(paths.cwd);
} };

View File

@ -2,6 +2,8 @@ import * as plugins from './plugins.js';
export const cwd = process.cwd(); export const cwd = process.cwd();
export const packageDir = plugins.path.join(plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), '..'); export const packageDir = plugins.path.join(
plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url),
'..',
);
export const nogitDir = plugins.path.join(packageDir, '.nogit'); export const nogitDir = plugins.path.join(packageDir, '.nogit');

View File

@ -1,8 +1,6 @@
// node native scope // node native scope
import * as path from 'path'; import * as path from 'path';
export { export { path };
path,
}
// @push.rocks scope // @push.rocks scope
import * as smartfile from '@push.rocks/smartfile'; import * as smartfile from '@push.rocks/smartfile';

View File

@ -7,6 +7,8 @@
"moduleResolution": "NodeNext", "moduleResolution": "NodeNext",
"esModuleInterop": true, "esModuleInterop": true,
"verbatimModuleSyntax": true, "verbatimModuleSyntax": true,
"baseUrl": ".",
"paths": {}
}, },
"exclude": [ "exclude": [
"dist_*/**/*.d.ts" "dist_*/**/*.d.ts"