@astral/pack 1.0.0 → 1.1.0

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.
package/README.md CHANGED
@@ -109,3 +109,15 @@ module.exports = {
109
109
  ```
110
110
 
111
111
  `@astral/validations` будет иметь после сборки ту же версию, что и основной пакет.
112
+
113
+ ## Удаление свойств package.json
114
+
115
+ Для удаления свойств package.json необходимо использовать `omitPackageJsonProps`:
116
+ ```js
117
+ module.exports = defineConfig({
118
+ ...config,
119
+ omitPackageJsonProps: ['engines'],
120
+ });
121
+ ```
122
+
123
+ Результирующий package.json не будет содержать `engines`.
package/bin.js CHANGED
@@ -2,7 +2,6 @@
2
2
  import { build, checkPackageVersion, createRelease } from './commands';
3
3
  import { ConfigService } from './config';
4
4
  import { CLICommand, parseArgs } from './cli';
5
- console.log('process', process.env.CUSTOM);
6
5
  const start = async () => {
7
6
  const { command, packageVersion } = parseArgs();
8
7
  let configService;
@@ -1,10 +1,19 @@
1
1
  import path from 'path';
2
2
  import fs from 'fs';
3
3
  import { logger } from '../../services';
4
- const omitDevProps = (originPackageJson) => {
5
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
6
- const { scripts, devDependencies, typesVersions, ...packageJson } = originPackageJson;
7
- return packageJson;
4
+ const initOmitProps = ({ omitPackageJsonProps = [] }) => (originPackageJson) => {
5
+ const devProps = [
6
+ 'scripts',
7
+ 'devDependencies',
8
+ 'typesVersions',
9
+ ...omitPackageJsonProps,
10
+ ];
11
+ return Object.entries(originPackageJson).reduce((packageJson, [key, value]) => {
12
+ if (!devProps.includes(key)) {
13
+ packageJson[key] = value;
14
+ }
15
+ return packageJson;
16
+ }, {});
8
17
  };
9
18
  /**
10
19
  * Устанавливает пакетам из releaseGroup одну версию в зависимостях
@@ -60,10 +69,11 @@ const initAdditionalCommonProps = (packageVersion, config) => (originPackageJson
60
69
  });
61
70
  export const generatePackageJson = async ({ packageVersion, originPackageJson }, config) => {
62
71
  logger.progress('Генерация package.json');
72
+ const omitProps = initOmitProps(config);
63
73
  const updateReleaseGroup = initUpdatingReleaseGroup(config, packageVersion);
64
74
  const updateAdditionalCommonProps = initAdditionalCommonProps(packageVersion, config);
65
75
  const generateExports = initExportsGenerator(config);
66
- const packageJson = generateExports(omitDevProps(updateAdditionalCommonProps(updateReleaseGroup(originPackageJson))));
76
+ const packageJson = generateExports(omitProps(updateAdditionalCommonProps(updateReleaseGroup(originPackageJson))));
67
77
  const { distPath } = config;
68
78
  fs.writeFileSync(path.join(distPath, 'package.json'), JSON.stringify(packageJson, null, 2));
69
79
  logger.success('package.json успешно сформирован в ', distPath);
@@ -22,6 +22,7 @@ export declare class ConfigService {
22
22
  releaseGroup?: string[];
23
23
  };
24
24
  get packageExports(): import("../types").PackageExports | undefined;
25
+ get omitPackageJsonProps(): string[] | undefined;
25
26
  private parseConfig;
26
27
  private checkLanguage;
27
28
  }
@@ -51,6 +51,9 @@ export class ConfigService {
51
51
  get packageExports() {
52
52
  return this.config.packageExports;
53
53
  }
54
+ get omitPackageJsonProps() {
55
+ return this.config.omitPackageJsonProps;
56
+ }
54
57
  parseConfig = () => {
55
58
  const configPath = path.join(this.projectPath, this.configName);
56
59
  if (!fs.existsSync(configPath)) {
@@ -25,4 +25,5 @@ export const validateConfig = v.object({
25
25
  .filter(Boolean);
26
26
  return errors[0];
27
27
  },
28
+ omitPackageJsonProps: v.optional(v.array(v.arrayItem(v.string()))),
28
29
  });
package/config/types.d.ts CHANGED
@@ -50,5 +50,9 @@ export type PackConfig = {
50
50
  * exports свойство package.json
51
51
  */
52
52
  packageExports?: PackageExports;
53
+ /**
54
+ * Удаляет указанные props в сгенерированном package.json
55
+ */
56
+ omitPackageJsonProps?: string[];
53
57
  };
54
58
  export type Lang = 'js' | 'ts';
package/node/bin.js CHANGED
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const commands_1 = require("./commands");
5
5
  const config_1 = require("./config");
6
6
  const cli_1 = require("./cli");
7
- console.log('process', process.env.CUSTOM);
8
7
  const start = async () => {
9
8
  const { command, packageVersion } = (0, cli_1.parseArgs)();
10
9
  let configService;
@@ -7,10 +7,19 @@ exports.generatePackageJson = void 0;
7
7
  const path_1 = __importDefault(require("path"));
8
8
  const fs_1 = __importDefault(require("fs"));
9
9
  const services_1 = require("../../services");
10
- const omitDevProps = (originPackageJson) => {
11
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
12
- const { scripts, devDependencies, typesVersions, ...packageJson } = originPackageJson;
13
- return packageJson;
10
+ const initOmitProps = ({ omitPackageJsonProps = [] }) => (originPackageJson) => {
11
+ const devProps = [
12
+ 'scripts',
13
+ 'devDependencies',
14
+ 'typesVersions',
15
+ ...omitPackageJsonProps,
16
+ ];
17
+ return Object.entries(originPackageJson).reduce((packageJson, [key, value]) => {
18
+ if (!devProps.includes(key)) {
19
+ packageJson[key] = value;
20
+ }
21
+ return packageJson;
22
+ }, {});
14
23
  };
15
24
  /**
16
25
  * Устанавливает пакетам из releaseGroup одну версию в зависимостях
@@ -66,10 +75,11 @@ const initAdditionalCommonProps = (packageVersion, config) => (originPackageJson
66
75
  });
67
76
  const generatePackageJson = async ({ packageVersion, originPackageJson }, config) => {
68
77
  services_1.logger.progress('Генерация package.json');
78
+ const omitProps = initOmitProps(config);
69
79
  const updateReleaseGroup = initUpdatingReleaseGroup(config, packageVersion);
70
80
  const updateAdditionalCommonProps = initAdditionalCommonProps(packageVersion, config);
71
81
  const generateExports = initExportsGenerator(config);
72
- const packageJson = generateExports(omitDevProps(updateAdditionalCommonProps(updateReleaseGroup(originPackageJson))));
82
+ const packageJson = generateExports(omitProps(updateAdditionalCommonProps(updateReleaseGroup(originPackageJson))));
73
83
  const { distPath } = config;
74
84
  fs_1.default.writeFileSync(path_1.default.join(distPath, 'package.json'), JSON.stringify(packageJson, null, 2));
75
85
  services_1.logger.success('package.json успешно сформирован в ', distPath);
@@ -22,6 +22,7 @@ export declare class ConfigService {
22
22
  releaseGroup?: string[];
23
23
  };
24
24
  get packageExports(): import("../types").PackageExports | undefined;
25
+ get omitPackageJsonProps(): string[] | undefined;
25
26
  private parseConfig;
26
27
  private checkLanguage;
27
28
  }
@@ -90,6 +90,9 @@ class ConfigService {
90
90
  get packageExports() {
91
91
  return this.config.packageExports;
92
92
  }
93
+ get omitPackageJsonProps() {
94
+ return this.config.omitPackageJsonProps;
95
+ }
93
96
  parseConfig = () => {
94
97
  const configPath = path_1.default.join(this.projectPath, this.configName);
95
98
  if (!fs_1.default.existsSync(configPath)) {
@@ -61,4 +61,5 @@ exports.validateConfig = v.object({
61
61
  .filter(Boolean);
62
62
  return errors[0];
63
63
  },
64
+ omitPackageJsonProps: v.optional(v.array(v.arrayItem(v.string()))),
64
65
  });
@@ -50,5 +50,9 @@ export type PackConfig = {
50
50
  * exports свойство package.json
51
51
  */
52
52
  packageExports?: PackageExports;
53
+ /**
54
+ * Удаляет указанные props в сгенерированном package.json
55
+ */
56
+ omitPackageJsonProps?: string[];
53
57
  };
54
58
  export type Lang = 'js' | 'ts';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astral/pack",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "bin": {
5
5
  "pack": "bin.js"
6
6
  },
@@ -8,7 +8,7 @@
8
8
  "node": ">=22"
9
9
  },
10
10
  "dependencies": {
11
- "@astral/validations": "1.0.0",
11
+ "@astral/validations": "^4.24.1",
12
12
  "recursive-copy": "^2.0.14",
13
13
  "semantic-release": "^24.2.3",
14
14
  "@semantic-release/changelog": "~6.0.3",