(value: unknown)
| 133 | return onlyPrimitive ? "ONLY_PRIMITIVE" : "ONLY_OBJECT_EXCLUDING_ARRAY"; |
| 134 | } |
| 135 | #printAsInlineValue(value: unknown): string | number { |
| 136 | if (value instanceof Date) { |
| 137 | return `"${this.#printDate(value)}"`; |
| 138 | } else if (typeof value === "string" || value instanceof RegExp) { |
| 139 | return JSON.stringify(value.toString()); |
| 140 | } else if (typeof value === "number") { |
| 141 | return value; |
| 142 | } else if (typeof value === "boolean") { |
| 143 | return value.toString(); |
| 144 | } else if ( |
| 145 | value instanceof Array |
| 146 | ) { |
| 147 | const str = value.map((x) => this.#printAsInlineValue(x)).join(","); |
| 148 | return `[${str}]`; |
| 149 | } else if (typeof value === "object") { |
| 150 | if (!value) { |
| 151 | throw new Error("Should never reach"); |
| 152 | } |
| 153 | const str = Object.keys(value).map((key) => { |
| 154 | return `${joinKeys([key])} = ${ |
| 155 | // deno-lint-ignore no-explicit-any |
| 156 | this.#printAsInlineValue((value as any)[key])}`; |
| 157 | }).join(","); |
| 158 | return `{${str}}`; |
| 159 | } |
| 160 | |
| 161 | throw new Error("Should never reach"); |
| 162 | } |
| 163 | #isSimplySerializable(value: unknown): boolean { |
| 164 | return ( |
| 165 | typeof value === "string" || |
no test coverage detected