@stack-spot/build-tools 1.1.1 → 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/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 +1 -11
- 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 +1 -10
- package/src/utils.ts +10 -0
|
@@ -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
|
}
|
|
@@ -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
|
}
|
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
|
+
}
|