From 343ee1ebeaeb90a37c233b184b0a17e78c153845 Mon Sep 17 00:00:00 2001 From: Tristan Menzel Date: Tue, 24 Sep 2024 16:02:17 -0700 Subject: [PATCH] feat: Allow main/module and import/require sections in copy package json to be generated based on configuration input + add missing packages for check-packages --- package.json | 2 +- src/init/check-packages.ts | 2 ++ src/util/copy-package-json-from-config.ts | 11 +++++++---- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 387158f..c0caea4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@makerx/ts-toolkit", - "version": "4.0.0-beta.20", + "version": "4.0.0-beta.21", "description": "This cli facilitates the creation of boilerplate files in a new typescript repo", "repository": "https://github.com/MakerXStudio/ts-toolkit", "type": "module", diff --git a/src/init/check-packages.ts b/src/init/check-packages.ts index 0f83365..5ace355 100644 --- a/src/init/check-packages.ts +++ b/src/init/check-packages.ts @@ -18,6 +18,8 @@ const basePackages: Record = { '@eslint/js': 'latest', '@typescript-eslint/eslint-plugin': 'latest', '@typescript-eslint/parser': 'latest', + 'eslint-config-prettier': 'latest', + 'eslint-plugin-prettier': 'latest', } const nodePackages: Record = { diff --git a/src/util/copy-package-json-from-config.ts b/src/util/copy-package-json-from-config.ts index 1e234f7..143685e 100644 --- a/src/util/copy-package-json-from-config.ts +++ b/src/util/copy-package-json-from-config.ts @@ -5,11 +5,13 @@ import { colorConsole } from '../color-console' import { standardSectionWhitelist } from './copy-package-json' export type ModuleType = 'module' | 'commonjs' +export type ExportType = 'module' | 'commonjs' | 'both' export interface PackageConfig { main?: string srcDir?: string outDir?: string exports?: Record + exportTypes?: ExportType bin?: Record customSections?: string[] packageJsonSource?: string @@ -23,6 +25,7 @@ export const copyPackageJsonFromConfig = (suppliedConfig: PackageConfig) => { outDir: 'dist', moduleType: 'commonjs' as ModuleType, packageJsonSource: 'package.json', + exportTypes: 'both' as ExportType, ...suppliedConfig, } @@ -38,8 +41,8 @@ export const copyPackageJsonFromConfig = (suppliedConfig: PackageConfig) => { // Include all files in the package by default files: ['**'], ...pick(packageJson, ...sectionsToUse), - main: changeExtensions(config.main, 'js'), - module: changeExtensions(config.main, 'mjs'), + main: config.exportTypes !== 'module' ? changeExtensions(config.main, 'js') : undefined, + module: config.exportTypes !== 'commonjs' ? changeExtensions(config.main, 'mjs') : undefined, types: changeExtensions(config.main, 'd.ts'), type: config.moduleType, bin: config.bin && mapObject(config.bin, (key, value) => [key, changeExtensions(value, config.moduleType == 'module' ? 'mjs' : 'js')]), @@ -49,8 +52,8 @@ export const copyPackageJsonFromConfig = (suppliedConfig: PackageConfig) => { key, { types: changeExtensions(value, 'd.ts'), - import: changeExtensions(value, 'mjs'), - require: changeExtensions(value, 'js'), + import: config.exportTypes !== 'commonjs' ? changeExtensions(value, 'mjs') : undefined, + require: config.exportTypes !== 'module' ? changeExtensions(value, 'js') : undefined, }, ]), }