@aws/nx-plugin 1.0.0-rc.6 → 1.0.0-rc.7
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/package.json +1 -1
- package/src/utils/format.js +84 -4
- package/src/utils/format.js.map +1 -1
package/package.json
CHANGED
package/src/utils/format.js
CHANGED
|
@@ -9,6 +9,7 @@ exports.formatFilesInSubtree = formatFilesInSubtree;
|
|
|
9
9
|
const tslib_1 = require("tslib");
|
|
10
10
|
const nodejs_1 = require("@biomejs/js-api/nodejs");
|
|
11
11
|
const child_process_1 = require("child_process");
|
|
12
|
+
const fs_1 = require("fs");
|
|
12
13
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
13
14
|
exports.DEFAULT_BIOME_CONFIG = {
|
|
14
15
|
$schema: 'https://biomejs.dev/schemas/2.4.16/schema.json',
|
|
@@ -96,19 +97,58 @@ async function formatFilesInSubtree(tree, dir) {
|
|
|
96
97
|
// Silently skip ruff formatting failures
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
|
-
// Format TS/JS/JSON/CSS files with Biome via its library API, so nothing is
|
|
100
|
-
// written to the filesystem (the config is applied in-memory).
|
|
101
100
|
if (otherFiles.length === 0)
|
|
102
101
|
return;
|
|
102
|
+
// Use the workspace's own Biome CLI (its version and config) when biome.json
|
|
103
|
+
// exists on disk; otherwise format via the bundled library API with the
|
|
104
|
+
// in-memory tree config. The CLI path does not see in-tree config changes.
|
|
105
|
+
if ((0, fs_1.existsSync)(path_1.default.join(tree.root, 'biome.json'))) {
|
|
106
|
+
formatWithBiomeCli(tree, otherFiles);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
formatWithBiomeApi(tree, otherFiles);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Format files via the workspace's Biome CLI, run from the workspace root so it
|
|
114
|
+
* discovers the on-disk biome.json.
|
|
115
|
+
*/
|
|
116
|
+
function formatWithBiomeCli(tree, files) {
|
|
117
|
+
const biome = getBiomeCommand(tree.root);
|
|
118
|
+
if (!biome) {
|
|
119
|
+
// Fall back to the library API if the CLI cannot be resolved
|
|
120
|
+
formatWithBiomeApi(tree, files);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
for (const file of files) {
|
|
124
|
+
try {
|
|
125
|
+
const content = (0, child_process_1.execFileSync)(biome.command, [...biome.args, 'format', `--stdin-file-path=${file.path}`], {
|
|
126
|
+
input: file.content?.toString('utf-8') ?? '',
|
|
127
|
+
encoding: 'utf-8',
|
|
128
|
+
cwd: tree.root,
|
|
129
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
130
|
+
});
|
|
131
|
+
tree.write(file.path, content);
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
// Leave individual files that fail to format untouched
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Format files via the bundled Biome library API, applying the in-memory tree
|
|
140
|
+
* config.
|
|
141
|
+
*/
|
|
142
|
+
function formatWithBiomeApi(tree, files) {
|
|
103
143
|
try {
|
|
104
144
|
const biome = new nodejs_1.Biome();
|
|
105
145
|
const { projectKey } = biome.openProject();
|
|
106
146
|
// Apply the workspace biome.json if it exists in the tree, otherwise the defaults.
|
|
107
147
|
const treeConfig = tree.read('biome.json', 'utf-8');
|
|
108
148
|
biome.applyConfiguration(projectKey, treeConfig ? JSON.parse(treeConfig) : exports.DEFAULT_BIOME_CONFIG);
|
|
109
|
-
for (const file of
|
|
149
|
+
for (const file of files) {
|
|
110
150
|
try {
|
|
111
|
-
const { content } = biome.formatContent(projectKey, file.content
|
|
151
|
+
const { content } = biome.formatContent(projectKey, file.content?.toString('utf-8') ?? '', { filePath: file.path });
|
|
112
152
|
tree.write(file.path, content);
|
|
113
153
|
}
|
|
114
154
|
catch {
|
|
@@ -120,6 +160,46 @@ async function formatFilesInSubtree(tree, dir) {
|
|
|
120
160
|
// Silently skip formatting failures
|
|
121
161
|
}
|
|
122
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* Resolve the `@biomejs/biome` CLI from the user's workspace, falling back to a
|
|
165
|
+
* `biome` binary on the PATH.
|
|
166
|
+
*/
|
|
167
|
+
const _biomeCommands = new Map();
|
|
168
|
+
function getBiomeCommand(root) {
|
|
169
|
+
if (_biomeCommands.has(root)) {
|
|
170
|
+
return _biomeCommands.get(root) ?? undefined;
|
|
171
|
+
}
|
|
172
|
+
// Run via node for cross-platform execution of the bin shim.
|
|
173
|
+
try {
|
|
174
|
+
const pkgJsonPath = require.resolve('@biomejs/biome/package.json', {
|
|
175
|
+
paths: [root, __dirname],
|
|
176
|
+
});
|
|
177
|
+
const pkgJson = require(pkgJsonPath);
|
|
178
|
+
const binRelative = typeof pkgJson.bin === 'string' ? pkgJson.bin : pkgJson.bin?.biome;
|
|
179
|
+
if (binRelative) {
|
|
180
|
+
const binPath = path_1.default.join(path_1.default.dirname(pkgJsonPath), binRelative);
|
|
181
|
+
const command = { command: process.execPath, args: [binPath] };
|
|
182
|
+
_biomeCommands.set(root, command);
|
|
183
|
+
return command;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
// Fall back to a biome binary on the PATH
|
|
188
|
+
}
|
|
189
|
+
try {
|
|
190
|
+
(0, child_process_1.execSync)('biome --version', {
|
|
191
|
+
encoding: 'utf-8',
|
|
192
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
193
|
+
});
|
|
194
|
+
const command = { command: 'biome', args: [] };
|
|
195
|
+
_biomeCommands.set(root, command);
|
|
196
|
+
return command;
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
_biomeCommands.set(root, null);
|
|
200
|
+
return undefined;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
123
203
|
/**
|
|
124
204
|
* Find the ruff command. Tries 'uv run ruff', then 'uvx ruff'.
|
|
125
205
|
* Matches how @nxlv/python runs ruff via the UV provider.
|
package/src/utils/format.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/format.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/format.ts"],"names":[],"mappings":"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"}
|