From e798f1ccd699f6a8c9475206203eae1e3d82ce59 Mon Sep 17 00:00:00 2001 From: SebastiaanYN Date: Sat, 29 Feb 2020 19:11:42 +0100 Subject: [PATCH] fix: override Kotlin ace mode to kotlin --- package-lock.json | 6 ++++++ package.json | 3 ++- src/index.js | 32 +++++++++++++++++++++++++++----- src/override.yml | 2 ++ 4 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 src/override.yml diff --git a/package-lock.json b/package-lock.json index d3459af..553e411 100644 --- a/package-lock.json +++ b/package-lock.json @@ -984,6 +984,12 @@ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true }, + "merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", + "dev": true + }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", diff --git a/package.json b/package.json index 7b1ef87..322a537 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,8 @@ "eslint-plugin-eslint-comments": "^3.1.2", "eslint-plugin-import": "^2.19.1", "eslint-plugin-jsdoc": "^15.8.0", - "js-yaml": "^3.13.1" + "js-yaml": "^3.13.1", + "merge": "^1.2.1" }, "files": [ "dist" diff --git a/src/index.js b/src/index.js index 1153f54..c820c50 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,8 @@ const fs = require('fs'); +const { join } = require('path'); +const yaml = require('js-yaml'); +const merge = require('merge'); + const download = require('./download.js'); const config = require('../config.json'); @@ -9,6 +13,14 @@ const indexFile = ` module.exports.languages = require('./languages.json'); `; +function mergeOverrides(linguist) { + const overrides = yaml.safeLoad( + fs.readFileSync(join(__dirname, 'override.yml')), + ); + + return merge.recursive(linguist, overrides); +} + function transformLanguage(name, data) { return { name, @@ -38,14 +50,24 @@ function transformLanguages(githubLinguist) { } download(config.url).then((githubLinguist) => { - const linguist = transformLinguist(githubLinguist); - const languages = transformLanguages(githubLinguist); + const linguist = mergeOverrides(githubLinguist); if (!fs.existsSync(DIST_DIR)) { fs.mkdirSync(DIST_DIR); } - fs.writeFileSync(`${DIST_DIR}/index.js`, indexFile); - fs.writeFileSync(`${DIST_DIR}/linguist.json`, JSON.stringify(linguist, null, 2)); - fs.writeFileSync(`${DIST_DIR}/languages.json`, JSON.stringify(languages, null, 2)); + fs.writeFileSync( + join(DIST_DIR, 'index.js'), + indexFile, + ); + + fs.writeFileSync( + join(DIST_DIR, 'linguist.json'), + JSON.stringify(transformLinguist(linguist), null, 2), + ); + + fs.writeFileSync( + join(DIST_DIR, 'languages.json'), + JSON.stringify(transformLanguages(linguist), null, 2), + ); }); diff --git a/src/override.yml b/src/override.yml new file mode 100644 index 0000000..ce94293 --- /dev/null +++ b/src/override.yml @@ -0,0 +1,2 @@ +Kotlin: + ace_mode: kotlin