UNPKG

@slightning/anything-to-string

Version:
83 lines (82 loc) 2.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MaximumStringRule = exports.MajorStringRule = exports.LesserStringRule = exports.MinimumStringRule = void 0; const object_1 = require("./object"); function isString(data) { return typeof data == "object" && data instanceof 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; } class MinimumStringRule { constructor() { this.test = isString; } toString(data, __config, __context) { return JSON.stringify(data); } } exports.MinimumStringRule = MinimumStringRule; class LesserStringRule { constructor() { this.test = isString; } toString(data, __config, __context) { return `String(${JSON.stringify(data)})`; } } exports.LesserStringRule = LesserStringRule; class MajorStringRule { constructor() { this.test = isString; } prepare(data, config, context) { new object_1.MajorObjectRule({ defaultConfig: { exclude(key) { return excludeChar(data, key); } } }).prepare(data, config, context); } toString(data, config, context) { return `String(${JSON.stringify(data)}) ${new object_1.MajorObjectRule({ defaultConfig: { exclude(key) { return excludeChar(data, key); } } }).toString(data, config, context)}`; } } exports.MajorStringRule = MajorStringRule; class MaximumStringRule { constructor() { this.test = isString; } prepare(data, config, context) { new object_1.MaximumObjectRule({ defaultConfig: { exclude(key) { return excludeChar(data, key); } } }).prepare(data, config, context); } toString(data, config, context) { return `String(${JSON.stringify(data)}) ${new object_1.MaximumObjectRule({ defaultConfig: { exclude(key) { return excludeChar(data, key); } } }).toString(data, config, context)}`; } } exports.MaximumStringRule = MaximumStringRule;