{"id":15492142,"url":"https://github.com/imjuni/url-naong","last_synced_at":"2025-10-10T13:15:59.489Z","repository":{"id":57711674,"uuid":"514420116","full_name":"imjuni/url-naong","owner":"imjuni","description":"A URL builder library for JavaScript, TypeScript","archived":false,"fork":false,"pushed_at":"2024-06-01T12:29:37.000Z","size":568,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-19T10:27:30.136Z","etag":null,"topics":["build","builder","qs","query","querystring","querystrings","regexp","route","stringify","uri","url"],"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/imjuni.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-15T22:26:03.000Z","updated_at":"2024-07-09T00:59:46.000Z","dependencies_parsed_at":"2024-10-30T10:16:47.132Z","dependency_job_id":null,"html_url":"https://github.com/imjuni/url-naong","commit_stats":{"total_commits":10,"total_committers":1,"mean_commits":10.0,"dds":0.0,"last_synced_commit":"7bb14cecdf5e65a4b9786e8be9ad33225fdaff30"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imjuni%2Furl-naong","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imjuni%2Furl-naong/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imjuni%2Furl-naong/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imjuni%2Furl-naong/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imjuni","download_url":"https://codeload.github.com/imjuni/url-naong/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249859772,"owners_count":21335994,"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":["build","builder","qs","query","querystring","querystrings","regexp","route","stringify","uri","url"],"created_at":"2024-10-02T07:59:04.139Z","updated_at":"2025-10-10T13:15:54.292Z","avatar_url":"https://github.com/imjuni.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# url-naong\n\n[![Download Status](https://img.shields.io/npm/dw/url-naong.svg)](https://npmcharts.com/compare/url-naong?minimal=true)\n[![Github Star](https://img.shields.io/github/stars/imjuni/url-naong.svg?style=popout)](https://github.com/imjuni/url-naong)\n[![Github Issues](https://img.shields.io/github/issues-raw/imjuni/url-naong.svg)](https://github.com/imjuni/url-naong/issues)\n[![NPM version](https://img.shields.io/npm/v/url-naong.svg)](https://www.npmjs.com/package/url-naong)\n[![License](https://img.shields.io/npm/l/url-naong.svg)](https://github.com/imjuni/url-naong/blob/master/LICENSE)\n[![url-naong](https://circleci.com/gh/imjuni/url-naong.svg?style=shield)](https://app.circleci.com/pipelines/github/imjuni/url-naong?branch=master)\n\n`url-naong` is a simple url builder. The [URL](https://developer.mozilla.org/en-US/docs/Web/API/URL) class is great, but it doesn't allow you to apply variables to pathnames and arrays to querystrings. This is where `url-naong` comes in handy. url-naong is url builder that is inspired by [urlcat](https://github.com/balazsbotond/urlcat)\n\nnaong is korean name of [Meowth(pokemon monster)](https://www.pokemon.com/us/pokedex/meowth)\n\n## install\n\n```bash\nnpm install url-naong --save\n```\n\n## Usage\n\n`urlna` function take 4 parameters.\n\n1. (required) host\n2. (required) pathname\n3. (optional) path parameters and querystring\n4. (optional) options of the qs library\n\n### Variable in pathname\n\n```js\nconst urlna = require('url-naong').urlna;\n\nconst url = urlna(undefined, '/hero/:hid/comic/:cid/name/:name', \n  { \n    hid: 1, // evaluate in pathname\n    cid: 13, // evaluate in pathname\n    name: 'ironman', // evaluate in pathname\n    tid: '72368bb0-a6cc-4fa1-9288-c903fd45c333' // evaluate in querystring\n  }\n);\n\nconsole.log(url);\n\n// created\u003e '/hero/1/comic/13/name/ironman?tid=72368bb0-a6cc-4fa1-9288-c903fd45c333'\n```\n\n### Querystring\n\n```js\nconst urlna = require('url-naong').urlna;\n\nconst url = urlna(undefined, '/hero/:hid/comic/:cid/name/:name', \n  { \n    hid: 1, // evaluate in pathname\n    cid: 13, // evaluate in pathname\n    name: 'ironman', // evaluate in pathname\n    tid: '72368bb0-a6cc-4fa1-9288-c903fd45c333' // evaluate in querystring\n  }\n);\n\nconsole.log(url);\n\n// created\u003e '/hero/1/comic/13/name/ironman?tid=72368bb0-a6cc-4fa1-9288-c903fd45c333'\n```\n\n## TypeScript\n\n```ts\nimport { urlna } from 'url-naong';\n\nconst url = urlna(undefined, '/hero/:hid/comic/:cid/name/:name', \n  { name: 'ironman', hid: 1, cid: 13, tid: '72368bb0-a6cc-4fa1-9288-c903fd45c333', }\n);\n\nconsole.log(url);\n\n// created\u003e '/hero/1/comic/13/name/ironman?tid=72368bb0-a6cc-4fa1-9288-c903fd45c333'\n```\n\n## Array of querystring\n\nurl-naong using [qs](https://github.com/ljharb/qs) for stringify querystring. Section [Stringifying](https://github.com/ljharb/qs#stringifying) how to stringify array in querystring.\n\n```ts\nconst urlna = require('url-naong').default;\n\n const url = urlna(\n  undefined, '/hero/:hid/comic/:cid/name/:name',\n  {\n    name: 'ironman',\n    hid: 1,\n    cid: 13,\n    tid: '72368bb0-a6cc-4fa1-9288-c903fd45c333',\n    category: ['marvel', 'advengers', 'S.H.I.E.L.D'],\n  },\n  {\n    arrayFormat: 'repeat',\n  },\n);\n\n// created\u003e '/hero/1/comic/13/name/ironman?tid=72368bb0-a6cc-4fa1-9288-c903fd45c333\u0026category=marvel\u0026category=advengers\u0026category=S.H.I.E.L.D',\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimjuni%2Furl-naong","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimjuni%2Furl-naong","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimjuni%2Furl-naong/lists"}