@stack-spot/build-tools 1.1.1 → 1.2.2

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,41 @@
1
+ /* eslint-disable no-console */
2
+ import yargs from 'yargs';
3
+ import { asyncExec } from './utils';
4
+ async function listFilesChangedByLastCommit(merge) {
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
+ function listChangedPackages(changedFiles) {
9
+ const packages = new Set();
10
+ for (const file of changedFiles) {
11
+ const [, name] = file.match(/^packages\/([^/]+)\/.*/) ?? [];
12
+ if (name)
13
+ packages.add(name);
14
+ }
15
+ return Array.from(packages);
16
+ }
17
+ function getArguments() {
18
+ return yargs(process.argv.slice(2)).options({
19
+ allowed: { type: 'array', coerce: (v) => v.map((i) => `${i}`.trim()).filter(i => !!i), default: [] },
20
+ }).parseSync();
21
+ }
22
+ function filterAllowedPackages(packages) {
23
+ const { allowed } = getArguments();
24
+ return allowed.length ? packages.filter(p => allowed.includes(p)) : packages;
25
+ }
26
+ async function start() {
27
+ try {
28
+ const changedFiles = (await Promise.all([
29
+ listFilesChangedByLastCommit(),
30
+ listFilesChangedByLastCommit(true),
31
+ ])).flat();
32
+ const changedPackages = filterAllowedPackages(listChangedPackages(changedFiles));
33
+ console.log(JSON.stringify(changedPackages));
34
+ }
35
+ catch (error) {
36
+ console.error(error);
37
+ process.exit(1);
38
+ }
39
+ }
40
+ start();
41
+ //# 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,KAAK,MAAM,OAAO,CAAA;AACzB,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,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1C,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;KACjH,CAAC,CAAC,SAAS,EAAE,CAAA;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAkB;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,CAAA;IAClC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;AAC9E,CAAC;AAED,KAAK,UAAU,KAAK;IAClB,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC;YACtC,4BAA4B,EAAE;YAC9B,4BAA4B,CAAC,IAAI,CAAC;SACnC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACV,MAAM,eAAe,GAAG,qBAAqB,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAA;QAChF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAA;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,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,12 +1,14 @@
1
1
  {
2
2
  "name": "@stack-spot/build-tools",
3
- "version": "1.1.1",
3
+ "version": "1.2.2",
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",
11
+ "@types/yargs": "^17.0.33",
10
12
  "eslint": "^8.53.0",
11
13
  "eslint-plugin-filenames": "^1.3.2",
12
14
  "eslint-plugin-import": "^2.29.0",
@@ -19,6 +21,9 @@
19
21
  "tsx": "^4.15.1",
20
22
  "typescript": "^5.2.2"
21
23
  },
24
+ "dependencies": {
25
+ "yargs": "^17.7.2"
26
+ },
22
27
  "scripts": {
23
28
  "build": "rimraf dist && tsc",
24
29
  "check-branch": "pnpm build",
@@ -0,0 +1,44 @@
1
+ /* eslint-disable no-console */
2
+ import yargs from 'yargs'
3
+ import { asyncExec } from './utils'
4
+
5
+ async function listFilesChangedByLastCommit(merge?: boolean) {
6
+ const filesPerLine = await asyncExec(`git diff-tree ${merge ? '-m' : ''} --no-commit-id --name-only -r HEAD`)
7
+ return filesPerLine.split('\n').map(f => f.trim())
8
+ }
9
+
10
+ function listChangedPackages(changedFiles: string[]) {
11
+ const packages = new Set<string>()
12
+ for (const file of changedFiles) {
13
+ const [, name] = file.match(/^packages\/([^/]+)\/.*/) ?? []
14
+ if (name) packages.add(name)
15
+ }
16
+ return Array.from(packages)
17
+ }
18
+
19
+ function getArguments() {
20
+ return yargs(process.argv.slice(2)).options({
21
+ allowed: { type: 'array', coerce: (v: any[]) => v.map((i: any) => `${i}`.trim()).filter(i => !!i), default: [] },
22
+ }).parseSync()
23
+ }
24
+
25
+ function filterAllowedPackages(packages: string[]) {
26
+ const { allowed } = getArguments()
27
+ return allowed.length ? packages.filter(p => allowed.includes(p)) : packages
28
+ }
29
+
30
+ async function start() {
31
+ try {
32
+ const changedFiles = (await Promise.all([
33
+ listFilesChangedByLastCommit(),
34
+ listFilesChangedByLastCommit(true),
35
+ ])).flat()
36
+ const changedPackages = filterAllowedPackages(listChangedPackages(changedFiles))
37
+ console.log(JSON.stringify(changedPackages))
38
+ } catch (error) {
39
+ console.error(error)
40
+ process.exit(1)
41
+ }
42
+ }
43
+
44
+ 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
+ }