fix(project): Fixed minor formatting issues and improved code consistency.
This commit is contained in:
@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
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.'
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ export class PublishModule {
|
||||
public async init() {
|
||||
this.options.packageSubFolderFullPath = plugins.path.join(
|
||||
this.options.monoRepoDir,
|
||||
this.options.packageSubFolder
|
||||
this.options.packageSubFolder,
|
||||
);
|
||||
|
||||
// check requirements
|
||||
@ -36,10 +36,12 @@ export class PublishModule {
|
||||
throw new Error('subFolder must start with "ts"');
|
||||
}
|
||||
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(
|
||||
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,
|
||||
@ -67,7 +69,10 @@ export class PublishModule {
|
||||
const availableVersions = packageInfo.allVersions.map((versionArg) => versionArg.version);
|
||||
logger.log('info', `available versions are: ${availableVersions.toString()}`);
|
||||
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);
|
||||
}
|
||||
}
|
||||
@ -84,11 +89,12 @@ export class PublishModule {
|
||||
|
||||
public async createTsconfigJson() {
|
||||
const originalTsConfig = plugins.smartfile.fs.toObjectSync(
|
||||
plugins.path.join(paths.cwd, 'tsconfig.json')
|
||||
plugins.path.join(paths.cwd, 'tsconfig.json'),
|
||||
);
|
||||
if (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 = {
|
||||
@ -102,9 +108,7 @@ export class PublishModule {
|
||||
verbatimModuleSyntax: true,
|
||||
paths: originalTsConfig?.compilerOptions?.paths,
|
||||
},
|
||||
exclude: [
|
||||
'dist_*/**/*.d.ts',
|
||||
],
|
||||
exclude: ['dist_*/**/*.d.ts'],
|
||||
};
|
||||
return JSON.stringify(tsconfigJson, null, 2);
|
||||
}
|
||||
@ -146,7 +150,7 @@ export class PublishModule {
|
||||
public async createPublishModuleDir() {
|
||||
this.options.publishModDirFullPath = plugins.path.join(
|
||||
this.options.monoRepoDir,
|
||||
`dist_publish_${this.options.packageSubFolder}`
|
||||
`dist_publish_${this.options.packageSubFolder}`,
|
||||
);
|
||||
await plugins.smartfile.fs.ensureEmptyDir(this.options.publishModDirFullPath);
|
||||
|
||||
@ -154,7 +158,7 @@ export class PublishModule {
|
||||
const packageJson = await plugins.smartfile.SmartFile.fromString(
|
||||
plugins.path.join(this.options.publishModDirFullPath, 'package.json'),
|
||||
await this.createPackageJson(),
|
||||
'utf8'
|
||||
'utf8',
|
||||
);
|
||||
await packageJson.write();
|
||||
|
||||
@ -162,26 +166,26 @@ export class PublishModule {
|
||||
const originalTsConfigJson = await plugins.smartfile.SmartFile.fromString(
|
||||
plugins.path.join(this.options.publishModDirFullPath, 'tsconfig.json'),
|
||||
await this.createTsconfigJson(),
|
||||
'utf8'
|
||||
'utf8',
|
||||
);
|
||||
await originalTsConfigJson.write();
|
||||
|
||||
// ts folder
|
||||
await plugins.smartfile.fs.copy(
|
||||
this.options.packageSubFolderFullPath,
|
||||
plugins.path.join(this.options.publishModDirFullPath, this.options.packageSubFolder)
|
||||
plugins.path.join(this.options.publishModDirFullPath, this.options.packageSubFolder),
|
||||
);
|
||||
|
||||
// readme
|
||||
await plugins.smartfile.fs.copy(
|
||||
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
|
||||
await plugins.smartfile.fs.copy(
|
||||
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(
|
||||
`cd ${this.options.publishModDirFullPath} && pnpm publish ${
|
||||
registryAccessLevel === 'public' ? '--access public' : ''
|
||||
} --no-git-checks --registry https://${registryUrl}`
|
||||
} --no-git-checks --registry https://${registryUrl}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -7,11 +7,14 @@ import { PublishModule } from './classes.publishmodule.js';
|
||||
export class TsPublish {
|
||||
constructor() {}
|
||||
|
||||
public async publish (monorepoDirArg: string) {
|
||||
public async publish(monorepoDirArg: string) {
|
||||
const publishModules = await this.getModuleSubDirs(monorepoDirArg);
|
||||
logger.log('info', `Found ${Object.keys(publishModules).length} publish modules:`);
|
||||
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)) {
|
||||
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 publishModules: {[key: string]: interfaces.ITsPublishJson} = {};
|
||||
const publishModules: { [key: string]: interfaces.ITsPublishJson } = {};
|
||||
for (const subDir of subDirs) {
|
||||
if (!subDir.startsWith('ts')) {
|
||||
continue;
|
||||
@ -38,9 +41,11 @@ export class TsPublish {
|
||||
continue;
|
||||
}
|
||||
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`);
|
||||
return publishModules;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,10 @@
|
||||
import * as paths from './paths.js';
|
||||
import { TsPublish } from './classes.tspublish.js';
|
||||
|
||||
export * from './classes.tspublish.js'
|
||||
export * from './classes.tspublish.js';
|
||||
|
||||
export const runCli = async () => {
|
||||
console.log('Starting tspublish...');
|
||||
const tspublish = new TsPublish();
|
||||
await tspublish.publish(paths.cwd);
|
||||
}
|
||||
};
|
||||
|
@ -2,4 +2,4 @@ import * as plugins from './plugins.js';
|
||||
import * as commitinfo from './00_commitinfo_data.js';
|
||||
|
||||
export const logger = plugins.smartlog.Smartlog.createForCommitinfo(commitinfo.commitinfo);
|
||||
logger.enableConsole();
|
||||
logger.enableConsole();
|
||||
|
@ -2,6 +2,8 @@ import * as plugins from './plugins.js';
|
||||
|
||||
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');
|
||||
|
||||
|
@ -1,8 +1,6 @@
|
||||
// node native scope
|
||||
import * as path from 'path';
|
||||
export {
|
||||
path,
|
||||
}
|
||||
export { path };
|
||||
|
||||
// @push.rocks scope
|
||||
import * as smartfile from '@push.rocks/smartfile';
|
||||
|
Reference in New Issue
Block a user