{"id":22377250,"url":"https://github.com/luisreinoso/waterline-query-language-parser","last_synced_at":"2025-10-18T22:39:52.561Z","repository":{"id":87395521,"uuid":"133584367","full_name":"LuisReinoso/waterline-query-language-parser","owner":"LuisReinoso","description":"Generador de query de busqueda compatible con waterline query language","archived":false,"fork":false,"pushed_at":"2019-02-19T09:46:36.000Z","size":188,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-09T19:39:27.640Z","etag":null,"topics":["library","sailsjs","waterline"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/waterline-query-language-parser","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/LuisReinoso.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"code-of-conduct.md","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":"2018-05-15T23:33:49.000Z","updated_at":"2022-02-01T03:54:50.000Z","dependencies_parsed_at":"2023-04-03T12:21:40.534Z","dependency_job_id":null,"html_url":"https://github.com/LuisReinoso/waterline-query-language-parser","commit_stats":{"total_commits":24,"total_committers":3,"mean_commits":8.0,"dds":"0.29166666666666663","last_synced_commit":"2cd94e130d0612680eb86188131236d9345b9e81"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuisReinoso%2Fwaterline-query-language-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuisReinoso%2Fwaterline-query-language-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuisReinoso%2Fwaterline-query-language-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuisReinoso%2Fwaterline-query-language-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LuisReinoso","download_url":"https://codeload.github.com/LuisReinoso/waterline-query-language-parser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245708966,"owners_count":20659626,"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":["library","sailsjs","waterline"],"created_at":"2024-12-04T22:13:22.458Z","updated_at":"2025-10-18T22:39:52.471Z","avatar_url":"https://github.com/LuisReinoso.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Waterline Query Language Parser\n\n## Contenido\n\n- [Español](#spanish)\n- [English](#english)\n\n\u003ca id=\"spanish\"\u003e\u003c/a\u003e\nDado que [sailsjs](sailsjs.com) provee un [blueprint-api](https://sailsjs.com/documentation/reference/blueprint-api). Esta librería aprovecha la ruta [find](https://sailsjs.com/documentation/reference/blueprint-api/find-where) de tal forma genera el `querystring where` y asi realizar una búsqueda compleja utilizando etiquetas.\n\nEl query de busqueda tiene la siguiente forma\n```\netiqueta1: descripcion 1 etiqueta2: descripcion 2\n```\n\n### Instalación\n```bash\nnpm install waterline-query-language-parser --save\n```\n\n### Uso\n```javascript\nimport Query from \"waterline-query-language-parse\"\nparser = new Query('etiquetas: papel descripcion: papel blando');\n\nparser.etiquetas // ['etiquetas', 'descripcion']\nparser.descripcion // ['papel', 'papel blando']\n\nparser.query // where={\"or\":[{\"etiquetas\":{\"contains\":\"papel\"}},{\"descripcion\":{\"contains\":\"papel blando\"}}]}\n```\n\n### Builder pattern\nAhora puedes añadir mas etiquetas y descripción al query original\n\n```javascript\nimport Query from \"waterline-query-language-parse\"\n\nparser = new Query('etiquetas: papel');\n\nparser.etiquetas // ['etiquetas']\nparser.descripcion // ['papel']\n\nparse.addQuery('descripcion: papel blando');\n\nparser.etiquetas // ['etiquetas', 'descripcion']\nparser.descripcion // ['papel', 'papel blando']\n\nparser.query // where={\"or\":[{\"etiquetas\":{\"contains\":\"papel\"}},{\"descripcion\":{\"contains\":\"papel blando\"}}]}\n```\n\n### Modificadores\n\nTú puedes crear un query de búsqueda con los siguientes modificadores: mayor, menor, mayor que, menor que\n```\n  etiqueta:\u003e descripcion  // mayor que\n  etiqueta:\u003e= descripcion  // mayor igual\n  etiqueta:\u003c descripcion  // menor que\n  etiqueta:\u003c= descripcion  // menor igual\n```\n\nSi quieres que sea igual no debes utilizar ningun modificador.\n\n```javascript\nimport Query from \"waterline-query-language-parse\"\n\nparser = new Query('pagos:\u003e 100');\nparse.addQuery('cuota:\u003c= 15');\n\nparser.etiquetas // ['pagos', 'cuota']\nparser.descripcion // ['100', '15']\n\nparser.query // where={\"or\":[{\"etiquetas\":{\"\u003e\":5}},{\"cuota\":{\"\u003c=\":15}}]}\n```\n\n### Fechas\nTambíen puedes hacer búsqueda de fechas utilizando modificadores descritos anteriormente o por medio de un **rango**. De esta forma se realiza una búsqueda a partir de una fecha de inicio y fin de fecha.\n\nFormato simple: `YYYY/MM/DD`\n```javascript\nimport Query from \"waterline-query-language-parse\"\n\nparser = new Query('fechaInicio:\u003e 2018/06/05');\n\nparser.etiquetas // ['fechaInicio']\nparser.descripcion // ['2018/06/05']\n\nparser.query // where={\"or\":[{\"fechaInicio\":{\"\u003e\":\"2018-06-05T05:00:00.000Z\"}}]}\n```\n\nFormato rango: `YYYY/MM/DD-YYYY/MM/DD`\n```javascript\nimport Query from \"waterline-query-language-parse\"\n\nparser = new Query('fechaInicio: 2018/06/05-2018/12/15');\n\nparser.etiquetas // ['fechaInicio']\nparser.descripcion // ['2018/06/05-2018/12/15']\n\nparser.query // where={\"or\":[{\"fechaInicio\":{\"\u003e\":\"2018-06-05T05:00:00.000Z\",\"\u003c\":\"2018-12-15T05:00:00.000Z\"}}]}\n```\n\n## Referencias\n\nPara saber más información sobre el query language de waterline visita [query-language](https://sailsjs.com/documentation/concepts/models-and-orm/query-language)\n\n## Contribuciones\n\nVer [Guía de contribuciones](CONTRIBUTING.md)\n\n---\n\n\u003ca id=\"english\"\u003e\u003c/a\u003e\nSince [sailsjs](sailsjs.com) provides a [blueprint-api](https://sailsjs.com/documentation/reference/blueprint-api). This library uses the path [find](https://sailsjs.com/documentation/reference/blueprint-api/find-where) to generate the `querystring where` and thus perform a complex search using tags.\n\nThe search query has the following form\n\n```\ntag1: description 1 tag2: description 2\n```\n\n### Installation\n```bash\nnpm install waterline-query-language-parser --save\n```\n\n### Use\n```javascript\nimport Query from \"waterline-query-language-parse\"\nparser = new Query('etiquetas: papel descripcion: papel blando');\n\nparser.etiquetas // ['etiquetas', 'descripcion']\nparser.descripcion // ['papel', 'papel blando']\n\nparser.query // where={\"or\":[{\"etiquetas\":{\"contains\":\"papel\"}},{\"descripcion\":{\"contains\":\"papel blando\"}}]}\n```\n\n### Builder pattern\nNow you can add more tags and description to the original query\n\n```javascript\nimport Query from \"waterline-query-language-parse\"\n\nparser = new Query('etiquetas: papel');\n\nparser.etiquetas // ['etiquetas']\nparser.descripcion // ['papel']\n\nparse.addQuery('descripcion: papel blando');\n\nparser.etiquetas // ['etiquetas', 'descripcion']\nparser.descripcion // ['papel', 'papel blando']\n\nparser.query // where={\"or\":[{\"etiquetas\":{\"contains\":\"papel\"}},{\"descripcion\":{\"contains\":\"papel blando\"}}]}\n```\n\n### Modifiers\n\nYou can create a search query with the following modifiers: major, minor, greater than, less than\n\n```\n  etiqueta:\u003e descripcion  // greater than\n  etiqueta:\u003e= descripcion  // greater than or equal to\n  etiqueta:\u003c descripcion  // less than\n  etiqueta:\u003c= descripcion  // less than or equal to \n```\n\nIf you want it to be the same you should not use any modifier.\n\n```javascript\nimport Query from \"waterline-query-language-parse\"\n\nparser = new Query('pagos:\u003e 100');\nparse.addQuery('cuota:\u003c= 15');\n\nparser.etiquetas // ['pagos', 'cuota']\nparser.descripcion // ['100', '15']\n\nparser.query // where={\"or\":[{\"etiquetas\":{\"\u003e\":5}},{\"cuota\":{\"\u003c=\":15}}]}\n```\n\n### Dates\nYou can also search for dates using modifiers described above or by means of a ** range **. In this way, a search is carried out starting from a start date and ending date.\n\nSimple format: `YYYY/MM/DD`\n```javascript\nimport Query from \"waterline-query-language-parse\"\n\nparser = new Query('fechaInicio:\u003e 2018/06/05');\n\nparser.etiquetas // ['fechaInicio']\nparser.descripcion // ['2018/06/05']\n\nparser.query // where={\"or\":[{\"fechaInicio\":{\"\u003e\":\"2018-06-05T05:00:00.000Z\"}}]}\n```\n\nFormat range: `YYYY/MM/DD-YYYY/MN/DD`\n```javascript\nimport Query from \"waterline-query-language-parse\"\n\nparser = new Query('fechaInicio: 2018/06/05-2018/12/15');\n\nparser.etiquetas // ['fechaInicio']\nparser.descripcion // ['2018/06/05-2018/12/15']\n\nparser.query // where={\"or\":[{\"fechaInicio\":{\"\u003e\":\"2018-06-05T05:00:00.000Z\",\"\u003c\":\"2018-12-15T05:00:00.000Z\"}}]}\n```\n\n## References\n\nTo know more information about the query language of waterline visit [query-language](https://sailsjs.com/documentation/concepts/models-and-orm/query-language).\n\n## Contributions\n\nSee [Contributions Guide](CONTRIBUTING.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluisreinoso%2Fwaterline-query-language-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluisreinoso%2Fwaterline-query-language-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluisreinoso%2Fwaterline-query-language-parser/lists"}