asajs
Version:
Make your Minecraft JsonUI with ScriptingAPI
91 lines (90 loc) • 3.71 kB
JavaScript
;
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
var Encoder_exports = {};
__export(Encoder_exports, {
Encoder: () => Encoder
});
module.exports = __toCommonJS(Encoder_exports);
var import_fs = __toESM(require("fs"));
var import_Class = require("../components/Class");
var import_PreCompile = require("./PreCompile");
var import_Object = require("./reader/Object");
const _Encoder = class _Encoder extends import_Class.Class {
static start() {
for (const path of import_PreCompile.jsonFilePath) {
const code = _Encoder.readCode(path);
const encode = _Encoder.encode(code);
_Encoder.replaceCode(path, encode);
_Encoder.count++;
}
}
static replaceCode(path, code) {
import_fs.default.writeFileSync(path, (0, import_PreCompile.WritePreComment)(code).replaceAll("\\\\", "\\"), "utf-8");
}
static encode(code) {
return Array.isArray(code) ? _Encoder.encodeArray(code) : _Encoder.encodeObject(code);
}
static encodeArray(code) {
return code.map((value) => {
const valueType = typeof value;
if (valueType === "object") {
return _Encoder.encode(value);
} else if (valueType === "string") return _Encoder.encodeString(value);
else return value;
});
}
static encodeObject(code) {
return import_Object.Obj.map(code, (key, value) => {
const valueType = typeof value;
key = _Encoder.encodeString(key);
if (valueType === "object") {
return {
key,
value: _Encoder.encode(value)
};
} else if (valueType === "string") {
return { key, value: _Encoder.encodeString(value) };
} else return { key, value };
});
}
static encodeString(code) {
return Array.from(code).map((char) => "\\u".concat(char.charCodeAt(0).toString(16).padStart(4, "0"))).join("");
}
static readCode(path) {
return JSON.parse(import_fs.default.readFileSync(path, "utf-8"));
}
};
__publicField(_Encoder, "count", 0);
let Encoder = _Encoder;
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
Encoder
});