{"id":13990848,"url":"https://github.com/TYPECASTINGSG/rpscript","last_synced_at":"2025-07-22T13:31:35.521Z","repository":{"id":143792982,"uuid":"138557789","full_name":"TYPECASTINGSG/rpscript","owner":"TYPECASTINGSG","description":"A scripting language for process automation","archived":false,"fork":false,"pushed_at":"2018-08-21T10:00:57.000Z","size":442,"stargazers_count":12,"open_issues_count":3,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-01T07:47:07.634Z","etag":null,"topics":["automation","robotic-process-automation","rpa","script","script-engine","scripting-language","scripts-cli"],"latest_commit_sha":null,"homepage":"http://www.rpscript.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TYPECASTINGSG.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":"2018-06-25T07:21:31.000Z","updated_at":"2022-02-06T15:20:36.000Z","dependencies_parsed_at":"2023-04-17T01:48:23.294Z","dependency_job_id":null,"html_url":"https://github.com/TYPECASTINGSG/rpscript","commit_stats":null,"previous_names":["wei3hua2/rpscript"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TYPECASTINGSG%2Frpscript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TYPECASTINGSG%2Frpscript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TYPECASTINGSG%2Frpscript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TYPECASTINGSG%2Frpscript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TYPECASTINGSG","download_url":"https://codeload.github.com/TYPECASTINGSG/rpscript/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227099030,"owners_count":17730696,"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":["automation","robotic-process-automation","rpa","script","script-engine","scripting-language","scripts-cli"],"created_at":"2024-08-09T13:03:23.889Z","updated_at":"2024-11-29T10:31:55.334Z","avatar_url":"https://github.com/TYPECASTINGSG.png","language":"TypeScript","readme":"# RPSCRIPT \u003cimg src=\"https://s3.amazonaws.com/sample.rpscript.com/images/cheerful_robot50.png\" width=\"30px\"\u003e \u003cimg src=\"https://s3.amazonaws.com/sample.rpscript.com/images/cheerful_robot50.png\" width=\"30px\"\u003e \u003cimg src=\"https://s3.amazonaws.com/sample.rpscript.com/images/cheerful_robot50.png\" width=\"30px\"\u003e\n\n[![npm version](https://badge.fury.io/js/rpscript.svg)](https://badge.fury.io/js/rpscript)\n\n\u003cimg style=\"float: right;\" src=\"https://s3.amazonaws.com/sample.rpscript.com/images/cool_robot100.png\"\u003e\nA simple scripting language to automate the boring stuff.\n\nRPScript provides a framework that simplifies automation. The syntax is designed to be intuitive and straightforward,  allowing you to write scripts without the need for in-depth programming knowledge.\n\nIn short, it allows you to replace this:\n```\nvar R = require('ramda');\n\nconsole.log( R.repeat(\"Hello world\",3) );\n```\n\nwith this:\n```\nlog repeat \"Hello world\" 3\n```\n\nThis:\n```\nvar download = require('download');\nvar csvParse = require('csv-parse/lib/sync');\nvar AdmZip = require('adm-zip');\nvar R = require('ramda');\nvar fs = require('fs');\n\ndownload('https://data.gov.sg/dataset/dba9594b-fb5c-41c5-bb7c-92860ee31aeb/download', '.').then(() =\u003e {\n    var zip = new AdmZip(\"./download.zip\");\n    \n    zip.extractAllTo(\"./temp/\");\n\n    var content = fs.readFileSync('temp/data-gov-sg-dataset-listing.csv');\n    \n    var orgs = csvParse(content , {columns:true});\n\n    var orgList = R.uniq(R.pluck('organisation',orgs));\n\n    console.log(orgList); //print out the list of organisations\n});\n\n```\nwith this:\n```\ndownload \"https://data.gov.sg/dataset/dba9594b-fb5c-41c5-bb7c-92860ee31aeb/download\"\n\nextract \"download.zip\" \"./temp/\"\n\ncsv-to-data --columns=true read-file \"temp/data-gov-sg-dataset-listing.csv\" | as \"dataset\"\n\nlog uniq pluck 'organisation' $dataset\n```\n\n\n\n## Installation \u003cimg src=\"https://s3.amazonaws.com/sample.rpscript.com/images/smart_robot50.png\" width=\"18px\"\u003e\n\nPrerequisite: NodeJS\n\n```\nnpm i -g rpscript\n```\nThis will install a global command line in your machine.\n\nModule installation.\n```\nrps install basic\n```\n\nCreate a file \"helloworld.rps\" and add this line:\n```\nlog repeat \"hello world \" 3\n```\n\nGo to the terminal, and run the command:\n```\nrps helloworld.rps\n```\n\n## Getting Started \u003cimg src=\"https://s3.amazonaws.com/sample.rpscript.com/images/handy_robot50.png\" width=\"25px\"\u003e\n\nGetting started guide is available at [Getting Started](http://www.rpscript.com/tutorial-gettingstarted.html).\n\n## Usage \u003cimg src=\"https://s3.amazonaws.com/sample.rpscript.com/images/handy_robot50.png\" width=\"25px\"\u003e\n\nUsage guide is available at [Usage](http://www.rpscript.com/tutorial-usage.html)\n\n## Usage \u003cimg src=\"https://s3.amazonaws.com/sample.rpscript.com/images/handy_robot50.png\" width=\"25px\"\u003e\n\n[Hello world](http://www.rpscript.com/tutorial-helloworld.html)\n\n[Ascii Art with Figlet](http://www.rpscript.com/tutorial-asciiart.html)\n\n[Compression](http://www.rpscript.com/tutorial-compression.html)\n\n[Table generation from CSV file](http://www.rpscript.com/tutorial-table.html)\n\n[Data Analysis from CSV file](http://www.rpscript.com/tutorial-datasetanalysis.html)\n\n## Modules \u003cimg src=\"https://s3.amazonaws.com/sample.rpscript.com/images/bossy_robot50.png\" width=\"18px\"\u003e\n\nName | Status | Description | Doc\n--- | --- | --- | ---\n[Basic](https://github.com/TYPECASTINGSG/rpscript-api-basic) | [![npm version](https://badge.fury.io/js/%40typecasting%2Frpscript-api-basic.svg)](https://badge.fury.io/js/%40typecasting%2Frpscript-api-basic) | Basic operation and data manipulation. | [Here](http://www.rpscript.com/Basic.html)\n[Beeper](https://github.com/TYPECASTINGSG/rpscript-api-beeper) | [![npm version](https://badge.fury.io/js/%40typecasting%2Frpscript-api-beeper.svg)](https://badge.fury.io/js/%40typecasting%2Frpscript-api-beeper) | Make terminal beeps. | [Here](http://www.rpscript.com/Beeper.html)\n[CSV](https://github.com/TYPECASTINGSG/rpscript-api-csv) | [![npm version](https://badge.fury.io/js/%40typecasting%2Frpscript-api-csv.svg)](https://badge.fury.io/js/%40typecasting%2Frpscript-api-csv) | CSV utility. | [Here](http://www.rpscript.com/CSV.html)\n[Date](https://github.com/TYPECASTINGSG/rpscript-api-date) | [![npm version](https://badge.fury.io/js/%40typecasting%2Frpscript-api-date.svg)](https://badge.fury.io/js/%40typecasting%2Frpscript-api-date) | Date utility. | [Here](http://www.rpscript.com/Date.html)\n[Downloading](https://github.com/TYPECASTINGSG/rpscript-api-download) | [![npm version](https://badge.fury.io/js/%40typecasting%2Frpscript-api-downloading.svg)](https://badge.fury.io/js/%40typecasting%2Frpscript-api-downloading) | File Download. | [Here](http://www.rpscript.com/Download.html)\n[Figlet](https://github.com/TYPECASTINGSG/rpscript-api-figlet) | [![npm version](https://badge.fury.io/js/%40typecasting%2Frpscript-api-figlet.svg)](https://badge.fury.io/js/%40typecasting%2Frpscript-api-figlet) | Ascii Art. | [Here](http://www.rpscript.com/Figlet.html)\n[File](https://github.com/TYPECASTINGSG/rpscript-api-file) | [![npm version](https://badge.fury.io/js/%40typecasting%2Frpscript-api-file.svg)](https://badge.fury.io/js/%40typecasting%2Frpscript-api-file) | File system. | [Here](http://www.rpscript.com/File.html)\n[Hogan](https://github.com/TYPECASTINGSG/rpscript-api-hogan) | [![npm version](https://badge.fury.io/js/%40typecasting%2Frpscript-api-hogan.svg)](https://badge.fury.io/js/%40typecasting%2Frpscript-api-hogan) | Moustache Templating. | [Here](http://www.rpscript.com/Hogan.html)\n[Notifier](https://github.com/TYPECASTINGSG/rpscript-api-notifier) | [![npm version](https://badge.fury.io/js/%40typecasting%2Frpscript-api-notifier.svg)](https://badge.fury.io/js/%40typecasting%2Frpscript-api-notifier) | Desktop Notification. | [Here](http://www.rpscript.com/Notifier.html)\n[Open](https://github.com/TYPECASTINGSG/rpscript-api-open) | [![npm version](https://badge.fury.io/js/%40typecasting%2Frpscript-api-open.svg)](https://badge.fury.io/js/%40typecasting%2Frpscript-api-open) | Open a file or url in the user's preferred application. | [Here](http://www.rpscript.com/Open.html)\n[Zip](https://github.com/TYPECASTINGSG/rpscript-api-adm-zip) | [![npm version](https://badge.fury.io/js/%40typecasting%2Frpscript-api-zip.svg)](https://badge.fury.io/js/%40typecasting%2Frpscript-api-zip) | File compression and extraction. | [Here](http://www.rpscript.com/Zip.html)\n[Request](https://github.com/TYPECASTINGSG/rpscript-api-request) | [![npm version](https://badge.fury.io/js/%40typecasting%2Frpscript-api-request.svg)](https://badge.fury.io/js/%40typecasting%2Frpscript-api-request) | Http call. | [Here](http://www.rpscript.com/Request.html)\n[Cheerio](https://github.com/TYPECASTINGSG/rpscript-api-cheerio) | [![npm version](https://badge.fury.io/js/%40typecasting%2Frpscript-api-cheerio.svg)](https://badge.fury.io/js/%40typecasting%2Frpscript-api-cheerio) | jQuery style traversal and manipulation. | [Here](http://www.rpscript.com/Cheerio.html)\n_ | _| More coming soon | _\n\n## FAQ \u003cimg src=\"https://s3.amazonaws.com/sample.rpscript.com/images/smart_robot50.png\" width=\"18px\"\u003e\n\n**What is RPScript?**\n\nRPScript is a scripting language for process automation.\n\n**Why do I need RPScript if I can use Python, Javascript for automation?**\n\nUnlike general purpose languages such as Python and Javascript, RPScript has only one specific goal, process automation.\n\nGeneral purpose languages are powerful and flexible. However, it tends to compensate by having complicated syntax and language features. In the end, you have to deal with boilerplates and unnecessary steps, making it hard to perform even a simple task.\n\nRPScript goal is to make the syntax compact. Ideally, every action models as close to a single process as possible.\n\n**Is it stable?**\n\nIt is currently in Alpha; I will appreciate if you can give it a try and provide your valuable feedback.\n\n**Is rpscript a node.js library?**\n\nRPScript is a transpiler that transpiles to javascript. It runs on top of Node.JS. \n\nMost, if not, all the modules are wrappers that utilize what that the npm ecosystem already provided.\n\n## Creator \u003cimg src=\"https://s3.amazonaws.com/sample.rpscript.com/images/kind_robot50.png\" width=\"20px\"\u003e\n\n**James Chong (@wei3hua2)**\n[Github](https://github.com/wei3hua2)\n[Twitter](https://twitter.com/wei3hua2)\n[Email](mailto:james.chong@typecasting.sg)\n\n## Changelog \u003cimg src=\"https://s3.amazonaws.com/sample.rpscript.com/images/cheerful_robot50.png\" width=\"23px\"\u003e\n\n0.3.1 - Fixes: #1 #2\n\n0.3.0 - Initial alpha release\n\n## Copyright and Licence\n\nCode released under Apache 2.0\n\nImage created by Freepik","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTYPECASTINGSG%2Frpscript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTYPECASTINGSG%2Frpscript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTYPECASTINGSG%2Frpscript/lists"}