@proteinjs/build 1.3.1 → 1.4.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.
Files changed (71) hide show
  1. package/.eslintrc.js +20 -0
  2. package/.prettierignore +4 -0
  3. package/.prettierrc +8 -0
  4. package/CHANGELOG.md +29 -188
  5. package/dist/src/Github.d.ts.map +1 -1
  6. package/dist/src/Github.js +8 -4
  7. package/dist/src/Github.js.map +1 -1
  8. package/dist/src/bin/runBuildWorkspace.js.map +1 -1
  9. package/dist/src/bin/runCleanWorkspace.js.map +1 -1
  10. package/dist/src/bin/runLintWorkspace.d.ts +3 -0
  11. package/dist/src/bin/runLintWorkspace.d.ts.map +1 -0
  12. package/dist/src/bin/runLintWorkspace.js +6 -0
  13. package/dist/src/bin/runLintWorkspace.js.map +1 -0
  14. package/dist/src/bin/runSymlinkWorkspace.js.map +1 -1
  15. package/dist/src/bin/runTestWorkspace.js.map +1 -1
  16. package/dist/src/bin/runVersionWorkspace.js.map +1 -1
  17. package/dist/src/bin/runWatchWorkspace.js.map +1 -1
  18. package/dist/src/bin/runWorkspaceCommand.js.map +1 -1
  19. package/dist/src/bin/runWorkspacePackageCommand.js.map +1 -1
  20. package/dist/src/buildWorkspace.d.ts +1 -0
  21. package/dist/src/buildWorkspace.d.ts.map +1 -1
  22. package/dist/src/buildWorkspace.js +26 -9
  23. package/dist/src/buildWorkspace.js.map +1 -1
  24. package/dist/src/cleanWorkspace.d.ts.map +1 -1
  25. package/dist/src/cleanWorkspace.js.map +1 -1
  26. package/dist/src/lintWorkspace.d.ts +9 -0
  27. package/dist/src/lintWorkspace.d.ts.map +1 -0
  28. package/dist/src/lintWorkspace.js +134 -0
  29. package/dist/src/lintWorkspace.js.map +1 -0
  30. package/dist/src/symlinkWorkspace.d.ts.map +1 -1
  31. package/dist/src/symlinkWorkspace.js +2 -1
  32. package/dist/src/symlinkWorkspace.js.map +1 -1
  33. package/dist/src/testWorkspace.d.ts.map +1 -1
  34. package/dist/src/testWorkspace.js +2 -1
  35. package/dist/src/testWorkspace.js.map +1 -1
  36. package/dist/src/versionWorkspace.d.ts.map +1 -1
  37. package/dist/src/versionWorkspace.js +59 -31
  38. package/dist/src/versionWorkspace.js.map +1 -1
  39. package/dist/src/watchWorkspace.d.ts.map +1 -1
  40. package/dist/src/watchWorkspace.js +15 -8
  41. package/dist/src/watchWorkspace.js.map +1 -1
  42. package/dist/src/workspaceCommand.d.ts.map +1 -1
  43. package/dist/src/workspaceCommand.js +4 -3
  44. package/dist/src/workspaceCommand.js.map +1 -1
  45. package/dist/src/workspacePackageCommand.d.ts.map +1 -1
  46. package/dist/src/workspacePackageCommand.js +2 -1
  47. package/dist/src/workspacePackageCommand.js.map +1 -1
  48. package/jest.config.js +8 -17
  49. package/package.json +9 -3
  50. package/src/Github.ts +30 -27
  51. package/src/bin/runBuildWorkspace.ts +2 -2
  52. package/src/bin/runCleanWorkspace.ts +2 -2
  53. package/src/bin/runLintWorkspace.ts +5 -0
  54. package/src/bin/runSymlinkWorkspace.ts +2 -2
  55. package/src/bin/runTestWorkspace.ts +2 -2
  56. package/src/bin/runVersionWorkspace.ts +2 -2
  57. package/src/bin/runWatchWorkspace.ts +2 -2
  58. package/src/bin/runWorkspaceCommand.ts +2 -2
  59. package/src/bin/runWorkspacePackageCommand.ts +2 -2
  60. package/src/buildWorkspace.ts +37 -21
  61. package/src/cleanWorkspace.ts +17 -9
  62. package/src/lintWorkspace.ts +62 -0
  63. package/src/logColors.ts +1 -1
  64. package/src/symlinkWorkspace.ts +23 -16
  65. package/src/testWorkspace.ts +19 -10
  66. package/src/versionWorkspace.ts +173 -79
  67. package/src/watchWorkspace.ts +41 -24
  68. package/src/workspaceCommand.ts +26 -20
  69. package/src/workspacePackageCommand.ts +16 -11
  70. package/tsconfig.json +18 -22
  71. package/webpack.config.js +12 -12
@@ -89,35 +89,42 @@ var watchWorkspace = function (workspaceMetadata) { return __awaiter(void 0, voi
89
89
  var localPackage = packageMap[packageName];
90
90
  var packageDir = path.dirname(localPackage.filePath);
91
91
  var loggingEnabledState = { loggingEnabled: false };
92
- setTimeout(function () { return loggingEnabledState.loggingEnabled = true; }, loggingStartDelay);
92
+ setTimeout(function () { return (loggingEnabledState.loggingEnabled = true); }, loggingStartDelay);
93
93
  var logPrefix = "[".concat(cw.color(packageName), "] ");
94
94
  var inMultiLineLog = false;
95
95
  var stdoutFilter = function (log) {
96
- if (log.includes('File change detected. Starting incremental compilation'))
96
+ if (log.includes('File change detected. Starting incremental compilation')) {
97
97
  return;
98
+ }
99
+ // eslint-disable-next-line no-control-regex
98
100
  var filteredOutput = log.replace(/\x1Bc|\x1B\[2J\x1B\[0;0H/g, ''); // char sequence for clearing terminal
99
- if (filteredOutput.includes('Watching for file changes.'))
101
+ if (filteredOutput.includes('Watching for file changes.')) {
100
102
  filteredOutput = filteredOutput.replace(/^\n/, '');
101
- if (filteredOutput.trim() == '')
103
+ }
104
+ if (filteredOutput.trim() == '') {
102
105
  return;
106
+ }
103
107
  // Replace newline with newline+prefix under the following conditions:
104
108
  // 1. It is not at the start of the string (?<!^)
105
109
  // 2. It is not at the end of the string (?!$)
106
110
  // 3. It is not followed by another newline (?!\r?\n)
107
111
  filteredOutput = filteredOutput.replace(/(?<!^)(\r?\n)(?!\r?\n|$)/g, "$1".concat(logPrefix));
108
- if (!inMultiLineLog)
112
+ if (!inMultiLineLog) {
109
113
  filteredOutput = "".concat(logPrefix).concat(filteredOutput);
110
- if (filteredOutput.endsWith('\n') || filteredOutput.endsWith('\r\n'))
114
+ }
115
+ if (filteredOutput.endsWith('\n') || filteredOutput.endsWith('\r\n')) {
111
116
  inMultiLineLog = false;
112
- else
117
+ }
118
+ else {
113
119
  inMultiLineLog = true;
120
+ }
114
121
  return filteredOutput;
115
122
  };
116
123
  (0, util_node_1.cmd)('npm', ['run', 'watch'], { cwd: packageDir }, {
117
124
  omitLogs: {
118
125
  stdout: {
119
126
  filter: stdoutFilter,
120
- }
127
+ },
121
128
  },
122
129
  });
123
130
  };
@@ -1 +1 @@
1
- {"version":3,"file":"watchWorkspace.js","sourceRoot":"","sources":["../../src/watchWorkspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watchWorkspace.js","sourceRoot":"","sources":["../../src/watchWorkspace.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspaceCommand.d.ts","sourceRoot":"","sources":["../../src/workspaceCommand.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,qBA0B5B,CAAA"}
1
+ {"version":3,"file":"workspaceCommand.d.ts","sourceRoot":"","sources":["../../src/workspaceCommand.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,qBA+B5B,CAAC"}
@@ -88,9 +88,9 @@ var workspaceCommand = function () { return __awaiter(void 0, void 0, void 0, fu
88
88
  _a = _b.sent(), packageMap = _a.packageMap, sortedPackageNames = _a.sortedPackageNames;
89
89
  skippedPackages = ['root'];
90
90
  filteredPackageNames = sortedPackageNames.filter(function (packageName) {
91
- return hasScript(command, packageName, packageMap) &&
91
+ return (hasScript(command, packageName, packageMap) &&
92
92
  !(args.skip && args.skip.includes(packageName)) &&
93
- !skippedPackages.includes(packageName);
93
+ !skippedPackages.includes(packageName));
94
94
  });
95
95
  if (filteredPackageNames.length == 0) {
96
96
  logger.info("> There are no packages with the `".concat(command, "` script in workspace (").concat(workspacePath, ")"));
@@ -123,8 +123,9 @@ function getArgs() {
123
123
  var argsMap = (0, util_node_1.parseArgsMap)(process.argv.slice(3));
124
124
  for (var argName in argsMap) {
125
125
  var argValue = argsMap[argName];
126
- if (argName == 'skip' && typeof argValue === 'string')
126
+ if (argName == 'skip' && typeof argValue === 'string') {
127
127
  args.skip = argValue.split(',');
128
+ }
128
129
  }
129
130
  return args;
130
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workspaceCommand.js","sourceRoot":"","sources":["../../src/workspaceCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspaceCommand.js","sourceRoot":"","sources":["../../src/workspaceCommand.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspacePackageCommand.d.ts","sourceRoot":"","sources":["../../src/workspacePackageCommand.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,qBAuBnC,CAAA"}
1
+ {"version":3,"file":"workspacePackageCommand.d.ts","sourceRoot":"","sources":["../../src/workspacePackageCommand.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,qBA4BnC,CAAC"}
@@ -85,8 +85,9 @@ var workspacePackageCommand = function () { return __awaiter(void 0, void 0, voi
85
85
  case 1:
86
86
  packageMap = (_a.sent()).packageMap;
87
87
  localPackage = packageMap[packageName];
88
- if (!localPackage)
88
+ if (!localPackage) {
89
89
  throw new Error("Package (".concat(cw.color(packageName, logColors_1.secondaryLogColor), ") does not exist in workspace: ").concat(workspacePath));
90
+ }
90
91
  packageDir = path.dirname(localPackage.filePath);
91
92
  logger.info("Running command: ".concat(cw.color("".concat(command, " ").concat(args.join(' ')), logColors_1.secondaryLogColor)));
92
93
  return [4 /*yield*/, (0, util_node_1.cmd)(command, args, { cwd: packageDir }, { logPrefix: "[".concat(cw.color(packageName, logColors_1.secondaryLogColor), "] ") })];
@@ -1 +1 @@
1
- {"version":3,"file":"workspacePackageCommand.js","sourceRoot":"","sources":["../../src/workspacePackageCommand.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA4B;AAC5B,kDAAwE;AACxE,wCAAwC;AACxC,yCAAgE;AAEhE;;;;;GAKG;AACI,IAAM,uBAAuB,GAAG;;;;;gBAC/B,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBAC7B,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,EAAE,GAAG,IAAI,2BAAe,EAAE,CAAC;gBAC3B,MAAM,GAAG,IAAI,aAAM,CAAC,UAAG,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,2BAAe,CAAC,SAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,6BAAiB,CAAC,SAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,2BAAe,CAAC,CAAE,CAAC,CAAC;gBACtJ,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;gBACb,qBAAM,uBAAW,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAA;;gBAApE,UAAU,GAAK,CAAA,SAAqD,CAAA,WAA1D;gBACZ,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;gBAC7C,IAAI,CAAC,YAAY;oBACf,MAAM,IAAI,KAAK,CAAC,mBAAY,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,6BAAiB,CAAC,4CAAkC,aAAa,CAAE,CAAC,CAAA;gBAElH,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACvD,MAAM,CAAC,IAAI,CAAC,2BAAoB,EAAE,CAAC,KAAK,CAAC,UAAG,OAAO,cAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,EAAE,6BAAiB,CAAC,CAAE,CAAC,CAAC;gBAC/F,qBAAM,IAAA,eAAG,EAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,WAAI,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,6BAAiB,CAAC,OAAI,EAAE,CAAC,EAAA;;gBAA9G,SAA8G,CAAC;gBAC/G,MAAM,CAAC,IAAI,CAAC,oCAA6B,EAAE,CAAC,KAAK,CAAC,UAAG,OAAO,cAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,EAAE,6BAAiB,CAAC,CAAE,CAAC,CAAC;qBACpG,CAAA,OAAO,KAAK,KAAK,CAAA,EAAjB,wBAAiB;gBACnB,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;gBACtB,qBAAM,uBAAW,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAA;;gBAApE,eAAe,CAAA,SAAqD,CAAA,WAA1D;gBACZ,iBAAe,YAAU,CAAC,WAAW,CAAC,CAAC;gBAC7C,qBAAM,uBAAW,CAAC,mBAAmB,CAAC,cAAY,EAAE,YAAU,EAAE,MAAM,CAAC,EAAA;;gBAAvE,SAAuE,CAAC;gBACxE,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;;;;;KAE/C,CAAA;AAvBY,QAAA,uBAAuB,2BAuBnC"}
1
+ {"version":3,"file":"workspacePackageCommand.js","sourceRoot":"","sources":["../../src/workspacePackageCommand.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA6B;AAC7B,kDAAyE;AACzE,wCAAyC;AACzC,yCAAiE;AAEjE;;;;;GAKG;AACI,IAAM,uBAAuB,GAAG;;;;;gBAC/B,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC9B,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,EAAE,GAAG,IAAI,2BAAe,EAAE,CAAC;gBAC3B,MAAM,GAAG,IAAI,aAAM,CACvB,UAAG,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,2BAAe,CAAC,SAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,6BAAiB,CAAC,SAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,2BAAe,CAAC,CAAE,CACjI,CAAC;gBACI,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;gBACb,qBAAM,uBAAW,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAA;;gBAApE,UAAU,GAAK,CAAA,SAAqD,CAAA,WAA1D;gBACZ,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;gBAC7C,IAAI,CAAC,YAAY,EAAE;oBACjB,MAAM,IAAI,KAAK,CACb,mBAAY,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,6BAAiB,CAAC,4CAAkC,aAAa,CAAE,CACtG,CAAC;iBACH;gBAEK,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACvD,MAAM,CAAC,IAAI,CAAC,2BAAoB,EAAE,CAAC,KAAK,CAAC,UAAG,OAAO,cAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,EAAE,6BAAiB,CAAC,CAAE,CAAC,CAAC;gBAC/F,qBAAM,IAAA,eAAG,EAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,WAAI,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,6BAAiB,CAAC,OAAI,EAAE,CAAC,EAAA;;gBAA9G,SAA8G,CAAC;gBAC/G,MAAM,CAAC,IAAI,CAAC,oCAA6B,EAAE,CAAC,KAAK,CAAC,UAAG,OAAO,cAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,EAAE,6BAAiB,CAAC,CAAE,CAAC,CAAC;qBACpG,CAAA,OAAO,KAAK,KAAK,CAAA,EAAjB,wBAAiB;gBACnB,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;gBACtB,qBAAM,uBAAW,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAA;;gBAApE,eAAe,CAAA,SAAqD,CAAA,WAA1D;gBACZ,iBAAe,YAAU,CAAC,WAAW,CAAC,CAAC;gBAC7C,qBAAM,uBAAW,CAAC,mBAAmB,CAAC,cAAY,EAAE,YAAU,EAAE,MAAM,CAAC,EAAA;;gBAAvE,SAAuE,CAAC;gBACxE,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;;;;;KAE/C,CAAC;AA5BW,QAAA,uBAAuB,2BA4BlC"}
package/jest.config.js CHANGED
@@ -1,18 +1,9 @@
1
1
  module.exports = {
2
- "roots": [
3
- "<rootDir>/test"
4
- ],
5
- "transform": {
6
- "^.+\\.tsx?$": "ts-jest"
7
- },
8
- "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$",
9
- "moduleFileExtensions": [
10
- "ts",
11
- "tsx",
12
- "js",
13
- "jsx",
14
- "json",
15
- "node"
16
- ],
17
- "testEnvironment": "node"
18
- }
2
+ roots: ['<rootDir>/test'],
3
+ transform: {
4
+ '^.+\\.tsx?$': 'ts-jest',
5
+ },
6
+ testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
7
+ moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
8
+ testEnvironment: 'node',
9
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proteinjs/build",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
4
4
  "description": "Workspace build tools",
5
5
  "main": "./dist/generated/index.js",
6
6
  "types": "./dist/generated/index.d.ts",
@@ -12,7 +12,8 @@
12
12
  "workspace": "dist/src/bin/runWorkspaceCommand.js",
13
13
  "version-workspace": "dist/src/bin/runVersionWorkspace.js",
14
14
  "workspace-package": "dist/src/bin/runWorkspacePackageCommand.js",
15
- "symlink-workspace": "dist/src/bin/runSymlinkWorkspace.js"
15
+ "symlink-workspace": "dist/src/bin/runSymlinkWorkspace.js",
16
+ "lint-workspace": "dist/src/bin/runLintWorkspace.js"
16
17
  },
17
18
  "publishConfig": {
18
19
  "access": "public"
@@ -45,12 +46,17 @@
45
46
  "@types/jest": "29.5.5",
46
47
  "@types/node": "20.3.1",
47
48
  "@types/semver": "7.5.8",
49
+ "@typescript-eslint/eslint-plugin": "7.8.0",
50
+ "@typescript-eslint/parser": "7.8.0",
48
51
  "babel-loader": "9.1.3",
52
+ "eslint": "8.57.0",
53
+ "eslint-config-prettier": "9.1.0",
54
+ "eslint-plugin-prettier": "5.1.3",
49
55
  "jest": "29.7.0",
50
56
  "ts-jest": "29.1.1",
51
57
  "typescript": "5.2.2",
52
58
  "webpack": "5.90.0",
53
59
  "webpack-cli": "5.1.4"
54
60
  },
55
- "gitHead": "87ab1b687712ae2740e569d2a7eb05cdc28b0b20"
61
+ "gitHead": "b89d738ed65c4cd12367da0b406f44201ee5c38a"
56
62
  }
package/src/Github.ts CHANGED
@@ -1,49 +1,49 @@
1
- import { Octokit } from '@octokit/core'
2
- import { Logger } from '@proteinjs/util'
3
- import { LocalPackage } from '@proteinjs/util-node'
1
+ import { Octokit } from '@octokit/core';
2
+ import { Logger } from '@proteinjs/util';
3
+ import { LocalPackage } from '@proteinjs/util-node';
4
4
 
5
5
  export type WorkflowRun = {
6
- id: number,
7
- name: string,
8
- head_sha: string,
9
- status: string,
10
- conclusion: string|null,
11
- }
6
+ id: number;
7
+ name: string;
8
+ head_sha: string;
9
+ status: string;
10
+ conclusion: string | null;
11
+ };
12
12
 
13
13
  export type Commit = {
14
- owner: string,
15
- repo: string,
16
- sha: string,
17
- }
14
+ owner: string;
15
+ repo: string;
16
+ sha: string;
17
+ };
18
18
 
19
19
  export class Github {
20
20
  private logger = new Logger(this.constructor.name);
21
21
  private authToken: string;
22
22
 
23
- constructor(
24
- authToken?: string
25
- ) {
23
+ constructor(authToken?: string) {
26
24
  this.authToken = authToken ? authToken : this.getGithubToken();
27
25
  }
28
26
 
29
27
  private getGithubToken() {
30
- if (process.env.GITHUB_TOKEN)
28
+ if (process.env.GITHUB_TOKEN) {
31
29
  return process.env.GITHUB_TOKEN;
30
+ }
32
31
 
33
32
  throw new Error(`GITHUB_TOKEN env variable not set`);
34
33
  }
35
34
 
36
35
  /**
37
36
  * Check if the workflow run triggered by a commit resulted in packages being built and tested successfully
38
- *
37
+ *
39
38
  * @param workflowName the name of the workflow
40
39
  * @param commit the commit that triggered the workflow
41
40
  * @param timeout max time to wait for workflow completion
42
- *
41
+ *
43
42
  * @returns true if the ci workflow completed successfully, otherwise throws an error
44
43
  */
45
44
  async repoCiPassed(workflowName: string, commit: Commit, localPackage: LocalPackage, timeout = 5 * 60 * 1000) {
46
- let startTime = Date.now();
45
+ const startTime = Date.now();
46
+ // eslint-disable-next-line no-constant-condition
47
47
  while (true) {
48
48
  const workflowRun = await this.getWorkflowRun(workflowName, commit);
49
49
  if (workflowRun && workflowRun.status === 'completed') {
@@ -55,29 +55,32 @@ export class Github {
55
55
  throw new Error(`Workflow run failed: ${workflowName}, for commit: ${JSON.stringify(commit)}`);
56
56
  }
57
57
 
58
- if (Date.now() - startTime > timeout)
58
+ if (Date.now() - startTime > timeout) {
59
59
  throw new Error(`Timed out checking for workflow run: ${workflowName}, for commit: ${JSON.stringify(commit)}`);
60
+ }
60
61
 
61
- await new Promise(resolve => setTimeout(resolve, 10000));
62
+ await new Promise((resolve) => setTimeout(resolve, 10000));
62
63
  }
63
64
  }
64
65
 
65
- private async getWorkflowRun(workflowName: string, commit: Commit): Promise<WorkflowRun|undefined> {
66
+ private async getWorkflowRun(workflowName: string, commit: Commit): Promise<WorkflowRun | undefined> {
66
67
  const octokit = new Octokit({ auth: this.authToken });
67
68
  const response = await octokit.request('GET /repos/{owner}/{repo}/actions/runs', {
68
69
  owner: commit.owner,
69
70
  repo: commit.repo,
70
71
  per_page: 10,
71
72
  });
72
- const workflowRuns = response.data.workflow_runs.filter(run => {
73
- if (run.head_sha !== commit.sha)
73
+ const workflowRuns = response.data.workflow_runs.filter((run) => {
74
+ if (run.head_sha !== commit.sha) {
74
75
  return false;
76
+ }
75
77
 
76
- if (workflowName && run.name !== workflowName)
78
+ if (workflowName && run.name !== workflowName) {
77
79
  return false;
80
+ }
78
81
 
79
82
  return true;
80
83
  }) as WorkflowRun[];
81
84
  return workflowRuns[0];
82
85
  }
83
- }
86
+ }
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { buildWorkspace } from '../buildWorkspace'
3
+ import { buildWorkspace } from '../buildWorkspace';
4
4
 
5
- buildWorkspace();
5
+ buildWorkspace();
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { cleanWorkspace } from '../cleanWorkspace'
3
+ import { cleanWorkspace } from '../cleanWorkspace';
4
4
 
5
- cleanWorkspace();
5
+ cleanWorkspace();
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { lintWorkspace } from '../lintWorkspace';
4
+
5
+ lintWorkspace();
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { symlinkWorkspace } from '../symlinkWorkspace'
3
+ import { symlinkWorkspace } from '../symlinkWorkspace';
4
4
 
5
- symlinkWorkspace();
5
+ symlinkWorkspace();
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { testWorkspace } from '../testWorkspace'
3
+ import { testWorkspace } from '../testWorkspace';
4
4
 
5
- testWorkspace();
5
+ testWorkspace();
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { versionWorkspace } from '../versionWorkspace'
3
+ import { versionWorkspace } from '../versionWorkspace';
4
4
 
5
- versionWorkspace();
5
+ versionWorkspace();
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { watchWorkspace } from '../watchWorkspace'
3
+ import { watchWorkspace } from '../watchWorkspace';
4
4
 
5
- watchWorkspace();
5
+ watchWorkspace();
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { workspaceCommand } from '../workspaceCommand'
3
+ import { workspaceCommand } from '../workspaceCommand';
4
4
 
5
- workspaceCommand();
5
+ workspaceCommand();
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { workspacePackageCommand } from '../workspacePackageCommand'
3
+ import { workspacePackageCommand } from '../workspacePackageCommand';
4
4
 
5
- workspacePackageCommand();
5
+ workspacePackageCommand();
@@ -1,15 +1,16 @@
1
- import * as path from 'path'
2
- import { LogColorWrapper, PackageUtil, cmd, parseArgsMap } from '@proteinjs/util-node'
3
- import { Logger } from '@proteinjs/util'
4
- import { primaryLogColor, secondaryLogColor } from './logColors'
1
+ import * as path from 'path';
2
+ import { LogColorWrapper, PackageUtil, cmd, parseArgsMap } from '@proteinjs/util-node';
3
+ import { Logger } from '@proteinjs/util';
4
+ import { primaryLogColor, secondaryLogColor } from './logColors';
5
5
 
6
6
  /**
7
7
  * Install and build workspace, in dependency order.
8
- *
8
+ *
9
9
  * Optional args:
10
- *
10
+ *
11
11
  * --no-install=@some/package,@another/package
12
12
  * --no-build=@some/package,@another/package
13
+ * --no-lint=@some/package,@another/package
13
14
  * --skip=@some/package,@another/package
14
15
  */
15
16
  export async function buildWorkspace() {
@@ -19,17 +20,20 @@ export async function buildWorkspace() {
19
20
  const workspacePath = process.cwd();
20
21
  const { packageMap, sortedPackageNames } = await PackageUtil.getWorkspaceMetadata(workspacePath);
21
22
  const skippedPackages = ['root'];
22
- const filteredPackageNames = sortedPackageNames.filter(packageName => {
23
- return !!packageMap[packageName].packageJson.scripts?.build &&
23
+ const filteredPackageNames = sortedPackageNames.filter((packageName) => {
24
+ return (
25
+ !!packageMap[packageName].packageJson.scripts?.build &&
24
26
  !(args.skip && args.skip.includes(packageName)) &&
25
27
  !skippedPackages.includes(packageName)
26
- ;
28
+ );
27
29
  });
28
30
 
29
- logger.info(`> Installing and building ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`);
31
+ logger.info(
32
+ `> Installing, building, and linting ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`
33
+ );
30
34
  logger.debug(`packageMap:\n${JSON.stringify(packageMap, null, 2)}`, true);
31
35
  logger.debug(`filteredPackageNames:\n${JSON.stringify(filteredPackageNames, null, 2)}`, true);
32
- for (let packageName of filteredPackageNames) {
36
+ for (const packageName of filteredPackageNames) {
33
37
  const localPackage = packageMap[packageName];
34
38
  const packageDir = path.dirname(localPackage.filePath);
35
39
 
@@ -43,29 +47,41 @@ export async function buildWorkspace() {
43
47
  await cmd('npm', ['run', 'build'], { cwd: packageDir }, { logPrefix: `[${cw.color(packageName)}] ` });
44
48
  logger.info(`Built ${cw.color(packageName)} (${packageDir})`);
45
49
  }
50
+
51
+ if (!args.noLint || !args.noLint.includes(packageName)) {
52
+ await cmd('npx', ['prettier', '.', '--write'], { cwd: packageDir }, { logPrefix: `[${cw.color(packageName)}] ` });
53
+ await cmd('npx', ['eslint', '.', '--fix'], { cwd: packageDir }, { logPrefix: `[${cw.color(packageName)}] ` });
54
+ logger.info(`Linted ${cw.color(packageName)} (${packageDir})`);
55
+ }
46
56
  }
47
57
 
48
- logger.info(`> Installed and built ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`);
58
+ logger.info(
59
+ `> Installed, built, and linted ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`
60
+ );
49
61
  }
50
62
 
51
63
  type Args = {
52
- noInstall?: string[],
53
- noBuild?: string[],
54
- skip?: string[],
55
- }
64
+ noInstall?: string[];
65
+ noBuild?: string[];
66
+ noLint?: string[];
67
+ skip?: string[];
68
+ };
56
69
 
57
70
  function getArgs() {
58
71
  const args: Args = {};
59
72
  const argsMap = parseArgsMap(process.argv.slice(2));
60
- for (let argName in argsMap) {
73
+ for (const argName in argsMap) {
61
74
  const argValue = argsMap[argName];
62
- if (argName == 'no-install' && typeof argValue === 'string')
75
+ if (argName == 'no-install' && typeof argValue === 'string') {
63
76
  args.noInstall = argValue.split(',');
64
- else if (argName == 'no-build' && typeof argValue === 'string')
77
+ } else if (argName == 'no-build' && typeof argValue === 'string') {
65
78
  args.noBuild = argValue.split(',');
66
- else if (argName == 'skip' && typeof argValue === 'string')
79
+ } else if (argName == 'no-lint' && typeof argValue === 'string') {
80
+ args.noLint = argValue.split(',');
81
+ } else if (argName == 'skip' && typeof argValue === 'string') {
67
82
  args.skip = argValue.split(',');
83
+ }
68
84
  }
69
85
 
70
86
  return args;
71
- }
87
+ }
@@ -1,19 +1,27 @@
1
- import * as path from 'path'
2
- import { PackageUtil, cmd, WorkspaceMetadata } from '@proteinjs/util-node'
3
- import { Logger } from '@proteinjs/util'
1
+ import * as path from 'path';
2
+ import { PackageUtil, cmd, WorkspaceMetadata } from '@proteinjs/util-node';
3
+ import { Logger } from '@proteinjs/util';
4
4
 
5
5
  export const cleanWorkspace = async (workspaceMetadata?: WorkspaceMetadata) => {
6
6
  const logger = new Logger('workspace:clean');
7
7
  const workspacePath = process.cwd();
8
- const { packageMap, sortedPackageNames } = workspaceMetadata ? workspaceMetadata : await PackageUtil.getWorkspaceMetadata(workspacePath);
8
+ const { packageMap, sortedPackageNames } = workspaceMetadata
9
+ ? workspaceMetadata
10
+ : await PackageUtil.getWorkspaceMetadata(workspacePath);
9
11
  const skippedPackages = ['root'];
10
- const filteredPackageNames = sortedPackageNames.filter(packageName => !!packageMap[packageName].packageJson.scripts?.clean && !skippedPackages.includes(packageName));
12
+ const filteredPackageNames = sortedPackageNames.filter(
13
+ (packageName) => !!packageMap[packageName].packageJson.scripts?.clean && !skippedPackages.includes(packageName)
14
+ );
11
15
 
12
- logger.info(`> Cleaning ${filteredPackageNames.length} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`);
13
- for (let packageName of filteredPackageNames) {
16
+ logger.info(
17
+ `> Cleaning ${filteredPackageNames.length} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`
18
+ );
19
+ for (const packageName of filteredPackageNames) {
14
20
  const localPackage = packageMap[packageName];
15
21
  const packageDir = path.dirname(localPackage.filePath);
16
22
  await cmd('npm', ['run', 'clean'], { cwd: packageDir });
17
23
  }
18
- logger.info(`> Finished cleaning ${filteredPackageNames.length} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`);
19
- }
24
+ logger.info(
25
+ `> Finished cleaning ${filteredPackageNames.length} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`
26
+ );
27
+ };
@@ -0,0 +1,62 @@
1
+ import * as path from 'path';
2
+ import { LogColorWrapper, PackageUtil, cmd, parseArgsMap } from '@proteinjs/util-node';
3
+ import { Logger } from '@proteinjs/util';
4
+ import { primaryLogColor, secondaryLogColor } from './logColors';
5
+
6
+ /**
7
+ * Lint workspace, in dependency order.
8
+ *
9
+ * Optional args:
10
+ *
11
+ * --skip=@some/package,@another/package
12
+ */
13
+ export async function lintWorkspace() {
14
+ const cw = new LogColorWrapper();
15
+ const logger = new Logger(cw.color('workspace:', primaryLogColor) + cw.color('build', secondaryLogColor));
16
+ const args = getArgs();
17
+ const workspacePath = process.cwd();
18
+ const { packageMap, sortedPackageNames } = await PackageUtil.getWorkspaceMetadata(workspacePath);
19
+ const skippedPackages = ['root'];
20
+ const filteredPackageNames = sortedPackageNames.filter((packageName) => {
21
+ return (
22
+ !!packageMap[packageName].packageJson.scripts?.build &&
23
+ !(args.skip && args.skip.includes(packageName)) &&
24
+ !skippedPackages.includes(packageName)
25
+ );
26
+ });
27
+
28
+ logger.info(
29
+ `> Linting ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`
30
+ );
31
+ logger.debug(`packageMap:\n${JSON.stringify(packageMap, null, 2)}`, true);
32
+ logger.debug(`filteredPackageNames:\n${JSON.stringify(filteredPackageNames, null, 2)}`, true);
33
+ for (const packageName of filteredPackageNames) {
34
+ const localPackage = packageMap[packageName];
35
+ const packageDir = path.dirname(localPackage.filePath);
36
+
37
+ await cmd('npx', ['prettier', '.', '--write'], { cwd: packageDir }, { logPrefix: `[${cw.color(packageName)}] ` });
38
+ await cmd('npx', ['eslint', '.', '--fix'], { cwd: packageDir }, { logPrefix: `[${cw.color(packageName)}] ` });
39
+ logger.info(`Linted ${cw.color(packageName)} (${packageDir})`);
40
+ }
41
+
42
+ logger.info(
43
+ `> Linted ${cw.color(`${filteredPackageNames.length}`, secondaryLogColor)} package${filteredPackageNames.length != 1 ? 's' : ''} in workspace (${workspacePath})`
44
+ );
45
+ }
46
+
47
+ type Args = {
48
+ skip?: string[];
49
+ };
50
+
51
+ function getArgs() {
52
+ const args: Args = {};
53
+ const argsMap = parseArgsMap(process.argv.slice(2));
54
+ for (const argName in argsMap) {
55
+ const argValue = argsMap[argName];
56
+ if (argName == 'skip' && typeof argValue === 'string') {
57
+ args.skip = argValue.split(',');
58
+ }
59
+ }
60
+
61
+ return args;
62
+ }
package/src/logColors.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export const primaryLogColor = { r: 81, g: 0, b: 135 };
2
- export const secondaryLogColor = { r: 253, g: 197, b: 0 };
2
+ export const secondaryLogColor = { r: 253, g: 197, b: 0 };