bitwardenjavascripttypescriptangularelectronclidesktopnodejswebextensionfirefoxbrowser-extensionchromesafari
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.0 KiB
39 lines
1.0 KiB
const concurrently = require("concurrently"); |
|
const path = require("path"); |
|
const fs = require("fs"); |
|
|
|
function getFiles(dir) { |
|
results = []; |
|
fs.readdirSync(dir).forEach((file) => { |
|
file = path.join(dir, file); |
|
const stat = fs.statSync(file); |
|
if (stat && stat.isDirectory()) { |
|
results = results.concat(getFiles(file)); |
|
} else { |
|
results.push(file); |
|
} |
|
}); |
|
return results; |
|
} |
|
|
|
const files = getFiles(path.join(__dirname, "..", "libs")) |
|
.filter((file) => { |
|
const name = path.basename(file); |
|
return name === "tsconfig.json"; |
|
}) |
|
.filter((path) => { |
|
// Exclude shared since it's not actually a library |
|
return !path.includes("libs/shared/"); |
|
}); |
|
|
|
concurrently([ |
|
{ |
|
// run the strict type check plugin until we're fully converted, then update tsconfig.json to use strict |
|
name: "typescript-strict-plugin", |
|
command: "npx tsc-strict", |
|
}, |
|
...files.map((file) => ({ |
|
name: path.basename(path.dirname(file)), |
|
command: `npx tsc --noEmit --project ${file}`, |
|
})), |
|
]);
|
|
|