UNPKG

@slightning/anything-to-string

Version:
61 lines (60 loc) 1.59 kB
import { MaximumObjectRule } from "./object"; function isBasicString(data) { return typeof data == "string"; } function excludeChar(data, key) { if (typeof key == "string") { key = parseInt(key); } if (!Number.isInteger(key)) { return false; } return typeof key == "number" && 0 <= key && key < data.length; } export class MinimumBasicStringRule { constructor() { this.test = isBasicString; } toString(data, __config, __context) { return JSON.stringify(data); } } export class LesserBasicStringRule { constructor() { this.test = isBasicString; } toString(data, __config, __context) { return JSON.stringify(data); } } export class MajorBasicStringRule { constructor() { this.test = isBasicString; } toString(data, __config, __context) { return `[string: ${JSON.stringify(data)}]`; } } export class MaximumBasicStringRule { constructor() { this.test = isBasicString; } prepare(data, config, context) { new MaximumObjectRule({ defaultConfig: { exclude(key) { return excludeChar(data, key); } } }).prepare(data, config, context); } toString(data, config, context) { return `[string: ${JSON.stringify(data)}] ${new MaximumObjectRule({ defaultConfig: { exclude(key) { return excludeChar(data, key); } } }).toString(data, config, context)}`; } }