@nizza/devkit 0.1.3-beta.0 → 0.1.3-beta.2
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/dist/cjs/executors/verify-changesets/index.cjs +39 -0
- package/dist/cjs/executors/verify-changesets/schema.json +8 -0
- package/dist/cjs/index.cjs +6 -4
- package/dist/esm/executors/verify-changesets/index.mjs +37 -0
- package/dist/esm/executors/verify-changesets/schema.json +8 -0
- package/dist/esm/index.mjs +1 -0
- package/executors.json +5 -0
- package/package.json +1 -1
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chalk = require('chalk');
|
|
4
|
+
var fs = require('fs');
|
|
5
|
+
var path = require('path');
|
|
6
|
+
require('../../shared/logger.cjs');
|
|
7
|
+
var utils$1 = require('../../shared/utils.cjs');
|
|
8
|
+
var utils = require('../shared/utils.cjs');
|
|
9
|
+
|
|
10
|
+
const { readFile, readdir } = fs.promises;
|
|
11
|
+
/**
|
|
12
|
+
* Executor function to verify if the current library has a corresponding changeset.
|
|
13
|
+
*
|
|
14
|
+
* @param {ExecutorContext} ctx - The executor context.
|
|
15
|
+
* @returns {Promise<ExecutorResponse>} The result object with a success or error status.
|
|
16
|
+
*/ async function runExecutor(_opts, ctx) {
|
|
17
|
+
try {
|
|
18
|
+
const { root: projectRoot } = utils.getProjectConfig(ctx);
|
|
19
|
+
const packageJson = utils$1.getPkgJson(projectRoot);
|
|
20
|
+
const { name: packageName } = packageJson;
|
|
21
|
+
const changesetPath = path.join(ctx.root, '.changeset');
|
|
22
|
+
const preJsonPath = path.join(changesetPath, 'pre.json');
|
|
23
|
+
const changesetData = JSON.parse(await readFile(preJsonPath, 'utf8'));
|
|
24
|
+
const ignoredChangesets = new Set(changesetData.changesets.map((name)=>name + '.md'));
|
|
25
|
+
const changesetFiles = (await readdir(changesetPath)).filter((file)=>file.endsWith('.md') && !ignoredChangesets.has(file));
|
|
26
|
+
const packageRegex = new RegExp(`['"]${packageName}['"]:`, 'm');
|
|
27
|
+
const checks = changesetFiles.map((file)=>readFile(path.join(changesetPath, file), 'utf8').then((content)=>packageRegex.test(content)));
|
|
28
|
+
const results = await Promise.all(checks);
|
|
29
|
+
if (!results.includes(true)) {
|
|
30
|
+
const errorMessage = chalk.red(`🔴 No changeset entry found for `) + chalk.cyan(packageName) + '\n' + chalk.yellow('📝 Remember to create a changeset for publishable npm libraries. Use the command ') + chalk.green("'pnpm cs'.") + '\n' + 'For more details, check out: ' + chalk.underline('https://www.notion.so/vtexhandbook/Flujo-de-trabajo-con-changeset-para-publicaci-n-en-npm-3ee6525ecff849fa8acc18273b15deac?pvs=4');
|
|
31
|
+
return utils.err(undefined, errorMessage);
|
|
32
|
+
}
|
|
33
|
+
return utils.ok(`🟢 Changeset verification successful for ${packageName}`);
|
|
34
|
+
} catch (error) {
|
|
35
|
+
return utils.err(error, `❌ Error verifying changeset for the library: ${error.message}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
module.exports = runExecutor;
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -4,14 +4,15 @@ var index = require('./executors/deploy/index.cjs');
|
|
|
4
4
|
var index$1 = require('./executors/environments/index.cjs');
|
|
5
5
|
var index$2 = require('./executors/publish/index.cjs');
|
|
6
6
|
var index$3 = require('./executors/update-executors-file/index.cjs');
|
|
7
|
-
var index$4 = require('./executors/
|
|
7
|
+
var index$4 = require('./executors/verify-changesets/index.cjs');
|
|
8
|
+
var index$5 = require('./executors/vtex-link/index.cjs');
|
|
8
9
|
var main = require('./vitejs/config-builder/main.cjs');
|
|
9
10
|
var types = require('./vitejs/config-builder/shared/types.cjs');
|
|
10
11
|
var helpers = require('./vitejs/config-builder/shared/utils/helpers.cjs');
|
|
11
12
|
var projectConfig = require('./vitejs/config-builder/shared/utils/projectConfig.cjs');
|
|
12
13
|
var viteCommand = require('./vitejs/config-builder/shared/utils/viteCommand.cjs');
|
|
13
14
|
var main$1 = require('./vitejs/plugins/third-party-css-inject/main.cjs');
|
|
14
|
-
var index$
|
|
15
|
+
var index$6 = require('./vitejs/plugins/shadow-dom-inject-css/index.cjs');
|
|
15
16
|
|
|
16
17
|
|
|
17
18
|
|
|
@@ -19,7 +20,8 @@ exports.deployExecutor = index;
|
|
|
19
20
|
exports.environmentsExecutor = index$1;
|
|
20
21
|
exports.publishExecutor = index$2;
|
|
21
22
|
exports.updateExecutorsFileExecutor = index$3;
|
|
22
|
-
exports.
|
|
23
|
+
exports.verifyChangesetsExecutor = index$4;
|
|
24
|
+
exports.vtexLinkExecutor = index$5;
|
|
23
25
|
exports.createConfigBuilder = main.createConfigBuilder;
|
|
24
26
|
Object.defineProperty(exports, "Flag", {
|
|
25
27
|
enumerable: true,
|
|
@@ -53,4 +55,4 @@ exports.mergeConfigs = projectConfig.mergeConfigs;
|
|
|
53
55
|
exports.getViteCmdFlags = viteCommand.getViteCmdFlags;
|
|
54
56
|
exports.getViteCommand = viteCommand.getViteCommand;
|
|
55
57
|
exports.thirdPartyCssInjectPlugin = main$1.thirdPartyCssInjectPlugin;
|
|
56
|
-
exports.injectCssIntoShadowDom = index$
|
|
58
|
+
exports.injectCssIntoShadowDom = index$6.injectCssIntoShadowDom;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { promises } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
import '../../shared/logger.mjs';
|
|
5
|
+
import { getPkgJson } from '../../shared/utils.mjs';
|
|
6
|
+
import { getProjectConfig, err, ok } from '../shared/utils.mjs';
|
|
7
|
+
|
|
8
|
+
const { readFile, readdir } = promises;
|
|
9
|
+
/**
|
|
10
|
+
* Executor function to verify if the current library has a corresponding changeset.
|
|
11
|
+
*
|
|
12
|
+
* @param {ExecutorContext} ctx - The executor context.
|
|
13
|
+
* @returns {Promise<ExecutorResponse>} The result object with a success or error status.
|
|
14
|
+
*/ async function runExecutor(_opts, ctx) {
|
|
15
|
+
try {
|
|
16
|
+
const { root: projectRoot } = getProjectConfig(ctx);
|
|
17
|
+
const packageJson = getPkgJson(projectRoot);
|
|
18
|
+
const { name: packageName } = packageJson;
|
|
19
|
+
const changesetPath = join(ctx.root, '.changeset');
|
|
20
|
+
const preJsonPath = join(changesetPath, 'pre.json');
|
|
21
|
+
const changesetData = JSON.parse(await readFile(preJsonPath, 'utf8'));
|
|
22
|
+
const ignoredChangesets = new Set(changesetData.changesets.map((name)=>name + '.md'));
|
|
23
|
+
const changesetFiles = (await readdir(changesetPath)).filter((file)=>file.endsWith('.md') && !ignoredChangesets.has(file));
|
|
24
|
+
const packageRegex = new RegExp(`['"]${packageName}['"]:`, 'm');
|
|
25
|
+
const checks = changesetFiles.map((file)=>readFile(join(changesetPath, file), 'utf8').then((content)=>packageRegex.test(content)));
|
|
26
|
+
const results = await Promise.all(checks);
|
|
27
|
+
if (!results.includes(true)) {
|
|
28
|
+
const errorMessage = chalk.red(`🔴 No changeset entry found for `) + chalk.cyan(packageName) + '\n' + chalk.yellow('📝 Remember to create a changeset for publishable npm libraries. Use the command ') + chalk.green("'pnpm cs'.") + '\n' + 'For more details, check out: ' + chalk.underline('https://www.notion.so/vtexhandbook/Flujo-de-trabajo-con-changeset-para-publicaci-n-en-npm-3ee6525ecff849fa8acc18273b15deac?pvs=4');
|
|
29
|
+
return err(undefined, errorMessage);
|
|
30
|
+
}
|
|
31
|
+
return ok(`🟢 Changeset verification successful for ${packageName}`);
|
|
32
|
+
} catch (error) {
|
|
33
|
+
return err(error, `❌ Error verifying changeset for the library: ${error.message}`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export { runExecutor as default };
|
package/dist/esm/index.mjs
CHANGED
|
@@ -2,6 +2,7 @@ export { default as deployExecutor } from './executors/deploy/index.mjs';
|
|
|
2
2
|
export { default as environmentsExecutor } from './executors/environments/index.mjs';
|
|
3
3
|
export { default as publishExecutor } from './executors/publish/index.mjs';
|
|
4
4
|
export { default as updateExecutorsFileExecutor } from './executors/update-executors-file/index.mjs';
|
|
5
|
+
export { default as verifyChangesetsExecutor } from './executors/verify-changesets/index.mjs';
|
|
5
6
|
export { default as vtexLinkExecutor } from './executors/vtex-link/index.mjs';
|
|
6
7
|
export { createConfigBuilder } from './vitejs/config-builder/main.mjs';
|
|
7
8
|
export { Flag, ProjectType, Stage, Target, ViteMode } from './vitejs/config-builder/shared/types.mjs';
|
package/executors.json
CHANGED
|
@@ -24,6 +24,11 @@
|
|
|
24
24
|
"implementation": "./dist/cjs/executors/deploy/index.cjs",
|
|
25
25
|
"schema": "./dist/cjs/executors/deploy/schema.json",
|
|
26
26
|
"description": "Deploys project assets to an AWS S3 bucket and invalidates CloudFront distribution cache"
|
|
27
|
+
},
|
|
28
|
+
"verify-changesets": {
|
|
29
|
+
"implementation": "./dist/cjs/executors/verify-changesets/index.cjs",
|
|
30
|
+
"schema": "./dist/cjs/executors/verify-changesets/schema.json",
|
|
31
|
+
"description": "Verify if the current library has a corresponding changeset"
|
|
27
32
|
}
|
|
28
33
|
}
|
|
29
34
|
}
|