UNPKG

@slightning/anything-to-string

Version:
97 lines (96 loc) 4.1 kB
"use strict"; 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;