UNPKG

@slightning/anything-to-string

Version:
58 lines (57 loc) 1.87 kB
import { getIndentString } from "../utils"; import { AnythingRule } from "./anything"; import { MajorObjectRule, MaximumObjectRule } from "./object"; export class MinimumArrayRule { constructor() { this.test = Array.isArray; } toString(data, __config, __context) { return `Array(${data.length})`; } } export class LesserArrayRule { constructor() { this.test = Array.isArray; } prepare(data, config, context) { for (const value of data) { if (value != undefined) { new AnythingRule().prepare(value, config, context); } } } toString(data, config, context) { if (data.length == 0) { return "Array []"; } let result = "Array [\n"; result += (0 in data ? new AnythingRule().toString(data[0], config, context) : "None").split("\n").map((line) => `${getIndentString(config)}${line}`).join("\n"); for (let i = 1; i < data.length; i++) { result += `,\n${(i in data ? new AnythingRule().toString(data[i], config, context) : "None").split("\n").map((line) => `${getIndentString(config)}${line}`).join("\n")}`; } result += "\n]"; return result; } } export class MajorArrayRule { constructor() { this.test = Array.isArray; } prepare(data, config, context) { new MajorObjectRule().prepare(data, config, context); } toString(data, config, context) { return new MajorObjectRule().toString(data, config, context); } } export class MaximumArrayRule { constructor() { this.test = Array.isArray; } prepare(data, config, context) { new MaximumObjectRule().prepare(data, config, context); } toString(data, config, context) { return new MajorObjectRule().toString(data, config, context); } }