@slightning/anything-to-string
Version:
Converts anything to a string.
97 lines (96 loc) • 4.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MaximumMapRule = exports.MajorMapRule = exports.LesserMapRule = exports.MinimumMapRule = void 0;
const utils_1 = require("../utils");
const anything_1 = require("./anything");
const object_1 = require("./object");
function isMap(data) {
return typeof Map != "undefined" && data instanceof Map;
}
class MinimumMapRule {
constructor() {
this.test = isMap;
}
toString(data, __config, __context) {
return `Map(${data.size})`;
}
}
exports.MinimumMapRule = MinimumMapRule;
class LesserMapRule {
constructor() {
this.test = isMap;
}
prepare(data, config, context) {
new object_1.LesserObjectRule().prepare(data, config, context);
for (const key of data.keys()) {
new anything_1.AnythingRule().prepare(key, config, context);
}
for (const value of data.values()) {
new anything_1.AnythingRule().prepare(value, config, context);
}
}
toString(data, config, context) {
return new object_1.LesserObjectRule({
specialValue: {
"[[Entries]]": data.size == 0 ? "None" : Array.from(data.entries().map(([key, value]) => {
return `${new anything_1.AnythingRule().toString(key, config, context)}: ${new anything_1.AnythingRule().toString(value, config, context)}`
.split("\n")
.join(`\n${(0, utils_1.getIndentString)(config)}`);
}).map((line) => `\n${(0, utils_1.getIndentString)(config)}${line}`)).join("")
}
}).toString(data, config, context);
}
}
exports.LesserMapRule = LesserMapRule;
class MajorMapRule {
constructor() {
this.test = isMap;
}
prepare(data, config, context) {
new object_1.MajorObjectRule().prepare(data, config, context);
for (const key of data.keys()) {
new anything_1.AnythingRule().prepare(key, config, context);
}
for (const value of data.values()) {
new anything_1.AnythingRule().prepare(value, config, context);
}
}
toString(data, config, context) {
return new object_1.MajorObjectRule({
specialValue: {
"[[Entries]]": data.size == 0 ? "None" : Array.from(data.entries().map(([key, value]) => {
return `${"\n"}key: ${new anything_1.AnythingRule().toString(key, config, context)}${"\n"}value: ${new anything_1.AnythingRule().toString(value, config, context)}`
.split("\n")
.join(`\n${(0, utils_1.getIndentString)(config).repeat(2)}`);
}).map((line, index) => `\n${(0, utils_1.getIndentString)(config)}${index}: ${line}`)).join("")
}
}).toString(data, config, context);
}
}
exports.MajorMapRule = MajorMapRule;
class MaximumMapRule {
constructor() {
this.test = isMap;
}
prepare(data, config, context) {
new object_1.MaximumObjectRule().prepare(data, config, context);
for (const key of data.keys()) {
new anything_1.AnythingRule().prepare(key, config, context);
}
for (const value of data.values()) {
new anything_1.AnythingRule().prepare(value, config, context);
}
}
toString(data, config, context) {
return new object_1.MaximumObjectRule({
specialValue: {
"[[Entries]]": data.size == 0 ? "None" : Array.from(data.entries().map(([key, value]) => {
return `${"\n"}key: ${new anything_1.AnythingRule().toString(key, config, context)}${"\n"}value: ${new anything_1.AnythingRule().toString(value, config, context)}`
.split("\n")
.join(`\n${(0, utils_1.getIndentString)(config).repeat(2)}`);
}).map((line, index) => `\n${(0, utils_1.getIndentString)(config)}${index}: ${line}`)).join("")
}
}).toString(data, config, context);
}
}
exports.MaximumMapRule = MaximumMapRule;