@stack-spot/build-tools 1.2.0 → 1.2.3

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.
@@ -1,5 +1,6 @@
1
1
  /* eslint-disable no-console */
2
- import { asyncExec } from './utils';
2
+ import yargs from 'yargs';
3
+ import { asyncExec } from './utils.js';
3
4
  async function listFilesChangedByLastCommit(merge) {
4
5
  const filesPerLine = await asyncExec(`git diff-tree ${merge ? '-m' : ''} --no-commit-id --name-only -r HEAD`);
5
6
  return filesPerLine.split('\n').map(f => f.trim());
@@ -11,15 +12,30 @@ function listChangedPackages(changedFiles) {
11
12
  if (name)
12
13
  packages.add(name);
13
14
  }
14
- return packages;
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;
15
25
  }
16
26
  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(', '));
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
+ }
23
39
  }
24
40
  start();
25
41
  //# sourceMappingURL=get-modified-packages.js.map
@@ -1 +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
+ {"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
2
  import { access, constants, readFile, writeFile } from 'fs/promises';
3
- import { asyncExec } from './utils';
3
+ import { asyncExec } from './utils.js';
4
4
  const variables = {
5
5
  timestamp: () => new Date().getTime(),
6
6
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stack-spot/build-tools",
3
- "version": "1.2.0",
3
+ "version": "1.2.3",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "package-override": "./dist/package-override.js",
@@ -8,6 +8,7 @@
8
8
  },
9
9
  "devDependencies": {
10
10
  "@types/node": "^22.14.1",
11
+ "@types/yargs": "^17.0.33",
11
12
  "eslint": "^8.53.0",
12
13
  "eslint-plugin-filenames": "^1.3.2",
13
14
  "eslint-plugin-import": "^2.29.0",
@@ -18,10 +19,14 @@
18
19
  "eslint-plugin-react-refresh": "^0.4.4",
19
20
  "rimraf": "^5.0.7",
20
21
  "tsx": "^4.15.1",
21
- "typescript": "^5.2.2"
22
+ "typescript": "^5.2.2",
23
+ "tsc-esm-fix": "3.1.2"
24
+ },
25
+ "dependencies": {
26
+ "yargs": "^17.7.2"
22
27
  },
23
28
  "scripts": {
24
- "build": "rimraf dist && tsc",
29
+ "build": "rimraf dist && tsc && tsc-esm-fix --target='dist'",
25
30
  "check-branch": "pnpm build",
26
31
  "lint": "echo nothing to lint"
27
32
  }
@@ -1,4 +1,5 @@
1
1
  /* eslint-disable no-console */
2
+ import yargs from 'yargs'
2
3
  import { asyncExec } from './utils'
3
4
 
4
5
  async function listFilesChangedByLastCommit(merge?: boolean) {
@@ -12,16 +13,32 @@ function listChangedPackages(changedFiles: string[]) {
12
13
  const [, name] = file.match(/^packages\/([^/]+)\/.*/) ?? []
13
14
  if (name) packages.add(name)
14
15
  }
15
- return packages
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
16
28
  }
17
29
 
18
30
  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(', '))
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
+ }
25
42
  }
26
43
 
27
44
  start()