@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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=get-modified-packages.d.ts.map
@@ -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"}
@@ -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":"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"}
1
+ {"version":3,"file":"package-override.js","sourceRoot":"","sources":["../src/package-override.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function asyncExec(cmd: string, cwd?: string): Promise<string>;
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -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.1.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()
@@ -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
+ }