diff --git a/CHANGELOG.md b/CHANGELOG.md index a8e64d690..bc7c4b887 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - ignore ratelimits for bots #3439 - remove `msgs_mdns` references to deleted messages during housekeeping #3387 - format message lines starting with `>` as quotes #3434 +- node: remove `split2` dependency ### Fixes - set a default error if NDN does not provide an error diff --git a/node/scripts/generate-constants.js b/node/scripts/generate-constants.js index 72dc7b613..6f7c25935 100755 --- a/node/scripts/generate-constants.js +++ b/node/scripts/generate-constants.js @@ -1,73 +1,69 @@ #!/usr/bin/env node - -const fs = require('fs') +const fs = require('fs/promises') const path = require('path') -const split = require('split2') const data = [] const regex = /^#define\s+(\w+)\s+(\w+)/i -const header = path.resolve( - __dirname, - '../../deltachat-ffi/deltachat.h' -) +const header = path.resolve(__dirname, '../../deltachat-ffi/deltachat.h') -console.log('Generating constants...') - -fs.createReadStream(header) - .pipe(split()) - .on('data', (line) => { +;(async () => { + console.log('Generating constants...') + const header_data = await fs.readFile(header, 'utf-8') + for (const line of header_data.split(/\r?\n/g)) { const match = regex.exec(line) if (match) { const key = match[1] const value = parseInt(match[2]) - if (isNaN(value)) return + if (isNaN(value)) continue data.push({ key, value }) } - }) - .on('end', () => { - const constants = data - .filter( - ({ key }) => key.toUpperCase()[0] === key[0] // check if define name is uppercase - ) - .sort((lhs, rhs) => { - if (lhs.key < rhs.key) return -1 - else if (lhs.key > rhs.key) return 1 - return 0 - }) - .map((row) => { - return ` ${row.key}: ${row.value}` - }) - .join(',\n') + } - const events = data - .sort((lhs, rhs) => { - if (lhs.value < rhs.value) return -1 - else if (lhs.value > rhs.value) return 1 - return 0 - }) - .filter((i) => { - return i.key.startsWith('DC_EVENT_') - }) - .map((i) => { - return ` ${i.value}: '${i.key}'` - }) - .join(',\n') + delete header_data - // backwards compat - fs.writeFileSync( - path.resolve(__dirname, '../constants.js'), - `// Generated!\n\nmodule.exports = {\n${constants}\n}\n` - ) - // backwards compat - fs.writeFileSync( - path.resolve(__dirname, '../events.js'), - `/* eslint-disable quotes */\n// Generated!\n\nmodule.exports = {\n${events}\n}\n` + const constants = data + .filter( + ({ key }) => key.toUpperCase()[0] === key[0] // check if define name is uppercase ) + .sort((lhs, rhs) => { + if (lhs.key < rhs.key) return -1 + else if (lhs.key > rhs.key) return 1 + return 0 + }) + .map((row) => { + return ` ${row.key}: ${row.value}` + }) + .join(',\n') - fs.writeFileSync( - path.resolve(__dirname, '../lib/constants.ts'), - `// Generated!\n\nexport enum C {\n${constants.replace(/:/g, ' =')},\n}\n + const events = data + .sort((lhs, rhs) => { + if (lhs.value < rhs.value) return -1 + else if (lhs.value > rhs.value) return 1 + return 0 + }) + .filter((i) => { + return i.key.startsWith('DC_EVENT_') + }) + .map((i) => { + return ` ${i.value}: '${i.key}'` + }) + .join(',\n') + + // backwards compat + await fs.writeFile( + path.resolve(__dirname, '../constants.js'), + `// Generated!\n\nmodule.exports = {\n${constants}\n}\n` + ) + // backwards compat + await fs.writeFile( + path.resolve(__dirname, '../events.js'), + `/* eslint-disable quotes */\n// Generated!\n\nmodule.exports = {\n${events}\n}\n` + ) + + await fs.writeFile( + path.resolve(__dirname, '../lib/constants.ts'), + `// Generated!\n\nexport enum C {\n${constants.replace(/:/g, ' =')},\n}\n // Generated!\n\nexport const EventId2EventName: { [key: number]: string } = {\n${events},\n}\n` - ) - }) + ) +})() diff --git a/package.json b/package.json index c07a2ddcf..a20b51880 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,6 @@ "prebuildify": "^3.0.0", "prebuildify-ci": "^1.0.4", "prettier": "^2.0.5", - "split2": "^4.1.0", "typedoc": "^0.17.0", "typescript": "^3.9.10" },