{"id":22089030,"url":"https://github.com/mzaini30/orm","last_synced_at":"2026-05-02T15:35:22.809Z","repository":{"id":218252565,"uuid":"745735932","full_name":"mzaini30/orm","owner":"mzaini30","description":"Eloquent Laravel ORM pada JSON","archived":false,"fork":false,"pushed_at":"2024-02-11T04:44:48.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-23T22:46:06.832Z","etag":null,"topics":["eloquent","json","orm"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mzaini30.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-20T01:48:25.000Z","updated_at":"2024-01-20T17:34:16.000Z","dependencies_parsed_at":"2024-12-01T02:10:34.626Z","dependency_job_id":"6b577224-a50e-4def-b7c7-30ceb711a3cb","html_url":"https://github.com/mzaini30/orm","commit_stats":null,"previous_names":["mzaini30/orm"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mzaini30/orm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzaini30%2Form","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzaini30%2Form/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzaini30%2Form/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzaini30%2Form/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mzaini30","download_url":"https://codeload.github.com/mzaini30/orm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzaini30%2Form/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32540115,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T12:25:33.646Z","status":"ssl_error","status_checked_at":"2026-05-02T12:24:51.733Z","response_time":132,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["eloquent","json","orm"],"created_at":"2024-12-01T02:10:26.464Z","updated_at":"2026-05-02T15:35:22.792Z","avatar_url":"https://github.com/mzaini30.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ORM\n\nEloquent Laravel ORM pada JSON.\n\n## Init\n\n```javascript\nimport { Orm } from \"./orm/index.js\";\n\nlet data = {};\n```\n\n## Insert\n\nInsert single:\n\n```javascript\nnew Orm(data).insert(\"users\", { name: \"saya\" }).done();\n```\n\nInsert many records:\n\n```javascript\nnew Orm(data)\n  .insert(\"users\", [\n    { name: \"saya\" },\n    { name: \"saya yang lain\" },\n    { name: \"saya juga yang lain\" },\n  ])\n  .done();\n```\n\n## Update\n\n```javascript\nnew Orm(data)\n  .update(\"user\", idPertama, {\n    nama: \"Zen yang lain lagi\",\n  })\n  .done();\n```\n\n## Delete\n\n```javascript\nnew Orm(data).delete(\"user\", idTerakhir).done();\n```\n\n## Cari\n\n```javascript\nnew Orm(data).cari(\"user\", \"Saya\").done();\n```\n\n## Where\n\n```javascript\nnew Orm(data).where(\"user\", { nama: \"saya yang lain\" }).done();\n```\n\n## Distinct\n\n```javascript\nnew Orm(data).distinct(\"user\", \"nama\").done();\n```\n\n## With\n\nContoh kode:\n\n```javascript\nimport { Orm } from \"./orm/index.js\";\n\n// Contoh penggunaan\nconst database = {};\n\nconst orm = new Orm(database);\n\n// Menambahkan data ke 'user'\norm.insert(\"user\", { id: 1, nama: \"John Doe\", alamat: \"Jalan ABC\" });\n\n// Menambahkan data ke 'komentar'\norm.insert(\"komentar\", {\n  komentarnya: \"Bagus!\",\n  waktu: \"2024-01-21\",\n  userId: 1,\n});\norm.insert(\"komentar\", {\n  komentarnya: \"Luar biasa!\",\n  waktu: \"2024-01-22\",\n  userId: 2,\n});\n\n// Menambahkan data ke 'pelanggaran'\norm.insert(\"pelanggaran\", { namaPelanggaran: \"Pencurian\", userId: 1 });\norm.insert(\"pelanggaran\", { namaPelanggaran: \"Kerusuhan\", userId: 1 });\n\n// Melakukan join dengan menggunakan metode with\nconst joinedData = orm.with(\"user\", [\"komentar\", \"pelanggaran\"]).done();\n\nconsole.log(JSON.stringify(joinedData, null, 2));\n```\n\nHasil:\n\n```json\n{\n  \"user\": [\n    {\n      \"id\": 1,\n      \"nama\": \"John Doe\",\n      \"alamat\": \"Jalan ABC\",\n      \"komentar\": [\n        {\n          \"id\": 17057691681211562,\n          \"komentarnya\": \"Bagus!\",\n          \"waktu\": \"2024-01-21\",\n          \"userId\": 1\n        }\n      ],\n      \"pelanggaran\": [\n        {\n          \"id\": 17057691681217770,\n          \"namaPelanggaran\": \"Pencurian\",\n          \"userId\": 1\n        },\n        {\n          \"id\": 17057691681213332,\n          \"namaPelanggaran\": \"Kerusuhan\",\n          \"userId\": 1\n        }\n      ]\n    }\n  ],\n  \"komentar\": [\n    {\n      \"id\": 17057691681211562,\n      \"komentarnya\": \"Bagus!\",\n      \"waktu\": \"2024-01-21\",\n      \"userId\": 1\n    },\n    {\n      \"id\": 17057691681214620,\n      \"komentarnya\": \"Luar biasa!\",\n      \"waktu\": \"2024-01-22\",\n      \"userId\": 2\n    }\n  ],\n  \"pelanggaran\": [\n    {\n      \"id\": 17057691681217770,\n      \"namaPelanggaran\": \"Pencurian\",\n      \"userId\": 1\n    },\n    {\n      \"id\": 17057691681213332,\n      \"namaPelanggaran\": \"Kerusuhan\",\n      \"userId\": 1\n    }\n  ]\n}\n```\n\n## Pivot\n\nContoh kode:\n\n```javascript\nimport { Orm } from \"./orm/index.js\";\nimport { writeFileSync } from \"fs\";\n\n// Contoh penggunaan\nconst database = {};\n\nconst orm = new Orm(database);\n\n// Menambahkan data ke 'nama'\norm.insert(\"nama\", { id: 1, nama: \"John\" });\norm.insert(\"nama\", { id: 2, nama: \"Jane\" });\n\n// Menambahkan data ke 'pangkat'\norm.insert(\"pangkat\", { id: 1, pangkat: \"Sersan\" });\norm.insert(\"pangkat\", { id: 2, pangkat: \"Letnan\" });\n\n// Menambahkan data ke 'nama_pangkat' (tabel pivot)\norm.insert(\"nama_pangkat\", { namaId: 1, pangkatId: 1 });\norm.insert(\"nama_pangkat\", { namaId: 1, pangkatId: 2 });\norm.insert(\"nama_pangkat\", { namaId: 2, pangkatId: 2 });\n\n// Melakukan join many-to-many dengan menggunakan metode pivot\nconst joinedData = orm.pivot(\"nama\", \"pangkat\").done();\n\n// console.log(JSON.stringify(joinedData, null, 2));\n// console.log(joinedData.pangkat[1].nama);\nwriteFileSync(\"hasil.json\", JSON.stringify(joinedData, null, 2));\n```\n\nHasil:\n\n```json\n{\n  \"nama\": [\n    {\n      \"id\": 1,\n      \"nama\": \"John\",\n      \"pangkat\": [\n        {\n          \"id\": 1,\n          \"pangkat\": \"Sersan\"\n        },\n        {\n          \"id\": 2,\n          \"pangkat\": \"Letnan\"\n        }\n      ]\n    },\n    {\n      \"id\": 2,\n      \"nama\": \"Jane\",\n      \"pangkat\": [\n        {\n          \"id\": 2,\n          \"pangkat\": \"Letnan\"\n        }\n      ]\n    }\n  ],\n  \"pangkat\": [\n    {\n      \"id\": 1,\n      \"pangkat\": \"Sersan\",\n      \"nama\": [\n        {\n          \"id\": 1,\n          \"nama\": \"John\"\n        }\n      ]\n    },\n    {\n      \"id\": 2,\n      \"pangkat\": \"Letnan\",\n      \"nama\": [\n        {\n          \"id\": 1,\n          \"nama\": \"John\"\n        },\n        {\n          \"id\": 2,\n          \"nama\": \"Jane\"\n        }\n      ]\n    }\n  ],\n  \"nama_pangkat\": [\n    {\n      \"id\": 17057716558023974,\n      \"namaId\": 1,\n      \"pangkatId\": 1\n    },\n    {\n      \"id\": 17057716558026706,\n      \"namaId\": 1,\n      \"pangkatId\": 2\n    },\n    {\n      \"id\": 17057716558023310,\n      \"namaId\": 2,\n      \"pangkatId\": 2\n    }\n  ]\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmzaini30%2Form","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmzaini30%2Form","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmzaini30%2Form/lists"}