Feat: Support macOS and Windows, migrate JavaScript to TypeScript (#32)

- Support macOS and Windows (Close #24 )
- Refactoring
  - Error handling
  - TypeScript
- Prettier (Close #29 )
- GHA: Add upload-artifact step for test coverage
- deps: Install husky
This commit is contained in:
Shohei Ueda
2019-09-21 10:41:21 +09:00
committed by GitHub
parent 4d54b90c0e
commit dc8541739a
24 changed files with 924 additions and 168 deletions

19
src/get-latest-version.ts Normal file
View File

@@ -0,0 +1,19 @@
const XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;
export default function getLatestVersion(): Promise<string> {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
const url: string = 'https://formulae.brew.sh/api/formula/hugo.json';
xhr.open('GET', url);
xhr.send();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
const result = JSON.parse(xhr.responseText);
const latestVersion: string = result.versions.stable;
resolve(latestVersion);
} else if (xhr.readyState === 4 && xhr.status !== 200) {
reject(`ERROR: got status ${xhr.status} of ${url}`);
}
};
});
}