{"id":18383156,"url":"https://github.com/fugerit-org/fj-script-helper","last_synced_at":"2025-04-11T21:36:28.022Z","repository":{"id":259291160,"uuid":"877221653","full_name":"fugerit-org/fj-script-helper","owner":"fugerit-org","description":"Fugerit Script Helper","archived":false,"fork":false,"pushed_at":"2024-10-24T20:44:38.000Z","size":38,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-15T23:43:23.474Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","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/fugerit-org.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2024-10-23T09:47:08.000Z","updated_at":"2024-10-24T20:43:44.000Z","dependencies_parsed_at":"2024-10-24T05:32:10.866Z","dependency_job_id":"affc3d83-6687-4076-9425-03836c2f38df","html_url":"https://github.com/fugerit-org/fj-script-helper","commit_stats":null,"previous_names":["fugerit-org/fj-script-helper"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fugerit-org%2Ffj-script-helper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fugerit-org%2Ffj-script-helper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fugerit-org%2Ffj-script-helper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fugerit-org%2Ffj-script-helper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fugerit-org","download_url":"https://codeload.github.com/fugerit-org/fj-script-helper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248484480,"owners_count":21111654,"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":[],"created_at":"2024-11-06T01:10:20.217Z","updated_at":"2025-04-11T21:36:27.987Z","avatar_url":"https://github.com/fugerit-org.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fugerit Language Script Helper\n\nThis project provides just a convenient interface for evaluating scripts with java script engine.\n\n[![Keep a Changelog v1.1.0 badge](https://img.shields.io/badge/changelog-Keep%20a%20Changelog%20v1.1.0-%23E05735)](CHANGELOG.md)\n[![Maven Central](https://img.shields.io/maven-central/v/org.fugerit.java/fj-script-helper.svg)](https://central.sonatype.com/artifact/org.fugerit.java/fj-script-helper)\n[![javadoc](https://javadoc.io/badge2/org.fugerit.java/fj-script-helper/javadoc.svg)](https://javadoc.io/doc/org.fugerit.java/fj-script-helper)\n[![license](https://img.shields.io/badge/License-MIT%20License-teal.svg)](https://opensource.org/license/mit)\n[![code of conduct](https://img.shields.io/badge/conduct-Contributor%20Covenant-purple.svg)](https://github.com/fugerit-org/fj-universe/blob/main/CODE_OF_CONDUCT.md)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=fugerit-org_fj-script-helper\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=fugerit-org_fj-script-helper)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=fugerit-org_fj-script-helper\u0026metric=coverage)](https://sonarcloud.io/summary/new_code?id=fugerit-org_fj-script-helper)\n\n[![Java runtime version](https://img.shields.io/badge/run%20on-java%208+-%23113366.svg?style=for-the-badge\u0026logo=openjdk\u0026logoColor=white)](https://universe.fugerit.org/src/docs/versions/java11.html)\n[![Java build version](https://img.shields.io/badge/build%20on-java%2017+-%23ED8B00.svg?style=for-the-badge\u0026logo=openjdk\u0026logoColor=white)](https://universe.fugerit.org/src/docs/versions/java17.html)\n[![Apache Maven](https://img.shields.io/badge/Apache%20Maven-3.9.0+-C71A36?style=for-the-badge\u0026logo=Apache%20Maven\u0026logoColor=white)](https://universe.fugerit.org/src/docs/versions/maven3_9.html)\n[![Fugerit Github Project Conventions](https://img.shields.io/badge/Fugerit%20Org-Project%20Conventions-1A36C7?style=for-the-badge\u0026logo=Onlinect%20Playground\u0026logoColor=white)](https://universe.fugerit.org/src/docs/conventions/index.html)\n\n## Quickstart\n\n### 1. Add dependency\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.fugerit.java\u003c/groupId\u003e\n    \u003cartifactId\u003efj-script-helper\u003c/artifactId\u003e\n    \u003cversion\u003e${fj-script-helper-version}\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### 2. Usage\n\nSample code : \n\n```java\n// this will create a EvalScript instance for : \n// kotlin script engine (kts)\n// data model will be bound as \"data\" (if not provided this is the default binding name)\nEvalScript evalKts = new EvalScriptWithDataModel( \"kts\", \"data\" );\ntry (Reader reader = [reader on kotlin script]) {\n    Map\u003cString, Object\u003e dataModel = new HashMap\u003c\u003e();\n    dataModel.put( \"docTitle\", \"My custom title\" );\n    Object result = evalKts.evalKts( reader, dataModel );\n    log.info( \"my result : {}\", result );\n}\n```\n\nIt is possible to wrap the EvalScript with some decorators, for instance : \n\n```java\nEvalScript evalKts = EvalScriptWithJsonDataModel( new EvalScriptWithDataModel( \"kts\", \"data\" ) );\n```\n\nWill wrap the EvalScript with EvalScriptWithJsonDataModel decorator.\nEvalScriptWithJsonDataModel will transform a Map data model to a json data model style. Only getter and setter will be considered and made into basic types : \n\n* String\n* Number\n* Boolean\n* Object as Map\n* Array\n\nFor instance this code :\n\n```java\nclass Vehicle {\n    private String plate;\n    private int age;\n    public Vehicle(int age, String plate) {\n        this.age = age;\n        this.plate = plate;\n    }\n    public String getPlate() { return plate; }\n    public int getAge() { return age; }\n    @Override\n    public String toString() {\n        return \"Vehicle{age=\"+age+\", plate='\"+plate+\"'}\";\n    }\n}\nMap\u003cString, Object\u003e dataModel = new HashMap\u003c\u003e();\ndataModel.put( \"vehicle\", new Vehicle( 10, \"AA780BB\" ) );\nMap\u003cString, Object\u003e jsonStyleDataModel = EvalScriptWithJsonDataModel.defaultDataModelConversion( dataModel );\nlog.info( \"originalDataModel : {}\", dataModel );\nlog.info( \"jsonStyleDataModel : {}\", jsonStyleDataModel );\n```\n\nwould result in this conversion : \n\n```text\noriginalDataModel : {vehicle=Vehicle{age=10, plate='AA780BB'}}\njsonStyleDataModel : {vehicle={plate=AA780BB, age=10}}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffugerit-org%2Ffj-script-helper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffugerit-org%2Ffj-script-helper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffugerit-org%2Ffj-script-helper/lists"}