{"id":21900535,"url":"https://github.com/keenlycode/edictor","last_synced_at":"2025-04-15T19:53:57.785Z","repository":{"id":156545248,"uuid":"626471785","full_name":"keenlycode/edictor","owner":"keenlycode","description":"Modular \u0026 Self-Contained Javascript object definition and validation with concise APIs","archived":false,"fork":false,"pushed_at":"2023-11-03T12:54:04.000Z","size":4906,"stargazers_count":7,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-15T19:53:53.944Z","etag":null,"topics":["json","object","schema","validation"],"latest_commit_sha":null,"homepage":"https://keenlycode.github.io/edictor/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/keenlycode.png","metadata":{"files":{"readme":"readme.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-04-11T14:33:18.000Z","updated_at":"2024-02-21T09:06:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"1dbf6073-50f8-4c5f-ba00-6d13c0aee416","html_url":"https://github.com/keenlycode/edictor","commit_stats":null,"previous_names":["keenlycode/edictor","nitipit/edictor"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keenlycode%2Fedictor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keenlycode%2Fedictor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keenlycode%2Fedictor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keenlycode%2Fedictor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keenlycode","download_url":"https://codeload.github.com/keenlycode/edictor/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249145295,"owners_count":21219966,"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":["json","object","schema","validation"],"created_at":"2024-11-28T15:08:40.566Z","updated_at":"2025-04-15T19:53:57.766Z","avatar_url":"https://github.com/keenlycode.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# { Edictor }\n\u003e \u003ch2\u003eModular \u0026 Self-Contained\n\u003e Javascript object\n\u003e definition and validation\n\u003e with concise APIs\u003c/h2\u003e\n\n---\n## Documentation\n---\nPlease read usage documentation at\nhttps://nitipit.github.io/edictor/\n\n---\n## Features\n---\n- Object definition is easy to use.\n- Provide concise APIs for validations.\n- Validation throws error.\n- **Modular** : `Model` and `Field` can be extends and reused as class and object in ES6.\n- **Self-contained** : object created from definition will validate\n  itself when object's data changed.\n- **Atomic Update** : `Model().update(data)` will update data as all or nothingaccording to validations.\n- Tiny \u0026 Compact : ~2kB minify + gzip\n  \n\n---\n## Library Development\n---\n\n### Environment\n- NodeJS\n\n### Recommended editor\n- Visual Studio Code https://code.visualstudio.com/\n\n### Setup\n```shell\n$ git clone git@github.com:nitipit/edictor.git\n$ cd edictor\n$ npm install\n```\n### Run test for development process\n```shell\n$ npm run test-watch\n```\nThe command above will run [jest](https://jestjs.io/) testing framework in watch mode.\n\nTo test individual file:\n```shell\n$ npx jest --watch src/edictor/field.test.ts\n```\n\n### Build { edictor } library\n```shell\nnpm run build\n```\n\n---\n## Documentation Development\n---\n\n### Environment\n- Python\n- NodeJS\n\n### Recommended editor\n- Visual Studio Code https://code.visualstudio.com/\n\n### Generate static html (Compatible with github page)\n- Result as this page: https://nitipit.github.io/edictor/\n- Command belows will generate static html and start\n  HTTP Server\n- Static html is generated by https://nitipit.github.io/engrave/\n\n```shell\n$ python -m venv venv\n$ source venv/bin/activate\n$ pip install -r require.pip\n$ python docs.py\nServing HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/)\n```\n\n---\n## Contribution\n---\nContributions are what make the open source community such an amazing place to learn,\ninspire, and create. Any contributions you make are greatly appreciated.\n\nIf you have a suggestion that would make this better, please fork the repo\nand create a pull request. You can also simply open an issue with the tag\n\"enhancement\". Don't forget to give the project a star! Thanks again!\n\nFork the Project\nCreate your Feature Branch (git checkout -b feature/AmazingFeature)\nCommit your Changes (git commit -m 'Add some AmazingFeature')\nPush to the Branch (git push origin feature/AmazingFeature)\nOpen a Pull Request\n\n---\n## Contact\n---\n\nNitipit Nontasuwan - nitipit@gmail.com\n\nProject repository: https://github.com/nitipit/edictor  \nProject website: https://nitipit.github.io/edictor/","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeenlycode%2Fedictor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeenlycode%2Fedictor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeenlycode%2Fedictor/lists"}