diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-09-19 19:04:28 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-19 19:04:28 -0400 |
commit | 51d4e5b0ff4c0054bf5012464414ec0657d09963 (patch) | |
tree | 9920d1a9c84bf968ca8105700450792d78ac0088 /dev/yomichan-util.js | |
parent | 4293f731537906785da3b1f20535ddd18a4edd21 (diff) |
Dev/test script organization (#846)
* Move lint scripts
* Move dictionary-validate.js
* Move schema-validate.js
* Move createTestDictionaryArchive, remove yomichan-test.js
* Rename yomichan-util.js to util.js
* Move test/yomichan-vm.js to dev/vm.js
* Move getArgs into util.js (and fix name)
* Create test-all.js
* Update test-code script
Diffstat (limited to 'dev/yomichan-util.js')
-rw-r--r-- | dev/yomichan-util.js | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/dev/yomichan-util.js b/dev/yomichan-util.js deleted file mode 100644 index 2d8f31ea..00000000 --- a/dev/yomichan-util.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (C) 2020 Yomichan Authors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <https://www.gnu.org/licenses/>. - */ - -const fs = require('fs'); -const path = require('path'); - - -let JSZip = null; - - -function getJSZip() { - if (JSZip === null) { - process.noDeprecation = true; // Suppress a warning about JSZip - JSZip = require(path.join(__dirname, '../ext/mixed/lib/jszip.min.js')); - process.noDeprecation = false; - } - return JSZip; -} - - -function getAllFiles(baseDirectory, relativeTo=null, predicate=null) { - const results = []; - const directories = [baseDirectory]; - while (directories.length > 0) { - const directory = directories.shift(); - const fileNames = fs.readdirSync(directory); - for (const fileName of fileNames) { - const fullFileName = path.join(directory, fileName); - const relativeFileName = (relativeTo !== null ? path.relative(relativeTo, fullFileName) : fullFileName); - const stats = fs.lstatSync(fullFileName); - if (stats.isFile()) { - if (typeof predicate !== 'function' || predicate(fullFileName, directory, baseDirectory)) { - results.push(relativeFileName); - } - } else if (stats.isDirectory()) { - directories.push(fullFileName); - } - } - } - return results; -} - -function getDefaultManifest() { - const {manifest} = getDefaultManifestAndVariants(); - return manifest; -} - -function getDefaultManifestAndVariants() { - const fileName = path.join(__dirname, 'data', 'manifest-variants.json'); - const {manifest, variants} = JSON.parse(fs.readFileSync(fileName)); - return {manifest, variants}; -} - -function createManifestString(manifest) { - return JSON.stringify(manifest, null, 4) + '\n'; -} - - -module.exports = { - get JSZip() { return getJSZip(); }, - getAllFiles, - getDefaultManifest, - getDefaultManifestAndVariants, - createManifestString -}; |