@slightning/anything-to-string
Version:
Converts anything to a string.
81 lines (80 loc) • 2.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MaximumWeakRefRule = exports.MajorWeakRefRule = exports.LesserWeakRefRule = exports.MinimumWeakRefRule = void 0;
const anything_1 = require("./anything");
const object_1 = require("./object");
function isWeakRef(data) {
return typeof WeakRef != "undefined" && data instanceof WeakRef;
}
class MinimumWeakRefRule {
constructor() {
this.test = isWeakRef;
}
toString(__data, __config, __context) {
return "[WeakRef]";
}
}
exports.MinimumWeakRefRule = MinimumWeakRefRule;
class LesserWeakRefRule {
constructor() {
this.test = isWeakRef;
}
prepare(data, config, context) {
new object_1.LesserObjectRule().prepare(data, config, context);
const value = data.deref();
if (value != undefined) {
new anything_1.AnythingRule().prepare(value, config, context);
}
}
toString(data, config, context) {
const value = data.deref();
return new object_1.LesserObjectRule({
specialValue: {
"[[WeakRefTarget]]": value == undefined ? "None" : `${new anything_1.AnythingRule().toString(value, config, context)}`
}
}).toString(data, config, context);
}
}
exports.LesserWeakRefRule = LesserWeakRefRule;
class MajorWeakRefRule {
constructor() {
this.test = isWeakRef;
}
prepare(data, config, context) {
new object_1.MajorObjectRule().prepare(data, config, context);
const value = data.deref();
if (value != undefined) {
new anything_1.AnythingRule().prepare(value, config, context);
}
}
toString(data, config, context) {
const value = data.deref();
return new object_1.MajorObjectRule({
specialValue: {
"[[WeakRefTarget]]": value == undefined ? "None" : `${new anything_1.AnythingRule().toString(value, config, context)}`
}
}).toString(data, config, context);
}
}
exports.MajorWeakRefRule = MajorWeakRefRule;
class MaximumWeakRefRule {
constructor() {
this.test = isWeakRef;
}
prepare(data, config, context) {
new object_1.MaximumObjectRule().prepare(data, config, context);
const value = data.deref();
if (value != undefined) {
new anything_1.AnythingRule().prepare(value, config, context);
}
}
toString(data, config, context) {
const value = data.deref();
return new object_1.MaximumObjectRule({
specialValue: {
"[[WeakRefTarget]]": value == undefined ? "None" : `${new anything_1.AnythingRule().toString(value, config, context)}`
}
}).toString(data, config, context);
}
}
exports.MaximumWeakRefRule = MaximumWeakRefRule;