chore(cleanup): got rid of unnescesary stuff
This commit is contained in:
parent
786f2bad24
commit
15e0fa6619
6 changed files with 0 additions and 211 deletions
|
|
@ -1,5 +1,4 @@
|
||||||
# Error Codes
|
# Error Codes
|
||||||
[](https://www.npmjs.com/package/@atoska21/error-codes)
|
|
||||||
|
|
||||||
Translated JSON files for known error codes used by the Wii U and 3DS
|
Translated JSON files for known error codes used by the Wii U and 3DS
|
||||||
|
|
||||||
|
|
@ -75,9 +74,3 @@ Each file starts with 1 or 2 objects, each with 1 key each. The first object key
|
||||||
| `long_solution` | A longer, more detailed, solution for the error. Intended to be used by the website. Markdown |
|
| `long_solution` | A longer, more detailed, solution for the error. Intended to be used by the website. Markdown |
|
||||||
| `support_link` | Link to a relevant support page for the error. Typically the website, but does not have to be |
|
| `support_link` | Link to a relevant support page for the error. Typically the website, but does not have to be |
|
||||||
|
|
||||||
### Utility functions
|
|
||||||
The main purpose of this repository is to maintain the JSON translation files. However 2 utility functions are also included for JavaScript/TypeScript projects.
|
|
||||||
|
|
||||||
- `getModuleInfo(sysmodule, locale)` - Returns the module information for the locale, or `null` if not found
|
|
||||||
- `getErrorInfo(sysmodule, code, locale)` - Returns the error information (including the module information) for the locale. Returns null if either the module or error code is not found
|
|
||||||
- `getAllErrors()` - Returns an array of all error codes for all modules in the form `MODULE-CODE`
|
|
||||||
|
|
|
||||||
33
format.sh
33
format.sh
|
|
@ -1,33 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# This script processes all files in the data directory using jq to:
|
|
||||||
# - Ensure all JSON files are formatted correctly with tabs
|
|
||||||
# - Catch any JSON files with syntax errors and log them to error.log for fixing
|
|
||||||
|
|
||||||
# Remove any existing error log
|
|
||||||
rm -f error.log
|
|
||||||
|
|
||||||
# Enable recursive globbing
|
|
||||||
shopt -s globstar
|
|
||||||
|
|
||||||
# Process files in parallel using xargs
|
|
||||||
find data -type f -name "*.json" | xargs -n 1 -P "$(nproc)" -I {} bash -c '
|
|
||||||
file="{}"
|
|
||||||
echo "Processing file: $file"
|
|
||||||
jq --tab -j . <"$file" >"$file.out" 2>"$file.err"
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
mv "$file.out" "$file"
|
|
||||||
rm "$file.err"
|
|
||||||
else
|
|
||||||
echo "$file.err" >> error.log
|
|
||||||
rm "$file.out"
|
|
||||||
fi
|
|
||||||
'
|
|
||||||
|
|
||||||
# Print any files that failed to process
|
|
||||||
if [ -f error.log ] && [ "$(cat error.log | wc -l)" -gt 0 ]; then
|
|
||||||
echo "The following files failed to process:"
|
|
||||||
cat error.log | sed 's/^/ - /'
|
|
||||||
else
|
|
||||||
echo "All files processed successfully."
|
|
||||||
fi
|
|
||||||
78
index.js
78
index.js
|
|
@ -1,78 +0,0 @@
|
||||||
const path = require('node:path');
|
|
||||||
const fs = require('node:fs');
|
|
||||||
|
|
||||||
function getModuleInfo(sysmodule, locale) {
|
|
||||||
const localePath = path.join(__dirname, 'data', sysmodule, `${locale.replace('-', '_')}.json`);
|
|
||||||
const defaultPath = path.join(__dirname, 'data', sysmodule, 'en_US.json');
|
|
||||||
let content;
|
|
||||||
|
|
||||||
if (fs.existsSync(localePath)) {
|
|
||||||
content = fs.readFileSync(localePath, {
|
|
||||||
encoding: 'utf8'
|
|
||||||
});
|
|
||||||
} else if (fs.existsSync(defaultPath)) {
|
|
||||||
content = fs.readFileSync(defaultPath, {
|
|
||||||
encoding: 'utf8'
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return JSON.parse(content);
|
|
||||||
}
|
|
||||||
|
|
||||||
function getErrorInfo(sysmodule, code, locale) {
|
|
||||||
const moduleInfo = getModuleInfo(sysmodule, locale);
|
|
||||||
|
|
||||||
if (!moduleInfo) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
const localePath = path.join(__dirname, 'data', sysmodule, code, `${locale.replace('-', '_')}.json`);
|
|
||||||
const defaultPath = path.join(__dirname, 'data', sysmodule, code, 'en_US.json');
|
|
||||||
let content;
|
|
||||||
|
|
||||||
if (fs.existsSync(localePath)) {
|
|
||||||
content = fs.readFileSync(localePath, {
|
|
||||||
encoding: 'utf8'
|
|
||||||
});
|
|
||||||
} else if (fs.existsSync(defaultPath)) {
|
|
||||||
content = fs.readFileSync(defaultPath, {
|
|
||||||
encoding: 'utf8'
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
const errorInfo = JSON.parse(content)[sysmodule][code];
|
|
||||||
|
|
||||||
errorInfo.module = moduleInfo[sysmodule];
|
|
||||||
|
|
||||||
return errorInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getAllErrors() {
|
|
||||||
const errors = [];
|
|
||||||
|
|
||||||
const modules = fs.readdirSync(path.join(__dirname, 'data'), { withFileTypes: true });
|
|
||||||
|
|
||||||
for (const moduleDirent of modules) {
|
|
||||||
if (moduleDirent.isDirectory()) {
|
|
||||||
const errorCodes = fs.readdirSync(path.join(__dirname, 'data', moduleDirent.name), { withFileTypes: true });
|
|
||||||
|
|
||||||
for (const errorDirent of errorCodes) {
|
|
||||||
if (errorDirent.isDirectory()) {
|
|
||||||
errors.push(`${moduleDirent.name}-${errorDirent.name}`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return errors;
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
getModuleInfo,
|
|
||||||
getErrorInfo,
|
|
||||||
getAllErrors
|
|
||||||
};
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
import fs from 'fs';
|
|
||||||
import path from 'path';
|
|
||||||
|
|
||||||
// This script does a number of things:
|
|
||||||
// - Normalises the descriptions and solutions to be "Unknown cause." and "Unknown solution." rather than "N/A"
|
|
||||||
// - If one of the descriptions or solutions is "Unknown cause." or "Unknown solution.", the other will be copied to it
|
|
||||||
// - Ensures all descriptions and solutions end with a full stop if they do not already and if the last character is a letter
|
|
||||||
// - Writes the changes back to the file in place
|
|
||||||
|
|
||||||
const arg = process.argv[2];
|
|
||||||
if (!arg || !fs.existsSync(arg) || !fs.lstatSync(arg).isDirectory()) {
|
|
||||||
console.log("Please provide a valid directory path.");
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
fs.readdirSync(arg, { recursive: true, withFileTypes: true }).forEach(file => {
|
|
||||||
if (!file.isFile() && !file.name.endsWith(".json")) return;
|
|
||||||
|
|
||||||
const fullPath = path.join(file.parentPath, file.name);
|
|
||||||
|
|
||||||
console.log(`Processing ${fullPath}`);
|
|
||||||
|
|
||||||
const data = fs.readFileSync(fullPath, 'utf8');
|
|
||||||
const json = JSON.parse(data);
|
|
||||||
|
|
||||||
const key1 = Object.keys(json)[0];
|
|
||||||
const key2 = Object.keys(json[key1])[0];
|
|
||||||
|
|
||||||
const errorObject = json[key1][key2];
|
|
||||||
if (!errorObject || typeof errorObject !== "object") {
|
|
||||||
console.log(`No error object found in ${fullPath}`);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!errorObject["short_description"] || !errorObject["long_description"] || !errorObject["short_solution"] || !errorObject["long_solution"]) {
|
|
||||||
console.log(`Missing fields in ${fullPath}`);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const {
|
|
||||||
short_description,
|
|
||||||
long_description,
|
|
||||||
short_solution,
|
|
||||||
long_solution,
|
|
||||||
} = errorObject;
|
|
||||||
|
|
||||||
if (short_description === "Unknown cause." && long_description !== "Unknown cause.") {
|
|
||||||
errorObject["short_description"] = long_description;
|
|
||||||
} else if (short_description !== "Unknown cause." && long_description === "Unknown cause.") {
|
|
||||||
errorObject["long_description"] = short_description;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (short_solution === "Unknown solution." && long_solution !== "Unknown solution.") {
|
|
||||||
errorObject["short_solution"] = long_solution;
|
|
||||||
} else if (short_solution !== "Unknown solution." && long_solution === "Unknown solution.") {
|
|
||||||
errorObject["long_solution"] = short_solution;
|
|
||||||
}
|
|
||||||
|
|
||||||
const keys = ["short_description", "long_description", "short_solution", "long_solution"];
|
|
||||||
|
|
||||||
// Ensure all end with a full stop
|
|
||||||
keys.forEach(key => {
|
|
||||||
const value = errorObject[key];
|
|
||||||
// If the value does not end with a full stop and the last character is a letter, add a full stop
|
|
||||||
if (value && !value.endsWith(".") && /[A-Za-z]$/.test(value)) {
|
|
||||||
errorObject[key] = value + ".";
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
fs.writeFileSync(fullPath, JSON.stringify(json, null, "\t"));
|
|
||||||
});
|
|
||||||
12
package-lock.json
generated
12
package-lock.json
generated
|
|
@ -1,12 +0,0 @@
|
||||||
{
|
|
||||||
"name": "@atoska21/error-codes",
|
|
||||||
"version": "1.1.0",
|
|
||||||
"lockfileVersion": 2,
|
|
||||||
"requires": true,
|
|
||||||
"packages": {
|
|
||||||
"": {
|
|
||||||
"name": "@atoska21/error-codes",
|
|
||||||
"version": "1.1.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
10
package.json
10
package.json
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
"name": "@atoska21/error-codes",
|
|
||||||
"version": "1.1.0",
|
|
||||||
"description": "Translated error code information for the Wii U and 3DS",
|
|
||||||
"main": "index.js",
|
|
||||||
"files": [
|
|
||||||
"index.js",
|
|
||||||
"data"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue