{"id":26674188,"url":"https://github.com/karolkrupa/javascript-orm-mapper","last_synced_at":"2025-12-30T20:33:27.447Z","repository":{"id":42724049,"uuid":"283320640","full_name":"karolkrupa/javascript-orm-mapper","owner":"karolkrupa","description":"ORM mapping library. Especially for Rest API","archived":false,"fork":false,"pushed_at":"2023-01-06T13:18:31.000Z","size":325,"stargazers_count":0,"open_issues_count":8,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-17T02:07:29.761Z","etag":null,"topics":["api","data","data-mapper","entity","es6","javascript","mapper","model","mongo","mysql","node","nuxt","orm","relational","rest","typescript","vue","vuex"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/karolkrupa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-28T20:30:41.000Z","updated_at":"2020-08-07T14:37:45.000Z","dependencies_parsed_at":"2023-02-06T04:00:54.697Z","dependency_job_id":null,"html_url":"https://github.com/karolkrupa/javascript-orm-mapper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karolkrupa%2Fjavascript-orm-mapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karolkrupa%2Fjavascript-orm-mapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karolkrupa%2Fjavascript-orm-mapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karolkrupa%2Fjavascript-orm-mapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/karolkrupa","download_url":"https://codeload.github.com/karolkrupa/javascript-orm-mapper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245573892,"owners_count":20637674,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","data","data-mapper","entity","es6","javascript","mapper","model","mongo","mysql","node","nuxt","orm","relational","rest","typescript","vue","vuex"],"created_at":"2025-03-26T02:17:46.064Z","updated_at":"2025-12-30T20:33:27.407Z","avatar_url":"https://github.com/karolkrupa.png","language":"TypeScript","readme":"# Javascript orm mapper\n[![Build Status](https://travis-ci.org/karolkrupa/javascript-orm-mapper.svg?branch=master)](https://travis-ci.org/karolkrupa/javascript-orm-mapper)\n\nThis library provides a simple way to map data from json to\njavascript objects that use multiple data types, including relational data types, for example:\nOneToMany\n\n## Installation\n```bash\n$ npm i javascript-orm-mapper\n```\n\n## Tests\n```bash\n$ npm test\n```\n\n## Defining Models\n\nYou can define models just like normal classes. There are no limits, you can define own methods, \ngetters properties and whatever you want. All you have to do to make your class mappable\nis describing properties with type annotations\n\n```typescript\n// Create database\nconst database = new Database()\n\n// Post\n@Entity({\n    name: 'post',\n    database: database\n})\nclass Post extends Model {\n    @Id()\n    @String()\n    id: string = ''\n\n    @String()\n    name: string = ''\n\n    @OneToMany('comment')\n    comments: Comment[] = []\n}\n\n// Comment\n@Entity({\n    name: 'comment',\n    database: database\n})\nclass Comment extends Model {\n    @Id()\n    @String()\n    id: string = ''\n\n    @String()\n    content: string = ''\n\n    @ManyToOne('post')\n    post: Post = null\n}\n```\n\n## Mapping data to objects\n\n```typescript\nlet post = \u003cPost\u003eModelMapper.persist({\n    id: 1,\n    name: 123,\n    comments: [\n        {\n            id: 1,\n            content: \"Lorem ipsum\",\n            post: {\n                id: 1,\n                name: \"New name\"\n            }\n        }\n    ]\n}, Post)\n\n// Result\n// Post {\n//   __orm_uid: \"bf9929cb-f852-43a0-9260-2e3fb89833b7\",\n//   id: \"1\",\n//   name: \"New name\",\n//   comments: [\n//     Comment { \n//        __orm_uid: \"6599f446-fb0d-4194-abbd-659d40d5c9fb\",\n//        content: \"Lorem ipsum\",\n//        post: Post {\n//            __orm_uid: \"bf9929cb-f852-43a0-9260-2e3fb89833b7\",\n//            id: \"1\",\n//            name: \"New name\",\n//            comments: [\n//                [Circural]  \n//            ]\n//        }\n//     }\n//   ]\n// }\n\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarolkrupa%2Fjavascript-orm-mapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkarolkrupa%2Fjavascript-orm-mapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarolkrupa%2Fjavascript-orm-mapper/lists"}