@astral/pack 1.5.1 → 1.6.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
@@ -123,6 +123,29 @@ module.exports = defineConfig({
123
123
 
124
124
  Результирующий package.json не будет содержать `engines`.
125
125
 
126
+ ## Переопределение свойств package.json
127
+
128
+ Для переопределения свойств package.json необходимо использовать `overridePackageJson`:
129
+ ```js
130
+ module.exports = defineConfig({
131
+ ...config,
132
+ overridePackageJson: {
133
+ exports: {
134
+ './base': './biome.json',
135
+ }
136
+ },
137
+ });
138
+ ```
139
+
140
+ `exports` в результирующем package.json будет:
141
+ ```json
142
+ {
143
+ "exports": {
144
+ "./base": "./biome.json"
145
+ }
146
+ }
147
+ ```
148
+
126
149
  ## Отправка уведомлений в telegram
127
150
 
128
151
  Отправляет в telegram уведомление об успешном релизе пакета:
@@ -102,14 +102,27 @@ const initAdditionalCommonProps = (packageVersion, { semanticRelease, lang, targ
102
102
  }
103
103
  return packageJson;
104
104
  };
105
+ const initOverridePackageJson = ({ overridePackageJson }) => (originPackageJson) => {
106
+ if (!overridePackageJson) {
107
+ return originPackageJson;
108
+ }
109
+ return {
110
+ ...originPackageJson,
111
+ ...overridePackageJson,
112
+ };
113
+ };
105
114
  const generatePackageJson = async ({ packageVersion, originPackageJson }, config) => {
106
115
  services_1.logger.progress('Генерация package.json');
107
116
  const omitProps = initOmitProps(config);
108
117
  const updateReleaseGroup = initUpdatingReleaseGroup(config, packageVersion);
109
118
  const updateAdditionalCommonProps = initAdditionalCommonProps(packageVersion, config);
110
119
  const generateExports = initExportsGenerator(config);
111
- const packageJson = generateExports(omitProps(updateAdditionalCommonProps(updateReleaseGroup(originPackageJson))));
120
+ const overridePackageJson = initOverridePackageJson(config);
121
+ const packageJson = overridePackageJson(generateExports(omitProps(updateAdditionalCommonProps(updateReleaseGroup(originPackageJson)))));
112
122
  const { distPath } = config;
123
+ if (!fs_1.default.existsSync(distPath)) {
124
+ fs_1.default.mkdirSync(distPath);
125
+ }
113
126
  fs_1.default.writeFileSync(path_1.default.join(distPath, 'package.json'), JSON.stringify(packageJson, null, 2));
114
127
  services_1.logger.success('package.json успешно сформирован в ', distPath);
115
128
  };
@@ -29,6 +29,7 @@ export declare class ConfigService {
29
29
  };
30
30
  get packageExports(): import("../types").PackageExports | undefined;
31
31
  get omitPackageJsonProps(): string[] | undefined;
32
+ get overridePackageJson(): Record<string, unknown> | undefined;
32
33
  parseOriginPackageJson: ({ ignoreMain, }?: {
33
34
  ignoreMain?: boolean;
34
35
  }) => PackageJson;
@@ -95,6 +95,9 @@ class ConfigService {
95
95
  get omitPackageJsonProps() {
96
96
  return this.config.omitPackageJsonProps;
97
97
  }
98
+ get overridePackageJson() {
99
+ return this.config.overridePackageJson;
100
+ }
98
101
  parseOriginPackageJson = ({ ignoreMain, } = {}) => {
99
102
  const packageJson = JSON.parse(fs_1.default.readFileSync(path_1.default.join(this.projectPath, 'package.json'), 'utf8'));
100
103
  if (!ignoreMain && !packageJson.main) {
@@ -71,4 +71,5 @@ exports.validateConfig = v.object({
71
71
  return errors[0];
72
72
  },
73
73
  omitPackageJsonProps: v.optional(v.array(v.arrayItem(v.string()))),
74
+ overridePackageJson: v.optional(v.object({})),
74
75
  });
package/config/types.d.ts CHANGED
@@ -55,5 +55,9 @@ export type PackConfig = {
55
55
  * Удаляет указанные props в сгенерированном package.json
56
56
  */
57
57
  omitPackageJsonProps?: string[];
58
+ /**
59
+ * Позволяет переопределить итоговый package.json
60
+ */
61
+ overridePackageJson?: Record<string, unknown>;
58
62
  };
59
63
  export type Lang = 'js' | 'ts';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astral/pack",
3
- "version": "1.5.1",
3
+ "version": "1.6.0",
4
4
  "main": "./index.js",
5
5
  "bin": {
6
6
  "pack": "bin.js"