@proteinjs/build 1.4.0 → 1.4.1
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/CHANGELOG.md +11 -0
- package/dist/src/buildWorkspace.d.ts.map +1 -1
- package/dist/src/buildWorkspace.js +2 -1
- package/dist/src/buildWorkspace.js.map +1 -1
- package/dist/src/lintWorkspace.d.ts +2 -0
- package/dist/src/lintWorkspace.d.ts.map +1 -1
- package/dist/src/lintWorkspace.js +41 -4
- package/dist/src/lintWorkspace.js.map +1 -1
- package/package.json +2 -2
- package/src/buildWorkspace.ts +2 -1
- package/src/lintWorkspace.ts +46 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [1.4.1](https://github.com/proteinjs/build/compare/@proteinjs/build@1.4.0...@proteinjs/build@1.4.1) (2024-05-10)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* only lint if there are lint configs present ([85b1e71](https://github.com/proteinjs/build/commit/85b1e71b7655bc639c99264069bd224e34a81c7c))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [1.4.0](https://github.com/proteinjs/build/compare/@proteinjs/build@1.3.1...@proteinjs/build@1.4.0) (2024-05-10)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildWorkspace.d.ts","sourceRoot":"","sources":["../../src/buildWorkspace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buildWorkspace.d.ts","sourceRoot":"","sources":["../../src/buildWorkspace.ts"],"names":[],"mappings":"AAMA;;;;;;;;;GASG;AACH,wBAAsB,cAAc,kBA6CnC"}
|
|
@@ -64,6 +64,7 @@ var path = __importStar(require("path"));
|
|
|
64
64
|
var util_node_1 = require("@proteinjs/util-node");
|
|
65
65
|
var util_1 = require("@proteinjs/util");
|
|
66
66
|
var logColors_1 = require("./logColors");
|
|
67
|
+
var lintWorkspace_1 = require("./lintWorkspace");
|
|
67
68
|
/**
|
|
68
69
|
* Install and build workspace, in dependency order.
|
|
69
70
|
*
|
|
@@ -121,7 +122,7 @@ function buildWorkspace() {
|
|
|
121
122
|
logger.info("Built ".concat(cw.color(packageName), " (").concat(packageDir, ")"));
|
|
122
123
|
_b.label = 7;
|
|
123
124
|
case 7:
|
|
124
|
-
if (!(!args.noLint || !args.noLint.includes(packageName))) return [3 /*break*/, 10];
|
|
125
|
+
if (!((0, lintWorkspace_1.hasLintConfig)(packageMap, packageName) && (!args.noLint || !args.noLint.includes(packageName)))) return [3 /*break*/, 10];
|
|
125
126
|
return [4 /*yield*/, (0, util_node_1.cmd)('npx', ['prettier', '.', '--write'], { cwd: packageDir }, { logPrefix: "[".concat(cw.color(packageName), "] ") })];
|
|
126
127
|
case 8:
|
|
127
128
|
_b.sent();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildWorkspace.js","sourceRoot":"","sources":["../../src/buildWorkspace.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA6B;AAC7B,kDAAuF;AACvF,wCAAyC;AACzC,yCAAiE;
|
|
1
|
+
{"version":3,"file":"buildWorkspace.js","sourceRoot":"","sources":["../../src/buildWorkspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { LocalPackageMap } from '@proteinjs/util-node';
|
|
1
2
|
/**
|
|
2
3
|
* Lint workspace, in dependency order.
|
|
3
4
|
*
|
|
@@ -6,4 +7,5 @@
|
|
|
6
7
|
* --skip=@some/package,@another/package
|
|
7
8
|
*/
|
|
8
9
|
export declare function lintWorkspace(): Promise<void>;
|
|
10
|
+
export declare const hasLintConfig: (packageMap: LocalPackageMap, packageName: string) => boolean;
|
|
9
11
|
//# sourceMappingURL=lintWorkspace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lintWorkspace.d.ts","sourceRoot":"","sources":["../../src/lintWorkspace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lintWorkspace.d.ts","sourceRoot":"","sources":["../../src/lintWorkspace.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAmD,MAAM,sBAAsB,CAAC;AAIxG;;;;;;GAMG;AACH,wBAAsB,aAAa,kBAgClC;AAmBD,eAAO,MAAM,aAAa,eAAgB,eAAe,eAAe,MAAM,KAAG,OAwChF,CAAC"}
|
|
@@ -59,8 +59,9 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
59
59
|
}
|
|
60
60
|
};
|
|
61
61
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
62
|
-
exports.lintWorkspace = void 0;
|
|
62
|
+
exports.hasLintConfig = exports.lintWorkspace = void 0;
|
|
63
63
|
var path = __importStar(require("path"));
|
|
64
|
+
var fs = __importStar(require("fs"));
|
|
64
65
|
var util_node_1 = require("@proteinjs/util-node");
|
|
65
66
|
var util_1 = require("@proteinjs/util");
|
|
66
67
|
var logColors_1 = require("./logColors");
|
|
@@ -78,7 +79,7 @@ function lintWorkspace() {
|
|
|
78
79
|
switch (_b.label) {
|
|
79
80
|
case 0:
|
|
80
81
|
cw = new util_node_1.LogColorWrapper();
|
|
81
|
-
logger = new util_1.Logger(cw.color('workspace:', logColors_1.primaryLogColor) + cw.color('
|
|
82
|
+
logger = new util_1.Logger(cw.color('workspace:', logColors_1.primaryLogColor) + cw.color('lint', logColors_1.secondaryLogColor));
|
|
82
83
|
args = getArgs();
|
|
83
84
|
workspacePath = process.cwd();
|
|
84
85
|
return [4 /*yield*/, util_node_1.PackageUtil.getWorkspaceMetadata(workspacePath)];
|
|
@@ -86,8 +87,7 @@ function lintWorkspace() {
|
|
|
86
87
|
_a = _b.sent(), packageMap = _a.packageMap, sortedPackageNames = _a.sortedPackageNames;
|
|
87
88
|
skippedPackages = ['root'];
|
|
88
89
|
filteredPackageNames = sortedPackageNames.filter(function (packageName) {
|
|
89
|
-
|
|
90
|
-
return (!!((_a = packageMap[packageName].packageJson.scripts) === null || _a === void 0 ? void 0 : _a.build) &&
|
|
90
|
+
return ((0, exports.hasLintConfig)(packageMap, packageName) &&
|
|
91
91
|
!(args.skip && args.skip.includes(packageName)) &&
|
|
92
92
|
!skippedPackages.includes(packageName));
|
|
93
93
|
});
|
|
@@ -131,4 +131,41 @@ function getArgs() {
|
|
|
131
131
|
}
|
|
132
132
|
return args;
|
|
133
133
|
}
|
|
134
|
+
var hasLintConfig = function (packageMap, packageName) {
|
|
135
|
+
var packageInfo = packageMap[packageName];
|
|
136
|
+
var directoryPath = path.dirname(packageInfo.filePath);
|
|
137
|
+
var getFilesInDirectory = function (directoryPath) {
|
|
138
|
+
try {
|
|
139
|
+
return fs.readdirSync(directoryPath).map(function (file) { return path.basename(file); });
|
|
140
|
+
}
|
|
141
|
+
catch (err) {
|
|
142
|
+
console.error("Error reading directory ".concat(directoryPath, ":"), err);
|
|
143
|
+
return [];
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
var files = getFilesInDirectory(directoryPath);
|
|
147
|
+
var prettierConfigs = [
|
|
148
|
+
'.prettierrc',
|
|
149
|
+
'.prettierrc.json',
|
|
150
|
+
'.prettierrc.yml',
|
|
151
|
+
'.prettierrc.yaml',
|
|
152
|
+
'.prettierrc.js',
|
|
153
|
+
'.prettierrc.cjs',
|
|
154
|
+
'prettier.config.js',
|
|
155
|
+
'prettier.config.cjs',
|
|
156
|
+
];
|
|
157
|
+
var eslintConfigs = [
|
|
158
|
+
'.eslintrc',
|
|
159
|
+
'.eslintrc.json',
|
|
160
|
+
'.eslintrc.yml',
|
|
161
|
+
'.eslintrc.yaml',
|
|
162
|
+
'.eslintrc.js',
|
|
163
|
+
'.eslintrc.cjs',
|
|
164
|
+
'eslint.config.js',
|
|
165
|
+
];
|
|
166
|
+
var hasPrettier = files.some(function (file) { return prettierConfigs.includes(file); });
|
|
167
|
+
var hasEslint = files.some(function (file) { return eslintConfigs.includes(file); });
|
|
168
|
+
return hasPrettier && hasEslint;
|
|
169
|
+
};
|
|
170
|
+
exports.hasLintConfig = hasLintConfig;
|
|
134
171
|
//# sourceMappingURL=lintWorkspace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lintWorkspace.js","sourceRoot":"","sources":["../../src/lintWorkspace.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"lintWorkspace.js","sourceRoot":"","sources":["../../src/lintWorkspace.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proteinjs/build",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"description": "Workspace build tools",
|
|
5
5
|
"main": "./dist/generated/index.js",
|
|
6
6
|
"types": "./dist/generated/index.d.ts",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"webpack": "5.90.0",
|
|
59
59
|
"webpack-cli": "5.1.4"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "16eb5320c9a3e16e689cfaed722c4263781aad85"
|
|
62
62
|
}
|
package/src/buildWorkspace.ts
CHANGED
|
@@ -2,6 +2,7 @@ import * as path from 'path';
|
|
|
2
2
|
import { LogColorWrapper, PackageUtil, cmd, parseArgsMap } from '@proteinjs/util-node';
|
|
3
3
|
import { Logger } from '@proteinjs/util';
|
|
4
4
|
import { primaryLogColor, secondaryLogColor } from './logColors';
|
|
5
|
+
import { hasLintConfig } from './lintWorkspace';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Install and build workspace, in dependency order.
|
|
@@ -48,7 +49,7 @@ export async function buildWorkspace() {
|
|
|
48
49
|
logger.info(`Built ${cw.color(packageName)} (${packageDir})`);
|
|
49
50
|
}
|
|
50
51
|
|
|
51
|
-
if (!args.noLint || !args.noLint.includes(packageName)) {
|
|
52
|
+
if (hasLintConfig(packageMap, packageName) && (!args.noLint || !args.noLint.includes(packageName))) {
|
|
52
53
|
await cmd('npx', ['prettier', '.', '--write'], { cwd: packageDir }, { logPrefix: `[${cw.color(packageName)}] ` });
|
|
53
54
|
await cmd('npx', ['eslint', '.', '--fix'], { cwd: packageDir }, { logPrefix: `[${cw.color(packageName)}] ` });
|
|
54
55
|
logger.info(`Linted ${cw.color(packageName)} (${packageDir})`);
|
package/src/lintWorkspace.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as path from 'path';
|
|
2
|
-
import
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import { LocalPackageMap, LogColorWrapper, PackageUtil, cmd, parseArgsMap } from '@proteinjs/util-node';
|
|
3
4
|
import { Logger } from '@proteinjs/util';
|
|
4
5
|
import { primaryLogColor, secondaryLogColor } from './logColors';
|
|
5
6
|
|
|
@@ -12,14 +13,14 @@ import { primaryLogColor, secondaryLogColor } from './logColors';
|
|
|
12
13
|
*/
|
|
13
14
|
export async function lintWorkspace() {
|
|
14
15
|
const cw = new LogColorWrapper();
|
|
15
|
-
const logger = new Logger(cw.color('workspace:', primaryLogColor) + cw.color('
|
|
16
|
+
const logger = new Logger(cw.color('workspace:', primaryLogColor) + cw.color('lint', secondaryLogColor));
|
|
16
17
|
const args = getArgs();
|
|
17
18
|
const workspacePath = process.cwd();
|
|
18
19
|
const { packageMap, sortedPackageNames } = await PackageUtil.getWorkspaceMetadata(workspacePath);
|
|
19
20
|
const skippedPackages = ['root'];
|
|
20
21
|
const filteredPackageNames = sortedPackageNames.filter((packageName) => {
|
|
21
22
|
return (
|
|
22
|
-
|
|
23
|
+
hasLintConfig(packageMap, packageName) &&
|
|
23
24
|
!(args.skip && args.skip.includes(packageName)) &&
|
|
24
25
|
!skippedPackages.includes(packageName)
|
|
25
26
|
);
|
|
@@ -60,3 +61,45 @@ function getArgs() {
|
|
|
60
61
|
|
|
61
62
|
return args;
|
|
62
63
|
}
|
|
64
|
+
|
|
65
|
+
export const hasLintConfig = (packageMap: LocalPackageMap, packageName: string): boolean => {
|
|
66
|
+
const packageInfo = packageMap[packageName];
|
|
67
|
+
const directoryPath = path.dirname(packageInfo.filePath);
|
|
68
|
+
|
|
69
|
+
const getFilesInDirectory = (directoryPath: string): string[] => {
|
|
70
|
+
try {
|
|
71
|
+
return fs.readdirSync(directoryPath).map((file) => path.basename(file));
|
|
72
|
+
} catch (err) {
|
|
73
|
+
console.error(`Error reading directory ${directoryPath}:`, err);
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const files = getFilesInDirectory(directoryPath);
|
|
79
|
+
|
|
80
|
+
const prettierConfigs = [
|
|
81
|
+
'.prettierrc',
|
|
82
|
+
'.prettierrc.json',
|
|
83
|
+
'.prettierrc.yml',
|
|
84
|
+
'.prettierrc.yaml',
|
|
85
|
+
'.prettierrc.js',
|
|
86
|
+
'.prettierrc.cjs',
|
|
87
|
+
'prettier.config.js',
|
|
88
|
+
'prettier.config.cjs',
|
|
89
|
+
];
|
|
90
|
+
|
|
91
|
+
const eslintConfigs = [
|
|
92
|
+
'.eslintrc',
|
|
93
|
+
'.eslintrc.json',
|
|
94
|
+
'.eslintrc.yml',
|
|
95
|
+
'.eslintrc.yaml',
|
|
96
|
+
'.eslintrc.js',
|
|
97
|
+
'.eslintrc.cjs',
|
|
98
|
+
'eslint.config.js',
|
|
99
|
+
];
|
|
100
|
+
|
|
101
|
+
const hasPrettier = files.some((file) => prettierConfigs.includes(file));
|
|
102
|
+
const hasEslint = files.some((file) => eslintConfigs.includes(file));
|
|
103
|
+
|
|
104
|
+
return hasPrettier && hasEslint;
|
|
105
|
+
};
|