Enabling shorter import paths [automatic]
This commit is contained in:
81
bin/generate-i18n-messages.js
Normal file
81
bin/generate-i18n-messages.js
Normal file
@ -0,0 +1,81 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __read = (this && this.__read) || function (o, n) {
|
||||
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
||||
if (!m) return o;
|
||||
var i = m.call(o), r, ar = [], e;
|
||||
try {
|
||||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
||||
}
|
||||
catch (error) { e = { error: error }; }
|
||||
finally {
|
||||
try {
|
||||
if (r && !r.done && (m = i["return"])) m.call(i);
|
||||
}
|
||||
finally { if (e) throw e.error; }
|
||||
}
|
||||
return ar;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var fs = __importStar(require("fs"));
|
||||
var path_1 = require("path");
|
||||
var crawl_1 = require("./tools/crawl");
|
||||
var downloadAndUnzip_1 = require("./tools/downloadAndUnzip");
|
||||
var download_sample_keycloak_themes_1 = require("./download-sample-keycloak-themes");
|
||||
var getProjectRoot_1 = require("./tools/getProjectRoot");
|
||||
var child_process = __importStar(require("child_process"));
|
||||
//@ts-ignore
|
||||
var propertiesParser = require("properties-parser");
|
||||
var tmpDirPath = path_1.join(getProjectRoot_1.getProjectRoot(), "tmp_xImOef9dOd44");
|
||||
child_process.execSync("rm -rf " + tmpDirPath);
|
||||
downloadAndUnzip_1.downloadAndUnzip({
|
||||
"destDirPath": tmpDirPath,
|
||||
"url": download_sample_keycloak_themes_1.keycloakBuiltinThemesAndThirdPartyExamplesThemsUrl
|
||||
});
|
||||
var record = {};
|
||||
process.chdir(path_1.join(tmpDirPath, "base"));
|
||||
crawl_1.crawl(".").forEach(function (filePath) {
|
||||
var _a;
|
||||
var match = filePath.match(/^([^/]+)\/messages\/messages_([^.]+)\.properties$/);
|
||||
if (match === null) {
|
||||
return;
|
||||
}
|
||||
var _b = __read(match, 3), typeOfPage = _b[1], language = _b[2];
|
||||
((_a = record[typeOfPage]) !== null && _a !== void 0 ? _a : (record[typeOfPage] = {}))[language] =
|
||||
propertiesParser.parse(fs.readFileSync(filePath)
|
||||
.toString("utf8"));
|
||||
});
|
||||
child_process.execSync("rm -r " + tmpDirPath);
|
||||
var targetDirPath = path_1.join(getProjectRoot_1.getProjectRoot(), "src", "lib", "i18n", "generated_messages");
|
||||
fs.mkdirSync(targetDirPath, { "recursive": true });
|
||||
Object.keys(record).forEach(function (pageType) {
|
||||
var filePath = path_1.join(targetDirPath, pageType + ".ts");
|
||||
fs.writeFileSync(filePath, Buffer.from([
|
||||
"//This code was automatically generated by running " + path_1.relative(getProjectRoot_1.getProjectRoot(), __filename),
|
||||
'//PLEASE DO NOT EDIT MANUALLY',
|
||||
'',
|
||||
'/* spell-checker: disable */',
|
||||
"export const messages= " + JSON.stringify(record[pageType], null, 2) + " as const;",
|
||||
'/* spell-checker: enable */'
|
||||
].join("\n"), "utf8"));
|
||||
console.log(filePath + " wrote");
|
||||
});
|
||||
//# sourceMappingURL=generate-i18n-messages.js.map
|
Reference in New Issue
Block a user