@mro/retrocycle@0.7.0Built and signed on GitHub ActionsBuilt and signed on GitHub Actions
Built and signed on GitHub Actions
latest
miki-riglos/retrocycleWorks with
•JSR Score100%•This package works with Node.js, Deno, BrowsersIt is unknown whether this package works with Cloudflare Workers, Bun




Published10 months ago (0.7.0)
Restore references after parsing JSON
retrocycle
Restore references after parsing JSON
Example (.NET server)
Server
Serialization using NewtonsoftJson
builder.Services.AddControllers() .AddNewtonsoftJson(options => { options.SerializerSettings.ContractResolver = new DefaultContractResolver(); options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Serialize; options.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.All; });
Controller
public class Complex { public string Name { get; set; } = string.Empty; public List<Complex> Children { get; set; } = []; } [ApiController] public class SomeController : ControllerBase { [Route("api/some/complexObject")] [HttpGet] public IActionResult GetComplexObject() { Complex complextObject = new(); complextObject.Name = "Root"; complextObject.Children.Add(complextObject); complextObject.Children.Add(new() { Name = "Child" }); return Ok(complextObject); } }
Client
fetch('api/some/complexObject') .then(resp => resp.json()) .then(refComplexObj => { console.log(refComplexObj); /* { "$id": "1", "Name": "Root", "Children": { "$id": "2", "$values": [{ "$ref": "1" }, { "$id": "3", "Name": "Child", "Children": { "$id": "4", "$values": [] } } ] } } */ let complexObj = retrocycle(refComplexObj); console.log(complexObj); /* { "Name": "Root", "Children": [{ "Name": "Root", "Children": [{ ... }, { "Name": "Child", "Children": [] } ] }, { "Name": "Child", "Children": [] } ] } */ return complexObj; })
Built and signed on
GitHub Actions
Add Package
deno add jsr:@mro/retrocycle
Import symbol
import * as retrocycle from "@mro/retrocycle";
Import directly with a jsr specifier
import * as retrocycle from "jsr:@mro/retrocycle";
Add Package
pnpm i jsr:@mro/retrocycle
pnpm dlx jsr add @mro/retrocycle
Import symbol
import * as retrocycle from "@mro/retrocycle";
Add Package
yarn add jsr:@mro/retrocycle
yarn dlx jsr add @mro/retrocycle
Import symbol
import * as retrocycle from "@mro/retrocycle";
Add Package
vlt install jsr:@mro/retrocycle
Import symbol
import * as retrocycle from "@mro/retrocycle";
Add Package
npx jsr add @mro/retrocycle
Import symbol
import * as retrocycle from "@mro/retrocycle";
Add Package
bunx jsr add @mro/retrocycle
Import symbol
import * as retrocycle from "@mro/retrocycle";