{"_id":"@allnulled/browsie-script","name":"@allnulled/browsie-script","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@allnulled/browsie-script","version":"1.0.0","description":"Scripting language oriented to database management.","main":"browsie-script.js","scripts":{"build":"npx pegjs --format globals --export-var BrowsieScript --output browsie-script.js browsie-script.pegjs && node fix.js","export":"cp browsie-script.js docs/src/external/browsie-script.js","test":"npm run build && npx mocha --bail test.js && npm run export"},"keywords":[],"author":{"name":"allnulled"},"license":"WTFPL","gitHead":"913546c8cce77e50978418ab675050e51874a094","_id":"@allnulled/browsie-script@1.0.0","_nodeVersion":"18.17.1","_npmVersion":"9.6.7","dist":{"integrity":"sha512-JhLTaLESMD8lf0TDgbp2EufQ+PZuBh4N+3hFwK4QA201jG1XxuBYssdJ8sb12jSDDH2ycY72grJVaJydvTQF3g==","shasum":"b6c796e72bbdd8e210ab3280e161db98d404177d","tarball":"https://registry.npmjs.org/@allnulled/browsie-script/-/browsie-script-1.0.0.tgz","fileCount":9,"unpackedSize":110584,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGfUFIq7aBGXSjJ2+DTw+N95J96IuRCU47kkOt/fznz0AiEA4vgLgyIAsYJi5ZgYva1aLceBn51nd4FK9pybTb7bZK8="}]},"_npmUser":{"name":"allnulled","email":"todosanulados@gmail.com"},"directories":{},"maintainers":[{"name":"allnulled","email":"todosanulados@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/browsie-script_1.0.0_1737627276014_0.6089993574563914"},"_hasShrinkwrap":false}},"time":{"created":"2025-01-23T10:14:35.859Z","1.0.0":"2025-01-23T10:14:36.217Z","modified":"2025-01-23T10:14:36.516Z"},"maintainers":[{"name":"allnulled","email":"todosanulados@gmail.com"}],"description":"Scripting language oriented to database management.","keywords":[],"author":{"name":"allnulled"},"license":"WTFPL","readme":"# browsie-script\n\nScripting language oriented to database management.\n\n## Installation\n\n```sh\nnpm i -s @allnulled/browsie-script\n```\n\n## Importation\n\nIn node.js:\n\n```js\nrequire(\"@allnulled/browsie-script\");\n```\n\nIn html:\n\n```js\n<script src=\"node_modules/@allnulled/browsie-script/browsie-script.js\"></script>\n```\n\n## Usage\n\n### To parse and get the AST\n\n```js\nconst ast = BrowsieScript.parse(`users?`);\n```\n\nOutputs:\n\n```json\n{\n  \"$type\": \"value\",\n  \"value\": {\n    \"$action\": \"select\",\n    \"table\": \"users\",\n    \"filters\": null\n  },\n  \"appends\": []\n}\n```\n\n### To parse and get the JS\n\n```js\nconst js = BrowsieScript.parse(`users?`, { toJavaScript: true });\n```\n\nThis feature may not yet be implemented.\n\n## Syntax\n\nIt is about **insert**, **update**, **delete** and **select**. Else, we can **pipe**.\n\n### To insert\n\n```\nusers+{}\nusers+{\"name\":\"admin\",\"password\":\"admin\"}\nusers+[{},{},{}]\n```\n\n### To update\n\n```\nusers={changed:true}\nusers:1={name:\"admin changed\"}\nusers:\"admin\"={name:\"admin changed\"}\nusers:id=1={name:\"admin changed\"}\nusers:name=\"admin\" and password=\"admin\"={name:\"admin changed\"}\n```\n\n### To delete\n\n```\nusers-1\nusers-\"admin\"\nusers-id=1\nusers-id=1\n```\n\n### To select\n\n```\nusers?\nusers:1?\nusers:\"admin\"?\nusers:name=\"admin\"?\nusers:name=\"admin\" or email=\"admin\"?\nusers:name=\"admin\"|email=\"admin\"?\nusers:name=\"admin\" and email=\"admin\"?\nusers:name=\"admin\"&email=\"admin\"?\n```\n\n### To pipe\n\nWe have 3 types of pipe:\n\n - **(Level 1) Modifying.** Symbol: `>`. Used to modify the value.\n - **(Level 2) Exporting.** Symbol: `>>`. Used to export the value to local, global or wherever variable.\n - **(Level 3) Returning.** Symbol: `>>>`. Used to return from the current function.\n - **(Level 4) Returning.** Symbol: `*`. Used to multiply against functions.\n\n```\nusers? > $.sort.by.props(_, \"created_at\", \"name\", \"id\")\nusers:(name=\"admin\"|email=\"admin\")&(id is not null)? > $.sort.by.props(_, \"created_at\", \"name\", \"id\")\nusers? * console.log\nmessages+{message:\"Hello, world!\"}\nmessages:1? * console.log\n```\n\n","readmeFilename":"README.md"}