{"id":18940298,"url":"https://github.com/donejs/donejs-connect-model","last_synced_at":"2026-03-23T08:30:17.169Z","repository":{"id":57215101,"uuid":"57339629","full_name":"donejs/donejs-connect-model","owner":"donejs","description":"Generates a more-verbose can-connect supermodel","archived":false,"fork":false,"pushed_at":"2019-06-19T19:19:33.000Z","size":18,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-02-02T04:18:09.754Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/donejs.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-04-28T23:14:20.000Z","updated_at":"2019-06-19T19:19:16.000Z","dependencies_parsed_at":"2022-08-26T13:41:10.921Z","dependency_job_id":null,"html_url":"https://github.com/donejs/donejs-connect-model","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donejs%2Fdonejs-connect-model","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donejs%2Fdonejs-connect-model/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donejs%2Fdonejs-connect-model/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donejs%2Fdonejs-connect-model/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/donejs","download_url":"https://codeload.github.com/donejs/donejs-connect-model/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239939077,"owners_count":19721770,"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":[],"created_at":"2024-11-08T12:21:50.823Z","updated_at":"2026-03-23T08:30:17.122Z","avatar_url":"https://github.com/donejs.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# donejs-connect-model\n\n[![Build Status](https://travis-ci.org/donejs/donejs-connect-model.svg?branch=master)](https://travis-ci.org/donejs/donejs-connect-model)\n[![npm version](https://badge.fury.io/js/donejs-connect-model.svg)](http://badge.fury.io/js/donejs-connect-model)\n\nGenerates a more verbose can-connect supermodel, which allows you to more easily customize behaviors.\n\n## Using the generator\n\nTo add this generator to your DoneJS application, run\n\n```\ndonejs add connect-model\n```\n\n## Example output\nIf you run the above command and answer with these options:\n```\n? The singular name for your model (e.g. order) order\n? What is the URL endpoint? /orders\n? What is the property name of the id? id\n   create src/models/fixtures/order.js\n   create src/models/order.js\n   create src/models/order_test.js\n```\n\nYou'll get this output for `order.js`.\n\n```js\nimport can from 'can';\nimport $ from 'jquery';\nimport connect from 'can-connect';\nimport tag from 'can-connect/can/tag/';\nimport 'can-connect/constructor/';\nimport 'can-connect/can/map/';\nimport 'can-connect/can/';\nimport 'can-connect/constructor/store/';\nimport 'can-connect/constructor/callbacks-once/';\nimport 'can-connect/data/callbacks/';\nimport 'can-connect/data/callbacks-cache/';\nimport 'can-connect/data/combine-requests/';\nimport 'can-connect/data/inline-cache/';\nimport 'can-connect/data/localstorage-cache/';\nimport 'can-connect/data/parse/';\nimport 'can-connect/data/url/';\nimport 'can-connect/fall-through-cache/';\nimport 'can-connect/real-time/';\nimport 'can/map/define/define';\n\nvar behaviors = [\n  'constructor',\n  'can-map',\n  'constructor-store',\n  'data-callbacks',\n  'data-combine-requests',\n  'data-inline-cache',\n  'data-parse',\n  'data-url',\n  'constructor-callbacks-once',\n  'fall-through-cache'\n];\n\nexport const Order = can.Map.extend(Order, {\n  define: {}\n});\n\nOrder.List = can.List.extend({\n  Map: Order\n}, {});\n\nlet options = {\n  ajax: $.ajax,\n  url: '/orders',\n  idProp: 'id',\n  Map: Order,\n  List: Order.List,\n  name: 'order'\n};\n\noptions.cacheConnection= connect(['data-localstorage-cache'],{\n  name: 'orderCache',\n  idProp: options.idProp,\n  algebra: options.algebra\n});\n\nexport const orderConnection = connect(behaviors, options);\n\ntag('order-model', orderConnection);\n\nexport default Order;\n```\n\n## Developing\n\nTo make changes to this generator, clone the repository and install the dependencies\n\n```\ngit clone git@github.com:donejs/donejs-connect-model.git\ncd donejs-connect-model\nnpm install\n```\n\nThen you can run the tests with\n\n```\nnpm test\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdonejs%2Fdonejs-connect-model","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdonejs%2Fdonejs-connect-model","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdonejs%2Fdonejs-connect-model/lists"}