Use json-stringify-safe to handle circular references
If there's no key, don't require nodefly