@stack-spot/build-tools 1.1.0 → 1.2.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/CHANGELOG.md +7 -0
- package/dist/get-modified-packages.d.ts +2 -0
- package/dist/get-modified-packages.d.ts.map +1 -0
- package/dist/get-modified-packages.js +25 -0
- package/dist/get-modified-packages.js.map +1 -0
- package/dist/package-override.js +2 -12
- package/dist/package-override.js.map +1 -1
- package/dist/utils.d.ts +2 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +12 -0
- package/dist/utils.js.map +1 -0
- package/package.json +3 -2
- package/src/get-modified-packages.ts +27 -0
- package/src/package-override.ts +2 -11
- package/src/utils.ts +10 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.1.1](https://github.com/stack-spot/portal-commons/compare/build-tools@v1.1.0...build-tools@v1.1.1) (2026-01-13)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* fixes install ([#1990](https://github.com/stack-spot/portal-commons/issues/1990)) ([bbd5cbd](https://github.com/stack-spot/portal-commons/commit/bbd5cbd633181a808a80dcc13fbef229569843d1))
|
|
9
|
+
|
|
3
10
|
## [1.1.0](https://github.com/stack-spot/portal-commons/compare/build-tools@v1.0.0...build-tools@v1.1.0) (2026-01-13)
|
|
4
11
|
|
|
5
12
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-modified-packages.d.ts","sourceRoot":"","sources":["../src/get-modified-packages.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import { asyncExec } from './utils';
|
|
3
|
+
async function listFilesChangedByLastCommit(merge) {
|
|
4
|
+
const filesPerLine = await asyncExec(`git diff-tree ${merge ? '-m' : ''} --no-commit-id --name-only -r HEAD`);
|
|
5
|
+
return filesPerLine.split('\n').map(f => f.trim());
|
|
6
|
+
}
|
|
7
|
+
function listChangedPackages(changedFiles) {
|
|
8
|
+
const packages = new Set();
|
|
9
|
+
for (const file of changedFiles) {
|
|
10
|
+
const [, name] = file.match(/^packages\/([^/]+)\/.*/) ?? [];
|
|
11
|
+
if (name)
|
|
12
|
+
packages.add(name);
|
|
13
|
+
}
|
|
14
|
+
return packages;
|
|
15
|
+
}
|
|
16
|
+
async function start() {
|
|
17
|
+
const changedFiles = (await Promise.all([
|
|
18
|
+
listFilesChangedByLastCommit(),
|
|
19
|
+
listFilesChangedByLastCommit(true),
|
|
20
|
+
])).flat();
|
|
21
|
+
const changedPackages = listChangedPackages(changedFiles);
|
|
22
|
+
console.log(Array.from(changedPackages).join(', '));
|
|
23
|
+
}
|
|
24
|
+
start();
|
|
25
|
+
//# sourceMappingURL=get-modified-packages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-modified-packages.js","sourceRoot":"","sources":["../src/get-modified-packages.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,KAAK,UAAU,4BAA4B,CAAC,KAAe;IACzD,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,iBAAiB,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,qCAAqC,CAAC,CAAA;IAC7G,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AACpD,CAAC;AAED,SAAS,mBAAmB,CAAC,YAAsB;IACjD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;IAClC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAA;QAC3D,IAAI,IAAI;YAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,KAAK,UAAU,KAAK;IAClB,MAAM,YAAY,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC;QACtC,4BAA4B,EAAE;QAC9B,4BAA4B,CAAC,IAAI,CAAC;KACnC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACV,MAAM,eAAe,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAA;IACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AACrD,CAAC;AAED,KAAK,EAAE,CAAA"}
|
package/dist/package-override.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable no-console */
|
|
2
|
-
import { exec } from 'child_process';
|
|
3
2
|
import { access, constants, readFile, writeFile } from 'fs/promises';
|
|
3
|
+
import { asyncExec } from './utils';
|
|
4
4
|
const variables = {
|
|
5
5
|
timestamp: () => new Date().getTime(),
|
|
6
6
|
};
|
|
@@ -71,16 +71,6 @@ async function prepare(env) {
|
|
|
71
71
|
await writeFile('package.json', JSON.stringify(resultingPackage, null, 2), { encoding: 'utf-8' });
|
|
72
72
|
return [originalPckg, resultingPackage];
|
|
73
73
|
}
|
|
74
|
-
function asyncExec(cmd, cwd) {
|
|
75
|
-
return new Promise((resolve, reject) => {
|
|
76
|
-
exec(cmd, { cwd }, (error, stdout, stderr) => {
|
|
77
|
-
if (error)
|
|
78
|
-
reject(`${error.message}\n\n${stdout}\n\n${stderr}`);
|
|
79
|
-
else
|
|
80
|
-
resolve(stdout);
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
74
|
async function revert(packageBackup) {
|
|
85
75
|
await writeFile('package.json', packageBackup, { encoding: 'utf-8' });
|
|
86
76
|
}
|
|
@@ -95,7 +85,7 @@ async function start() {
|
|
|
95
85
|
const [packageBackup] = await prepare(env ?? '');
|
|
96
86
|
try {
|
|
97
87
|
console.log('Installing overridden dependencies...');
|
|
98
|
-
await asyncExec('pnpm i');
|
|
88
|
+
await asyncExec('pnpm i --no-frozen-lockfile');
|
|
99
89
|
console.log('Done.');
|
|
100
90
|
}
|
|
101
91
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-override.js","sourceRoot":"","sources":["../src/package-override.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"package-override.js","sourceRoot":"","sources":["../src/package-override.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOpE"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { exec } from 'child_process';
|
|
2
|
+
export function asyncExec(cmd, cwd) {
|
|
3
|
+
return new Promise((resolve, reject) => {
|
|
4
|
+
exec(cmd, { cwd }, (error, stdout, stderr) => {
|
|
5
|
+
if (error)
|
|
6
|
+
reject(`${error.message}\n\n${stdout}\n\n${stderr}`);
|
|
7
|
+
else
|
|
8
|
+
resolve(stdout);
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEpC,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,GAAY;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,KAAK;gBAAE,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,OAAO,MAAM,OAAO,MAAM,EAAE,CAAC,CAAA;;gBAC1D,OAAO,CAAC,MAAM,CAAC,CAAA;QACtB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stack-spot/build-tools",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
|
-
"package-override": "./dist/package-override.js"
|
|
6
|
+
"package-override": "./dist/package-override.js",
|
|
7
|
+
"get-modified-packages": "./dist/get-modified-packages.js"
|
|
7
8
|
},
|
|
8
9
|
"devDependencies": {
|
|
9
10
|
"@types/node": "^22.14.1",
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import { asyncExec } from './utils'
|
|
3
|
+
|
|
4
|
+
async function listFilesChangedByLastCommit(merge?: boolean) {
|
|
5
|
+
const filesPerLine = await asyncExec(`git diff-tree ${merge ? '-m' : ''} --no-commit-id --name-only -r HEAD`)
|
|
6
|
+
return filesPerLine.split('\n').map(f => f.trim())
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function listChangedPackages(changedFiles: string[]) {
|
|
10
|
+
const packages = new Set<string>()
|
|
11
|
+
for (const file of changedFiles) {
|
|
12
|
+
const [, name] = file.match(/^packages\/([^/]+)\/.*/) ?? []
|
|
13
|
+
if (name) packages.add(name)
|
|
14
|
+
}
|
|
15
|
+
return packages
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
async function start() {
|
|
19
|
+
const changedFiles = (await Promise.all([
|
|
20
|
+
listFilesChangedByLastCommit(),
|
|
21
|
+
listFilesChangedByLastCommit(true),
|
|
22
|
+
])).flat()
|
|
23
|
+
const changedPackages = listChangedPackages(changedFiles)
|
|
24
|
+
console.log(Array.from(changedPackages).join(', '))
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
start()
|
package/src/package-override.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable no-console */
|
|
2
|
-
import { exec } from 'child_process'
|
|
3
2
|
import { access, constants, readFile, writeFile } from 'fs/promises'
|
|
3
|
+
import { asyncExec } from './utils'
|
|
4
4
|
|
|
5
5
|
const variables = {
|
|
6
6
|
timestamp: () => new Date().getTime(),
|
|
@@ -72,15 +72,6 @@ async function prepare(env: string) {
|
|
|
72
72
|
return [originalPckg, resultingPackage]
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
function asyncExec(cmd: string, cwd?: string): Promise<string> {
|
|
76
|
-
return new Promise((resolve, reject) => {
|
|
77
|
-
exec(cmd, { cwd }, (error, stdout, stderr) => {
|
|
78
|
-
if (error) reject(`${error.message}\n\n${stdout}\n\n${stderr}`)
|
|
79
|
-
else resolve(stdout)
|
|
80
|
-
})
|
|
81
|
-
})
|
|
82
|
-
}
|
|
83
|
-
|
|
84
75
|
async function revert(packageBackup: string) {
|
|
85
76
|
await writeFile('package.json', packageBackup, { encoding: 'utf-8' })
|
|
86
77
|
}
|
|
@@ -96,7 +87,7 @@ async function start() {
|
|
|
96
87
|
const [packageBackup] = await prepare(env ?? '')
|
|
97
88
|
try {
|
|
98
89
|
console.log('Installing overridden dependencies...')
|
|
99
|
-
await asyncExec('pnpm i')
|
|
90
|
+
await asyncExec('pnpm i --no-frozen-lockfile')
|
|
100
91
|
console.log('Done.')
|
|
101
92
|
} finally {
|
|
102
93
|
if (shouldRevert) await revert(packageBackup)
|
package/src/utils.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { exec } from 'child_process'
|
|
2
|
+
|
|
3
|
+
export function asyncExec(cmd: string, cwd?: string): Promise<string> {
|
|
4
|
+
return new Promise((resolve, reject) => {
|
|
5
|
+
exec(cmd, { cwd }, (error, stdout, stderr) => {
|
|
6
|
+
if (error) reject(`${error.message}\n\n${stdout}\n\n${stderr}`)
|
|
7
|
+
else resolve(stdout)
|
|
8
|
+
})
|
|
9
|
+
})
|
|
10
|
+
}
|