@astral/pack 1.5.0 → 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 +25 -2
- package/cli/parseArgs/parseArgs.js +5 -5
- package/cli/types.d.ts +1 -1
- package/commands/generatePackageJson/generatePackageJson.js +14 -1
- package/commands/telegram/sendTelegramFailRelease/sendTelegramFailRelease.d.ts +2 -2
- package/commands/telegram/sendTelegramFailRelease/sendTelegramFailRelease.js +4 -5
- package/config/ConfigService/ConfigService.d.ts +1 -0
- package/config/ConfigService/ConfigService.js +3 -0
- package/config/ConfigService/validation.js +1 -0
- package/config/types.d.ts +4 -0
- package/package.json +1 -1
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 уведомление об успешном релизе пакета:
|
|
@@ -139,11 +162,11 @@ pack send-telegram-success-release --telegram-bot-token=$TELEGRAM_ASTRAL_UI_BOT_
|
|
|
139
162
|
|
|
140
163
|
Отправляет в telegram уведомление об ошибке релиза пакета:
|
|
141
164
|
```shell
|
|
142
|
-
pack send-telegram-fail-release --telegram-bot-token=$TELEGRAM_ASTRAL_UI_BOT_TOKEN --telegram-chat-id=$TELEGRAM_RELEASES_CHANNEL_ID --
|
|
165
|
+
pack send-telegram-fail-release --telegram-bot-token=$TELEGRAM_ASTRAL_UI_BOT_TOKEN --telegram-chat-id=$TELEGRAM_RELEASES_CHANNEL_ID --telegramPipelineUrl=$CI_PIPELINE_URL
|
|
143
166
|
```
|
|
144
167
|
|
|
145
168
|
Пример сообщения:
|
|
146
169
|
```
|
|
147
170
|
‼️Ошибка релиза @astral/pack
|
|
148
|
-
https://git.astralnalog.ru/frontend.shared/pack/-/
|
|
171
|
+
https://git.astralnalog.ru/frontend.shared/pack/-/pipelines/270356
|
|
149
172
|
```
|
|
@@ -10,17 +10,17 @@ const parseArgs = () => process.argv.reduce((result, arg) => {
|
|
|
10
10
|
if (arg.includes('--packageVersion')) {
|
|
11
11
|
result.packageVersion = getArgValue(arg);
|
|
12
12
|
}
|
|
13
|
-
if (arg.includes('--
|
|
13
|
+
if (arg.includes('--telegramChatId')) {
|
|
14
14
|
result.telegram.chatId = getArgValue(arg);
|
|
15
15
|
}
|
|
16
|
-
if (arg.includes('--
|
|
16
|
+
if (arg.includes('--telegramBotToken')) {
|
|
17
17
|
result.telegram.botToken = getArgValue(arg);
|
|
18
18
|
}
|
|
19
|
-
if (arg.includes('--
|
|
19
|
+
if (arg.includes('--telegramPackageName')) {
|
|
20
20
|
result.telegram.packageName = getArgValue(arg);
|
|
21
21
|
}
|
|
22
|
-
if (arg.includes('--
|
|
23
|
-
result.telegram.
|
|
22
|
+
if (arg.includes('--telegramPipelineUrl')) {
|
|
23
|
+
result.telegram.pipelineUrl = getArgValue(arg);
|
|
24
24
|
}
|
|
25
25
|
return result;
|
|
26
26
|
}, { command: enums_1.CLICommand.Build, telegram: {} });
|
package/cli/types.d.ts
CHANGED
|
@@ -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
|
|
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
|
};
|
|
@@ -3,7 +3,7 @@ type Params = {
|
|
|
3
3
|
chatId?: string;
|
|
4
4
|
botToken?: string;
|
|
5
5
|
packageName?: string;
|
|
6
|
-
|
|
6
|
+
pipelineUrl?: string;
|
|
7
7
|
};
|
|
8
|
-
export declare const sendTelegramFailRelease: ({ chatId, botToken, packageName,
|
|
8
|
+
export declare const sendTelegramFailRelease: ({ chatId, botToken, packageName, pipelineUrl }: Params, config: ConfigService) => Promise<void>;
|
|
9
9
|
export {};
|
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.sendTelegramFailRelease = void 0;
|
|
4
4
|
const services_1 = require("../../../services");
|
|
5
|
-
const sendTelegramFailRelease = async ({ chatId, botToken, packageName,
|
|
6
|
-
if (!
|
|
7
|
-
throw new Error('Не указан
|
|
5
|
+
const sendTelegramFailRelease = async ({ chatId, botToken, packageName, pipelineUrl }, config) => {
|
|
6
|
+
if (!pipelineUrl) {
|
|
7
|
+
throw new Error('Не указан pipelineUrl');
|
|
8
8
|
}
|
|
9
|
-
const { repositoryUrl } = config.semanticRelease;
|
|
10
9
|
const telegram = (0, services_1.createTelegram)({ chatId, botToken });
|
|
11
10
|
const { name } = config.parseOriginPackageJson({ ignoreMain: true });
|
|
12
|
-
await telegram.sendMessage(`‼️ Ошибка релиза ${packageName || name}:\n ${
|
|
11
|
+
await telegram.sendMessage(`‼️ Ошибка релиза ${packageName || name}:\n ${pipelineUrl}`);
|
|
13
12
|
};
|
|
14
13
|
exports.sendTelegramFailRelease = sendTelegramFailRelease;
|
|
@@ -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) {
|
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';
|