UNPKG

@slightning/anything-to-string

Version:
57 lines (56 loc) 1.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MaximumFunctionRule = exports.MajorFunctionRule = exports.LesserFunctionRule = exports.MinimumFunctionRule = void 0; const object_1 = require("./object"); function isFunction(data) { return typeof data == "function"; } class MinimumFunctionRule { constructor() { this.test = isFunction; } toString(data, __config, __context) { return data.name == "" ? "[Function]" : `[Function: ${data.name}]`; } } exports.MinimumFunctionRule = MinimumFunctionRule; class LesserFunctionRule { constructor() { this.test = isFunction; } toString(data, __config) { const functionString = Function.prototype.toString.call(data) .replace(/[\s]+/g, " "); if (functionString.length <= 64) { return functionString; } const marchResult = functionString.match(/^((function[\s]*[\S]+?[\s]*\([\s\S]*?\)|([\S]+?|\([\s\S]*?\))[\s]*=>|class[\s]*[\S]+?)[\s]*\{[\s]*)[\s\S]*?([\s]*\}[\s]*)$/); if (marchResult == null) { return functionString; } return `${marchResult[1]}...${marchResult[4]}`; } } exports.LesserFunctionRule = LesserFunctionRule; class MajorFunctionRule { constructor() { this.test = isFunction; } toString(data, __config, __context) { return Function.prototype.toString.call(data); } } exports.MajorFunctionRule = MajorFunctionRule; class MaximumFunctionRule { constructor() { this.test = isFunction; } prepare(data, config, context) { new object_1.MaximumObjectRule().prepare(data, config, context); } toString(data, config, context) { return Function.prototype.toString.call(data) + " " + new object_1.MaximumObjectRule().toString(data, config, context); } } exports.MaximumFunctionRule = MaximumFunctionRule;