{"adoption": {"forks": 527, "observed_at": "2026-08-28T04:09:58.331226+00:00", "stars": 7339}, "canonical_url": "https://ross.abutalabs.com/products/class-transformer", "card": {"archived": false, "artifact_type": "library", "description": "Decorator-based transformation, serialization, and deserialization between objects and classes. ", "domain": ["developer-tools", "web-development", "backend", "frontend"], "enriched": true, "function": ["serialization", "middleware"], "health_score": 70, "homepage": null, "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["typestack/class-transformer"], "name": "typestack/class-transformer", "platform": ["browser", "cross-platform"], "pushed_at": "2026-05-22T11:06:41+00:00", "repo": "typestack/class-transformer", "stars": 7339, "tags": ["typescript", "decorators", "deserialization", "plain-objects", "class-instances", "data-transformation", "nodejs"], "topics": ["typescript", "transformation", "exposing-properties", "exposing-getters"], "urls": [], "use_cases": ["convert plain JSON objects into typed class instances", "serialize class instances to plain objects for API responses", "deserialize API payloads into class instances with nested types", "exclude or rename properties during serialization", "convert date strings into Date objects on deserialization", "expose getters and method return values in serialized output"], "what_it_is": "class-transformer is a TypeScript/JavaScript library that transforms plain objects into class instances and back using decorators. It supports serialization, deserialization, exposing/skipping properties, versioning, and groups for controlling output.", "when_to_avoid": ["you only need simple JSON.stringify/parse without class instances", "your project uses plain interfaces and types instead of classes", "you need schema validation rather than transformation (use class-validator or zod)", "you avoid experimental/legacy decorators in your build setup"], "when_to_choose": ["you use TypeScript classes and want type-safe instances from plain objects", "you need fine-grained control over which properties are serialized", "you work with nested object graphs and need automatic type conversion", "you want decorator-based transformation on both frontend and backend"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/class-transformer", "repo": "typestack/class-transformer", "role": "main", "score": 60}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.331226+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:38:28.139315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42ede56310865e78b90f1a9ac5de7818562caa771684adfca1467d5ef0b474fc", "fetched_at": "2026-08-28T04:09:58.331226+00:00", "kind": "readme", "missing": false, "url": "https://github.com/typestack/class-transformer"}, {"content_hash": "961ba48322dd0081b6343534022f2cac394f063f259bfc824a5e932aae1cf3d9", "fetched_at": "2026-08-29T08:34:05.163281+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/class-transformer"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.331226+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:38:28.139315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42ede56310865e78b90f1a9ac5de7818562caa771684adfca1467d5ef0b474fc", "fetched_at": "2026-08-28T04:09:58.331226+00:00", "kind": "readme", "missing": false, "url": "https://github.com/typestack/class-transformer"}, {"content_hash": "961ba48322dd0081b6343534022f2cac394f063f259bfc824a5e932aae1cf3d9", "fetched_at": "2026-08-29T08:34:05.163281+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/class-transformer"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:38:28.139315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42ede56310865e78b90f1a9ac5de7818562caa771684adfca1467d5ef0b474fc", "fetched_at": "2026-08-28T04:09:58.331226+00:00", "kind": "readme", "missing": false, "url": "https://github.com/typestack/class-transformer"}, {"content_hash": "961ba48322dd0081b6343534022f2cac394f063f259bfc824a5e932aae1cf3d9", "fetched_at": "2026-08-29T08:34:05.163281+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/class-transformer"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.331226+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.331226+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.331226+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:38:28.139315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42ede56310865e78b90f1a9ac5de7818562caa771684adfca1467d5ef0b474fc", "fetched_at": "2026-08-28T04:09:58.331226+00:00", "kind": "readme", "missing": false, "url": "https://github.com/typestack/class-transformer"}, {"content_hash": "961ba48322dd0081b6343534022f2cac394f063f259bfc824a5e932aae1cf3d9", "fetched_at": "2026-08-29T08:34:05.163281+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/class-transformer"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.331226+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.331226+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:38:28.139315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42ede56310865e78b90f1a9ac5de7818562caa771684adfca1467d5ef0b474fc", "fetched_at": "2026-08-28T04:09:58.331226+00:00", "kind": "readme", "missing": false, "url": "https://github.com/typestack/class-transformer"}, {"content_hash": "961ba48322dd0081b6343534022f2cac394f063f259bfc824a5e932aae1cf3d9", "fetched_at": "2026-08-29T08:34:05.163281+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/class-transformer"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.331226+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.331226+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.331226+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:38:28.139315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42ede56310865e78b90f1a9ac5de7818562caa771684adfca1467d5ef0b474fc", "fetched_at": "2026-08-28T04:09:58.331226+00:00", "kind": "readme", "missing": false, "url": "https://github.com/typestack/class-transformer"}, {"content_hash": "961ba48322dd0081b6343534022f2cac394f063f259bfc824a5e932aae1cf3d9", "fetched_at": "2026-08-29T08:34:05.163281+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/class-transformer"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.331226+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:58.331226+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:38:28.139315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42ede56310865e78b90f1a9ac5de7818562caa771684adfca1467d5ef0b474fc", "fetched_at": "2026-08-28T04:09:58.331226+00:00", "kind": "readme", "missing": false, "url": "https://github.com/typestack/class-transformer"}, {"content_hash": "961ba48322dd0081b6343534022f2cac394f063f259bfc824a5e932aae1cf3d9", "fetched_at": "2026-08-29T08:34:05.163281+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/class-transformer"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:38:28.139315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42ede56310865e78b90f1a9ac5de7818562caa771684adfca1467d5ef0b474fc", "fetched_at": "2026-08-28T04:09:58.331226+00:00", "kind": "readme", "missing": false, "url": "https://github.com/typestack/class-transformer"}, {"content_hash": "961ba48322dd0081b6343534022f2cac394f063f259bfc824a5e932aae1cf3d9", "fetched_at": "2026-08-29T08:34:05.163281+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/class-transformer"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:38:28.139315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42ede56310865e78b90f1a9ac5de7818562caa771684adfca1467d5ef0b474fc", "fetched_at": "2026-08-28T04:09:58.331226+00:00", "kind": "readme", "missing": false, "url": "https://github.com/typestack/class-transformer"}, {"content_hash": "961ba48322dd0081b6343534022f2cac394f063f259bfc824a5e932aae1cf3d9", "fetched_at": "2026-08-29T08:34:05.163281+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/class-transformer"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:38:28.139315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42ede56310865e78b90f1a9ac5de7818562caa771684adfca1467d5ef0b474fc", "fetched_at": "2026-08-28T04:09:58.331226+00:00", "kind": "readme", "missing": false, "url": "https://github.com/typestack/class-transformer"}, {"content_hash": "961ba48322dd0081b6343534022f2cac394f063f259bfc824a5e932aae1cf3d9", "fetched_at": "2026-08-29T08:34:05.163281+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/class-transformer"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 83, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3858, "days_push": 103, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 60, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}