diff --git a/scripts/build-release.ts b/scripts/build-release.js similarity index 94% rename from scripts/build-release.ts rename to scripts/build-release.js index 823cf7e..b08461b 100644 --- a/scripts/build-release.ts +++ b/scripts/build-release.js @@ -9,19 +9,10 @@ const execa = require('execa'); const simpleGit = require('simple-git/promise'); const inquirer = require('inquirer'); const { exec } = require('child_process'); -import { generateChangelog, hasChangeLogEntry } from './imports/changelog'; +const { generateChangelog, hasChangeLogEntry } = require('./imports/changelog'); const packageInfo = require('../package.json'); -declare global { - interface String { - error: string - verbose: string - warn: string - green: string - } -} - colors.setTheme({ verbose: 'cyan', warn: 'yellow', @@ -144,7 +135,7 @@ async function keypress() { }]); } -async function commitChangeLog(): Promise { +async function commitChangeLog() { const status = await git.status(); if (status.staged.length > 0) { @@ -216,7 +207,7 @@ function createArchive(appId, fileBaseName) { } function createNextcloudSignature(appId, filePath) { - return new Promise((resolve) => { + return new Promise((resolve) => { const sigPath = filePath + '.ncsig'; exec(`openssl dgst -sha512 -sign ~/.nextcloud/certificates/${appId}.key ${filePath} | openssl base64 > ${sigPath}`, (error, stdout, stderr) => { if (error) { @@ -239,7 +230,7 @@ function createNextcloudSignature(appId, filePath) { } function createGPGSignature(filePath) { - return new Promise((resolve) => { + return new Promise((resolve) => { exec(`gpg --yes --detach-sign "${filePath}"`, (error, stdout, stderr) => { if (error) { throw error; @@ -261,7 +252,7 @@ function createGPGSignature(filePath) { } function createGPGArmorSignature(filePath) { - return new Promise((resolve) => { + return new Promise((resolve) => { exec(`gpg --yes --detach-sign --armor "${filePath}"`, (error, stdout, stderr) => { if (error) { throw error; @@ -289,7 +280,7 @@ async function validateXml(xmlDoc) { throw 'Found no schema location'; } - let schemaString: string; + let schemaString; try { console.log('Downloading schema file...'.verbose); @@ -315,8 +306,8 @@ async function validateXml(xmlDoc) { } } -function wget(url: string) { - return new Promise((resolve, reject) => { +function wget(url) { + return new Promise((resolve, reject) => { https.get(url, (resp) => { let data = ''; @@ -332,4 +323,4 @@ function wget(url: string) { reject(err); }); }); -} \ No newline at end of file +} diff --git a/scripts/imports/changelog.ts b/scripts/imports/changelog.js similarity index 84% rename from scripts/imports/changelog.ts rename to scripts/imports/changelog.js index 4a1b42c..19a0d7f 100644 --- a/scripts/imports/changelog.ts +++ b/scripts/imports/changelog.js @@ -6,7 +6,7 @@ const inquirer = require('inquirer'); const git = simpleGit(); -export async function generateChangelog(version: string): Promise { +async function generateChangelog(version) { const latestTag = (await git.tags()).latest; const title = `v${version}` === latestTag ? '[Unreleased]' : `${version} (${new Date().toISOString().split('T')[0]})`; @@ -33,13 +33,13 @@ export async function generateChangelog(version: string): Promise { } const [, type, scope, description] = match; - const entry = { type, scope, description, issues: [] }; + const entry = { type, scope, description, issues: [] }; if(log.body) { const matches = log.body.match(/(?:fix|fixes|closes?|refs?) #(\d+)/g) || []; for (const match of matches) { - const [, number] = match.match(/(\d+)$/); + const [, number] = match.match(/(\d+)$/); entry.issues.push(number); } @@ -93,7 +93,7 @@ export async function generateChangelog(version: string): Promise { return changeLog; } -export async function editChangeLog(changeLog: string):Promise { +async function editChangeLog(changeLog) { const answers = await inquirer.prompt([{ type: 'editor', name: 'changeLog', @@ -104,7 +104,7 @@ export async function editChangeLog(changeLog: string):Promise { return answers.changeLog; } -export async function hasChangeLogEntry(version: string): Promise { +async function hasChangeLogEntry(version) { if (!version) { return false; } @@ -118,14 +118,14 @@ export async function hasChangeLogEntry(version: string): Promise { return true; } -export function getChangelogEntry(version: string): Promise { - return new Promise(resolve => { +function getChangelogEntry(version) { + return new Promise(resolve => { fs.readFile(path.join(__dirname, '..', '..', 'CHANGELOG.md'), 'utf8', function (err, data) { if (err) throw err; const releaseHeader = /^\d+\.\d+\.\d+$/.test(version) ? `## ${version}` : '## [Unreleased]'; const lines = data.split('\n'); - const entry: string[] = []; + const entry = []; let inEntry = false; @@ -147,3 +147,5 @@ export function getChangelogEntry(version: string): Promise { }); }); } + +exports.default = {generateChangelog, editChangeLog, hasChangeLogEntry, getChangelogEntry}; \ No newline at end of file diff --git a/scripts/publish-release.ts b/scripts/publish-release.js similarity index 93% rename from scripts/publish-release.ts rename to scripts/publish-release.js index 0976a82..3f0947a 100644 --- a/scripts/publish-release.ts +++ b/scripts/publish-release.js @@ -8,20 +8,11 @@ const simpleGit = require('simple-git/promise'); const inquirer = require('inquirer'); const dotenv = require('dotenv'); const { Octokit } = require('@octokit/rest'); -import { getChangelogEntry, hasChangeLogEntry } from './imports/changelog'; +const { getChangelogEntry, hasChangeLogEntry } = require('./imports/changelog'); // eslint-disable-next-line @typescript-eslint/no-var-requires const packageInfo = require('../package.json'); -declare global { - interface String { - error: string - verbose: string - warn: string - green: string - } -} - colors.setTheme({ verbose: 'cyan', warn: 'yellow', @@ -54,7 +45,9 @@ async function notAlreadyTagged() { } async function lastCommitNotBuild() { - return (await git.log(['-1'])).latest?.message !== commitMessage; + const latest = (await git.log(['-1'])).latest || {}; + + return latest.message !== commitMessage; } async function isMasterBranch() { @@ -72,7 +65,7 @@ async function stageAllFiles() { const gitProcess = execa('git', ['add', '-u']); - gitProcess.stdout?.pipe(process.stdout); + gitProcess.stdout.pipe(process.stdout); return gitProcess; } @@ -80,7 +73,7 @@ async function stageAllFiles() { function showStagedDiff() { const gitProcess = execa('git', ['diff', '--staged']); - gitProcess.stdout?.pipe(process.stdout); + gitProcess.stdout.pipe(process.stdout); return gitProcess; } @@ -181,7 +174,7 @@ async function createGithubRelease(changeLog) { owner, repo, release_id: releaseResponse.data.id, - data: fs.createReadStream(file), + data: fs.createReadStream(file), headers: { 'content-type': getMimeType(filename), 'content-length': fs.statSync(file)['size'], @@ -206,7 +199,7 @@ async function uploadToNextcloudStore(archiveUrl) { const hostname = 'apps.nextcloud.com'; const apiEndpoint = '/api/v1/apps/releases'; - const signatureFile = files.find(file => file.endsWith('.ncsig')); + const signatureFile = files.find(file => file.endsWith('.ncsig')); const data = JSON.stringify({ download: archiveUrl, signature: fs.readFileSync(signatureFile, 'utf-8'), @@ -229,7 +222,7 @@ async function uploadToNextcloudStore(archiveUrl) { return; } - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { const req = https.request(options, res => { if (res.statusCode === 200) { console.log('App release was updated successfully'.verbose);