{"_id":"including","_rev":"34-0e575830b15d3b7ccd2edbbe6ec2f5cf","name":"including","dist-tags":{"latest":"0.0.25"},"versions":{"0.0.16":{"name":"including","version":"0.0.16","author":"","license":"ISC","_id":"including@0.0.16","maintainers":[{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"}],"dist":{"shasum":"a15e4d80cbba410c431b4d3372b095c4256a7925","tarball":"https://registry.npmjs.org/including/-/including-0.0.16.tgz","fileCount":495,"integrity":"sha512-dgNfc9UwFC//NbcqpC9f73U06inKK+uQziedW+4YjGnB5Lhg0p0ZXjkBogBnvh5pDTAsGIMtR1+K5f1O83ZI9g==","signatures":[{"sig":"MEUCIQCFKbgSnbBYbw5sNfcvWH/Xs0XTgF2SnRur6/OnJZhQZAIgbBl1G04bvFYtLEPYIjxrwI8gWNuzY75qUtSXvPJ+PDU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2375047},"main":"index.js","gitHead":"26f3aeb8a1a5cb13191102e5556686d435564bec","scripts":{"dev":"ts-node-dev --respawn --transpile-only ./src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","nodemon":"nodemon"},"_npmUser":{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"},"_npmVersion":"8.19.2","description":"Low code HTTP client can be combine and including data from multiple endpoint for the node.js don't use in browser, please don't use. You don't need for loop any more for combine data","directories":{},"_nodeVersion":"16.18.1","dependencies":{"flat":"^5.0.2","node-fetch":"^2.7.0","object-query-string":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.2.2","@types/flat":"^5.0.2","ts-node-dev":"^2.0.0","@types/node-fetch":"^2.6.4"},"_npmOperationalInternal":{"tmp":"tmp/including_0.0.16_1700029777562_0.7257102065896586","host":"s3://npm-registry-packages"}},"0.0.17":{"name":"including","version":"0.0.17","author":"","license":"ISC","_id":"including@0.0.17","maintainers":[{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"}],"dist":{"shasum":"a1d183ac09461ea56cd753311a31c4870c473710","tarball":"https://registry.npmjs.org/including/-/including-0.0.17.tgz","fileCount":498,"integrity":"sha512-nqugb3E3vwrKH9VUl7L7juHY8sugVBxo/jonY4UmtSfsswZOwCWYNPq/OBmqTx4d/S0DLUc8Cdohl2DS+Zxp9w==","signatures":[{"sig":"MEUCIQDVxhdBq6MWOv0Qo4GbCiaB4lTywLIQwloqqmWqMUJF0QIgUUibIjjKucK4nVPPjqEYMIB2hiXpE8MA+hVlcNUTlwI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2380685},"main":"index.js","gitHead":"61d93157395951991bd7cea5134c5a106cd992e9","scripts":{"dev":"ts-node-dev --respawn --transpile-only ./src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","nodemon":"nodemon"},"_npmUser":{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"},"_npmVersion":"8.19.2","description":"Low code HTTP client can be combine and including data from multiple endpoint for the node.js don't use in browser, please don't use. You don't need for loop any more for combine data","directories":{},"_nodeVersion":"16.18.1","dependencies":{"flat":"^5.0.2","node-fetch":"^2.7.0","object-query-string":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.2.2","@types/flat":"^5.0.2","ts-node-dev":"^2.0.0","@types/node-fetch":"^2.6.4"},"_npmOperationalInternal":{"tmp":"tmp/including_0.0.17_1701073435077_0.13604251310029802","host":"s3://npm-registry-packages"}},"0.0.18":{"name":"including","version":"0.0.18","author":"","license":"ISC","_id":"including@0.0.18","maintainers":[{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"}],"dist":{"shasum":"07d56eeec93d67c7d6d357ad5c3b23ee0456a549","tarball":"https://registry.npmjs.org/including/-/including-0.0.18.tgz","fileCount":498,"integrity":"sha512-qkPvPWw1cqE8JUX3vHQudbftMP3OGS8qPnwEb47PubligGI0LNXa7q9GufuXAH3Pgf61W+gkBoSw0jUS9fUNMQ==","signatures":[{"sig":"MEUCIQDKIINwtP45Hi1DkteusMygnASyWexp/i2tq8A9JaOIXwIgT8kXXlreZnHxe+y0KIE/rR6008T9sjM0VEuMV3AmRYs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2380831},"main":"index.js","gitHead":"709bb81543393f11fa318390e0b978152ff370fb","scripts":{"dev":"ts-node-dev --respawn --transpile-only ./src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","nodemon":"nodemon"},"_npmUser":{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"},"_npmVersion":"8.19.2","description":"Low code HTTP client can be combine and including data from multiple endpoint for the node.js don't use in browser, please don't use. You don't need for loop any more for combine data","directories":{},"_nodeVersion":"16.18.1","dependencies":{"flat":"^5.0.2","node-fetch":"^2.7.0","object-query-string":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.2.2","@types/flat":"^5.0.2","ts-node-dev":"^2.0.0","@types/node-fetch":"^2.6.4"},"_npmOperationalInternal":{"tmp":"tmp/including_0.0.18_1704883589953_0.019405077102953916","host":"s3://npm-registry-packages"}},"0.0.20":{"name":"including","version":"0.0.20","author":"","license":"ISC","_id":"including@0.0.20","maintainers":[{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"}],"dist":{"shasum":"9844907f7a03c3f936d93caf5991f772f5371a5e","tarball":"https://registry.npmjs.org/including/-/including-0.0.20.tgz","fileCount":498,"integrity":"sha512-f2GLFwSS7QLYFFdfTUE6UbG7wA8I3h084VJl2ceM8YNEFZ8zoh8+XTZCyuHSi423yu/apURqFSQ1PX4o9KPMOw==","signatures":[{"sig":"MEQCIBWWOAVIH2cUFhLPKrqwFNqVIFZjJLWhpnAz6fDdi0AsAiB0X9mhyHs8n/yWbPOii2zOVllZ94YbYfHa+f/UGR2poA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2384415},"main":"index.js","gitHead":"987cf28c3111dd17cd9052446d64f53aa351f465","scripts":{"dev":"ts-node-dev --respawn --transpile-only ./src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","nodemon":"nodemon"},"_npmUser":{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"},"_npmVersion":"8.19.2","description":"Low code HTTP client can be combine and including data from multiple endpoint for the node.js don't use in browser, please don't use. You don't need for loop any more for combine data","directories":{},"_nodeVersion":"16.18.1","dependencies":{"flat":"^5.0.2","node-fetch":"^2.7.0","object-query-string":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.2.2","@types/flat":"^5.0.2","ts-node-dev":"^2.0.0","@types/node-fetch":"^2.6.4"},"_npmOperationalInternal":{"tmp":"tmp/including_0.0.20_1720497298524_0.5534752051274341","host":"s3://npm-registry-packages"}},"0.0.21":{"name":"including","version":"0.0.21","author":"","license":"ISC","_id":"including@0.0.21","maintainers":[{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"}],"dist":{"shasum":"c0740eb37c915be45145ed3a6f672ac978fadb5a","tarball":"https://registry.npmjs.org/including/-/including-0.0.21.tgz","fileCount":498,"integrity":"sha512-d7jaPFv5OQ65gAVrt28ZaBIKK5HOYQ5q/acXedWiSyTCz2+L1JTkLI1aS6PzjPt4pT/IQ88BqMilv/TBCsQV7Q==","signatures":[{"sig":"MEYCIQDe2gtMMMUM4wuIafEeQXRolsx2+PB8SYJlcKyXGIOE0QIhAJZ3Dq7SzUFSLpyC+TCCp6aKnjM4J+czbTHyriySlMFN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2384411},"main":"index.js","gitHead":"eadeb48d8acd6350f8a289f8bd2d0fb4b395b8c5","scripts":{"dev":"ts-node-dev --respawn --transpile-only ./src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","nodemon":"nodemon"},"_npmUser":{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"},"_npmVersion":"8.19.2","description":"Low code HTTP client can be combine and including data from multiple endpoint for the node.js don't use in browser, please don't use. You don't need for loop any more for combine data","directories":{},"_nodeVersion":"16.18.1","dependencies":{"flat":"^5.0.2","node-fetch":"^2.7.0","object-query-string":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.2.2","@types/flat":"^5.0.2","ts-node-dev":"^2.0.0","@types/node-fetch":"^2.6.4"},"_npmOperationalInternal":{"tmp":"tmp/including_0.0.21_1720498509661_0.8040768513954284","host":"s3://npm-registry-packages"}},"0.0.22":{"name":"including","version":"0.0.22","author":"","license":"ISC","_id":"including@0.0.22","maintainers":[{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"}],"dist":{"shasum":"7ac50059f27a67bf6fcad05d6fd69ce096bdd944","tarball":"https://registry.npmjs.org/including/-/including-0.0.22.tgz","fileCount":498,"integrity":"sha512-4CfHIAOw4dLs8UPxUE6ZkSIaZC/flJXSpifRwREq+N2mYSM/hseX/Nk5z94akYEPAsSJpX7SdeK1vUGWYM38mw==","signatures":[{"sig":"MEUCIQDuqFTkcuQzuosZ7UI5siZITYKG62XGS/5b9+JcZF0OzQIgA72lO2iLqWwGbcUQMrRK4x/RKsfVa1Jags8wtvdbsZY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2381156},"main":"index.js","gitHead":"a4addbd33f1eaeea28a23a00ef27990fbb1ab41f","scripts":{"dev":"ts-node-dev --respawn --transpile-only ./src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","nodemon":"nodemon"},"_npmUser":{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"},"_npmVersion":"8.19.2","description":"Low code HTTP client can be combine and including data from multiple endpoint for the node.js don't use in browser, please don't use. You don't need for loop any more for combine data","directories":{},"_nodeVersion":"16.18.1","dependencies":{"flat":"^5.0.2","node-fetch":"^2.7.0","object-query-string":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.2.2","@types/flat":"^5.0.2","ts-node-dev":"^2.0.0","@types/node-fetch":"^2.6.4"},"_npmOperationalInternal":{"tmp":"tmp/including_0.0.22_1720508244963_0.9377742893299177","host":"s3://npm-registry-packages"}},"0.0.23":{"name":"including","version":"0.0.23","author":"","license":"ISC","_id":"including@0.0.23","maintainers":[{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"}],"dist":{"shasum":"b3ace2448ba8618e7d491bf575279afdf16c4f4a","tarball":"https://registry.npmjs.org/including/-/including-0.0.23.tgz","fileCount":498,"integrity":"sha512-aZ9gmzfDBqyg2dD7iL0ciTiZKc0T9/YIxhJe/vrWtbvMSZKDBWz+DDBussvBsx2oNgJ4JY/rLnQh1R4HYf4mrQ==","signatures":[{"sig":"MEUCIQDEoSPGxSDKFKzuz07nMCI8908bU4p4Us39WfL0s7zLQgIgV/PKwKGkkRiQWkbRx1XEVQu7YV/e8VyHclz7adTUr5Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2381385},"main":"index.js","gitHead":"6582127f9b12be941124ba7879a732171080121d","scripts":{"dev":"ts-node-dev --respawn --transpile-only ./src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","nodemon":"nodemon"},"_npmUser":{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"},"_npmVersion":"8.19.2","description":"Low code HTTP client can be combine and including data from multiple endpoint for the node.js don't use in browser, please don't use. You don't need for loop any more for combine data","directories":{},"_nodeVersion":"16.18.1","dependencies":{"flat":"^5.0.2","node-fetch":"^2.7.0","object-query-string":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.2.2","@types/flat":"^5.0.2","ts-node-dev":"^2.0.0","@types/node-fetch":"^2.6.4"},"_npmOperationalInternal":{"tmp":"tmp/including_0.0.23_1720511330308_0.8879666550471939","host":"s3://npm-registry-packages"}},"0.0.24":{"name":"including","version":"0.0.24","author":"","license":"ISC","_id":"including@0.0.24","maintainers":[{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"}],"dist":{"shasum":"68f0a3cb0a80797c8dfbee4f71dceb35445bae23","tarball":"https://registry.npmjs.org/including/-/including-0.0.24.tgz","fileCount":498,"integrity":"sha512-xREgEG9YNWJudI6ud3jLgQJTERF+YyoL2EO3hqwQdfyfVluJ/ybzu9fKZWyiTFuDRBy7FDuAdH5QmZE0Xk9WcA==","signatures":[{"sig":"MEYCIQD03+weUZIKWZkpNArBCWaRoOFJ4nLtAg89RRHcuZLxawIhAL6uWWXEQhme3lxiCPUH2BqY5u6fhv83tdce6vNdzLd4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2382300},"main":"index.js","gitHead":"1ba4c31ba5820bcd804bd93c8987bddb249716ff","scripts":{"dev":"ts-node-dev --respawn --transpile-only ./src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","nodemon":"nodemon"},"_npmUser":{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"},"_npmVersion":"8.19.2","description":"Low code HTTP client can be combine and including data from multiple endpoint for the node.js don't use in browser, please don't use. You don't need for loop any more for combine data","directories":{},"_nodeVersion":"16.18.1","dependencies":{"flat":"^5.0.2","node-fetch":"^2.7.0","object-query-string":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.2.2","@types/flat":"^5.0.2","ts-node-dev":"^2.0.0","@types/node-fetch":"^2.6.4"},"_npmOperationalInternal":{"tmp":"tmp/including_0.0.24_1720515017534_0.5443311753198761","host":"s3://npm-registry-packages"}},"0.0.25":{"name":"including","version":"0.0.25","description":"Low code HTTP client can be combine and including data from multiple endpoint for the node.js don't use in browser, please don't use. You don't need for loop any more for combine data","main":"index.js","scripts":{"build":"tsc","nodemon":"nodemon","dev":"ts-node-dev --respawn --transpile-only ./src/index.ts","test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","devDependencies":{"@types/flat":"^5.0.2","@types/node-fetch":"^2.6.4","ts-node-dev":"^2.0.0","typescript":"^5.2.2"},"dependencies":{"flat":"^5.0.2","node-fetch":"^2.7.0","object-query-string":"^1.2.0"},"gitHead":"774a3bc47f1ee45f7ac4ea35bea4626478b34a23","_id":"including@0.0.25","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-TK4DTehTmm6u/9He0aD/mWXCGxxCJ15qnODPhBOJOMzMQCO/X0mHQMOHgZA2awM9vK8f5YZwfcK/uDtCwubvZQ==","shasum":"2a029949281c546bbb18ec483c58a4621fe2dfa9","tarball":"https://registry.npmjs.org/including/-/including-0.0.25.tgz","fileCount":498,"unpackedSize":2381444,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF7G2IN2yO2PiLGdqxagJ7aqowiM5puJDy8r87OihbvzAiBT21m/IM9nbOZy/GbySy1Sk2uRwAFqDBN27S9xQL692A=="}]},"_npmUser":{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"},"directories":{},"maintainers":[{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/including_0.0.25_1720515961160_0.502446879972474"},"_hasShrinkwrap":false}},"time":{"created":"2023-09-14T08:57:44.014Z","modified":"2024-07-09T09:06:01.581Z","0.0.1":"2023-09-08T12:31:04.026Z","0.0.2":"2023-09-08T12:35:17.910Z","0.0.4":"2023-09-13T03:21:00.305Z","0.0.5":"2023-09-13T03:30:31.415Z","0.0.6":"2023-09-14T08:57:44.556Z","0.0.7":"2023-09-14T09:31:36.958Z","0.0.8":"2023-09-14T09:32:39.977Z","0.0.9":"2023-09-14T09:36:48.819Z","0.0.10":"2023-09-14T09:47:47.165Z","0.0.11":"2023-11-15T03:53:52.736Z","0.0.12":"2023-11-15T04:00:08.082Z","0.0.13":"2023-11-15T04:07:25.589Z","0.0.14":"2023-11-15T04:16:50.773Z","0.0.15":"2023-11-15T04:23:25.735Z","0.0.16":"2023-11-15T06:29:37.869Z","0.0.17":"2023-11-27T08:23:55.357Z","0.0.18":"2024-01-10T10:46:30.165Z","0.0.20":"2024-07-09T03:54:58.805Z","0.0.21":"2024-07-09T04:15:09.937Z","0.0.22":"2024-07-09T06:57:25.264Z","0.0.23":"2024-07-09T07:48:50.590Z","0.0.24":"2024-07-09T08:50:17.840Z","0.0.25":"2024-07-09T09:06:01.414Z"},"license":"ISC","description":"Low code HTTP client can be combine and including data from multiple endpoint for the node.js don't use in browser, please don't use. You don't need for loop any more for combine data","maintainers":[{"name":"moonoi.forward","email":"moonoi.forward@gmail.com"}],"readme":"# Including.js\nLow code HTTP client can be combine and including data from multiple endpoint for the node.js don't use in browser, please don't use.\nYou don't need for loop any more for combine data\n\n## Features\n\n- http multiple endpoint in multi task process\n- in each endpoint process can be including other http for joining data and not limit dimension (includes)\n- create main data list from belong data such as contents list from favorite list (branches)\n\n## Installation\n\n```base\nnpm i including\n```\n\n## Example From https://jsonplaceholder.typicode.com\n\n##### Example one item\nYou can get post data by id = 1 from https://jsonplaceholder.typicode.com/posts/1\n\n```json\n{\n  \"userId\": 1,\n  \"id\": 1,\n  \"title\": \"sunt aut facere repellat provident occaecati excepturi optio reprehenderit\",\n  \"body\": \"quia et suscipit\\nsuscipit recusandae consequuntur expedita et cum\\nreprehenderit molestiae ut ut quas totam\\nnostrum rerum est autem sunt rem eveniet architecto\"\n}\n```\nand you need to be combine user data from https://jsonplaceholder.typicode.com/users/1\n\n```json\n{\n    \"id\": 1,\n    \"name\": \"Leanne Graham\",\n    \"username\": \"Bret\",\n    \"email\": \"Sincere@april.biz\"\n}\n```\ncombine to be\n```json\n{\n  \"userId\": 1,\n  \"id\": 1,\n  \"title\": \"sunt aut facere repellat provident occaecati excepturi optio reprehenderit\",\n  \"body\": \"quia et suscipit\\nsuscipit recusandae consequuntur expedita et cum\\nreprehenderit molestiae ut ut quas totam\\nnostrum rerum est autem sunt rem eveniet architecto\",\n  \"includeUser\": {\n    \"id\": 1,\n    \"name\": \"Leanne Graham\",\n    \"username\": \"Bret\",\n    \"email\": \"Sincere@april.biz\"\n  }\n}\n```\nif you use general node.js the code it look like\n```js\n  const postId = 1;\n  const post = (await fetch('https://jsonplaceholder.typicode.com/posts/' + postId)).json();\n  const user = (await fetch('https://jsonplaceholder.typicode.com/users/' + post.userId)).json();\n  post.includeUser = user\n```\n\nyou can use including for this result by node.js example\n```js\nconst { including } = require('including');\nincluding({\n    list: [\n      {\n        url: \"https://jsonplaceholder.typicode.com/posts/1\",\n        method: \"GET\",\n        model: \"posts\",\n        includes: [\n          {\n            url: \"https://jsonplaceholder.typicode.com/users/$1\",\n            method: \"GET\",\n            model: \"includeUser\",\n            params: ['userId'] // bring userId from posts to replace the url $1\n          },\n        ],\n      },\n    ]\n  }).then(data => {\n    console.log(data);\n})\n```\n\n##### Example list item\n\nYou can get posts data from https://jsonplaceholder.typicode.com/posts\n\n```json\n[\n  {\n    \"userId\": 1,\n    \"id\": 1,\n    \"title\": \"sunt aut facere repellat provident occaecati excepturi optio reprehenderit\",\n    \"body\": \"quia et suscipit\\nsuscipit recusandae consequuntur expedita et cum\\nreprehenderit molestiae ut ut quas totam\\nnostrum rerum est autem sunt rem eveniet architecto\"\n  },\n  {\n    \"userId\": 2,\n    \"id\": 2,\n    \"title\": \"qui est esse\",\n    \"body\": \"est rerum tempore vitae\\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\\nqui aperiam non debitis possimus qui neque nisi nulla\"\n  }\n]\n```\nand you need to combine user data to be\n\n```json\n[\n  {\n    \"userId\": 1,\n    \"id\": 1,\n    \"title\": \"sunt aut facere repellat provident occaecati excepturi optio reprehenderit\",\n    \"body\": \"quia et suscipit\\nsuscipit recusandae consequuntur expedita et cum\\nreprehenderit molestiae ut ut quas totam\\nnostrum rerum est autem sunt rem eveniet architecto\",\n    \"includeUser\": {\n        \"id\": 1,\n        \"name\": \"Leanne Graham\",\n        \"username\": \"Bret\",\n        \"email\": \"Sincere@april.biz\"\n    }\n  },\n  {\n    \"userId\": 2,\n    \"id\": 2,\n    \"title\": \"qui est esse\",\n    \"body\": \"est rerum tempore vitae\\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\\nqui aperiam non debitis possimus qui neque nisi nulla\",\n    \"includeUser\": {      \n      \"id\": 2,\n      \"name\": \"Ervin Howell\",\n      \"username\": \"Antonette\",\n      \"email\": \"Shanna@melissa.tv\"\n    }\n  }\n]\n```\nyou can get users list by filter id list by https://jsonplaceholder.typicode.com/users?id[]=1&id[]=2\n\n```\n?id[]=1&id[]=2\n```\nthe result is \n```json\n[\n  {\n    \"id\": 1,\n    \"name\": \"Leanne Graham\",\n    \"username\": \"Bret\",\n    \"email\": \"Sincere@april.biz\"\n  },\n  {\n    \"id\": 2,\n    \"name\": \"Ervin Howell\",\n    \"username\": \"Antonette\",\n    \"email\": \"Shanna@melissa.tv\"\n  }\n]\n```\nin general node.js the code it look like\n```js\n  const posts = (await fetch('https://jsonplaceholder.typicode.com/posts')).json();\n  const userIds = posts.map(item => item.userId);\n  const queryString = someQueryStringBuilder({id: userIds}) // result is id[]=1&id[]=2&id=.....\n  const users = (await fetch('https://jsonplaceholder.typicode.com/users/?' + queryString)).json();\n  for (let post of posts) {\n    const findUser = users.find(item => item.id === post.userId);\n    if (findUser) {\n      post.includeUser = findUser;\n    }\n  }\n```\nyou can use including for this result by node.js example\n```js\nconst { including } = require('including');\nincluding(\n  {\n    list: [\n      {\n        url: \"https://jsonplaceholder.typicode.com/posts\",\n        method: \"GET\",\n        model: \"posts\",\n        includes: [\n          {\n            url: \"https://jsonplaceholder.typicode.com/users\",\n            method: \"GET\",\n            model: \"includeUser\",\n            on: 'userId', // bring userId from posts to query users\n            foreign: 'id', // for query string id[]=1&id[]=2\n            local: 'id' // the identity property from users result\n          },\n        ],\n      },\n    ]\n  }\n).then(data => {\n  console.log(JSON.stringify(data));\n})\n```\nif your api look like ?id=1,2,3,4,5,6\n```js\nconst { including } = require('including');\nincluding(\n  {\n    list: [\n      {\n        url: \"https://jsonplaceholder.typicode.com/posts\",\n        method: \"GET\",\n        model: \"posts\",\n        includes: [\n          {\n            url: \"https://jsonplaceholder.typicode.com/users\",\n            method: \"GET\",\n            model: \"includeUser\",\n            delimiter: ',', // add \"delimiter\" for make query in delimiter format\n            on: 'userId', // bring userId from posts to query users\n            foreign: 'id', // for query string id[]=1&id[]=2\n            local: 'id' // the identity property from users result\n          },\n        ],\n      },\n    ]\n  }\n).then(data => {\n  console.log(JSON.stringify(data));\n})\n```\n\n### Life Cycle\n![Local Image](./assets/including-life-cycle.jpg)","readmeFilename":"README.md"}