{"id":20612382,"url":"https://github.com/skynet2/ngx-odata","last_synced_at":"2025-04-15T05:43:35.086Z","repository":{"id":65424558,"uuid":"118786299","full_name":"skynet2/ngx-odata","owner":"skynet2","description":"OData ts library","archived":false,"fork":false,"pushed_at":"2018-05-11T12:27:14.000Z","size":249,"stargazers_count":10,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-15T05:43:26.306Z","etag":null,"topics":["angular","javascript","odata","odata-client","odatav4","typescript-library"],"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/skynet2.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":"2018-01-24T15:48:48.000Z","updated_at":"2023-03-11T09:35:00.000Z","dependencies_parsed_at":"2023-01-23T10:55:20.109Z","dependency_job_id":null,"html_url":"https://github.com/skynet2/ngx-odata","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skynet2%2Fngx-odata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skynet2%2Fngx-odata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skynet2%2Fngx-odata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skynet2%2Fngx-odata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skynet2","download_url":"https://codeload.github.com/skynet2/ngx-odata/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249016309,"owners_count":21198829,"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":["angular","javascript","odata","odata-client","odatav4","typescript-library"],"created_at":"2024-11-16T10:24:14.197Z","updated_at":"2025-04-15T05:43:35.066Z","avatar_url":"https://github.com/skynet2.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ngx-odata\nSimple typescript library for generating odata queries using fluent api.\n\n[![NPM](https://nodei.co/npm/ngx-odata-v4.png)](https://nodei.co/npm/ngx-odata-v4/)\n\n# Prerequisite\nCan be used as typescript\\javascript library. Angular is not required.\n\n# Installation\n#### npm\n```\nnpm install ngx-odata-v4\n```\n#### yarn\n```\nyarn add ngx-odata-v4\n```\n# Integration\n1. Install library\n2. Import Query class \n```\nimport { Query } from \"ngx-odata-v4\";\n```\n\n# Examples\nSimple query example\n```ts\nQuery.create()\n            .expand('Requester', o =\u003e o.select('Email', 'ID'))\n            .expand('Responder', o =\u003e o.select('Email', 'ID'))\n            .orderBy('Created', OrderBy.Desc)\n            .orderBy('Status', OrderBy.Desc);\n```\nComplex query example\n```ts\nQuery.create()\n            .filter('Id', OperatorType.Greater, 1)\n            .filter('ReferenceId', OperatorType.Eq, 'c8027a81-5f7a-4a24-87a4-eec9afe48751')\n            .filterComplex(`Status eq 'Pending' or Status eq 'Approved'`)\n            .filter('Name', OperatorType.NotEqual, 'qwerty').compile();\n```\nComplex expand query example\n```ts\nQuery.create()\n            .expand('Prop1')\n            .expand('Prop2', o =\u003e {\n                o.select('Id', 'Name', 'Value')\n                    .orderBy('Id', OrderBy.Asc)\n                    .top(5);\n            })\n            .expand('Complex', o =\u003e {\n                o.select('Id', 'Name')\n                    .expand('Internal', i =\u003e {\n                        i.select('Description', 'Requester')\n                            .skip(5)\n                    });\n            })\n            .select('RootId', 'RootName').compile()\n```\nAngular usage Example\n```ts\nconst query = Query.create()\n            .expand('Requester', o =\u003e o.select('Email', 'ID'))\n            .expand('Responder', o =\u003e o.select('Email', 'ID'))\n            .orderBy('Created', OrderBy.Desc)\n            .orderBy('Status', OrderBy.Desc);\n\n        let x = new HttpHeaders();\n        this.generatedUrl = `http://localhost/PrivateKey?${query.compile()}`;\n        \n        this.resp = await this.http.get(this.generatedUrl,\n            { headers: x }).toPromise()\n```\n\n# GitHub\nPlease feel free to declare issues or contribute: https://github.com/skynet2/ngx-odata\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskynet2%2Fngx-odata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskynet2%2Fngx-odata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskynet2%2Fngx-odata/lists"}