{"_id":"o-js-framework","_rev":"1-b4c7f96332c258957c4f961b97d79685","name":"o-js-framework","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"o-js-framework","version":"1.0.0","keywords":["javascript","framework","web-development","frontend","lightweight","modular"],"author":{"name":"Oguti David Brian","email":"osp123ug@gmail.com"},"license":"MIT","_id":"o-js-framework@1.0.0","maintainers":[{"name":"ospproug","email":"osp123ug@gmail.com"}],"homepage":"https://github.com/osppro/o-js-framework#readme","bugs":{"url":"https://github.com/osppro/o-js-framework/issues"},"dist":{"shasum":"b96bd7a382063c693b6b6286530c168e877d4695","tarball":"https://registry.npmjs.org/o-js-framework/-/o-js-framework-1.0.0.tgz","fileCount":6,"integrity":"sha512-klqtgDbpfGYnCVf6NqIbxX8gWYwEi6nYpadI3FBVDtFBhtlLjRPJBhmlNMg6BPLj92xdvQZOowteNgG8y9+4sQ==","signatures":[{"sig":"MEQCIEdx6mEjZvHffz9fxBRNOR/GhC9fxvy0Ch1+ljKb1+gcAiBg7UcQkQXHPUwr4Ln5oWEWg5QHwdBx1jpqyG1oKR4MHA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13594},"main":"src/o.js","gitHead":"0cd5ed9ee0d6578cd1aee20343733036ace83138","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ospproug","email":"osp123ug@gmail.com"},"repository":{"url":"git+https://github.com/osppro/o-js-framework.git","type":"git"},"_npmVersion":"10.7.0","description":"o.js - A lightweight and modular JavaScript framework for building dynamic web applications. Designed with a focus on simplicity, flexibility, and performance.","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/o-js-framework_1.0.0_1720689056578_0.3596384647413835","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"o-js-framework","version":"1.0.1","description":"o.js - A lightweight and modular JavaScript framework for building dynamic web applications. Designed with a focus on simplicity, flexibility, and performance.","main":"src/o.js","logo":"logo/o-js-logo.png","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["javascript","framework","web-development","frontend","lightweight","modular"],"author":{"name":"Oguti David Brian","email":"osp123ug@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/osppro/o-js-framework.git"},"bugs":{"url":"https://github.com/osppro/o-js-framework/issues"},"homepage":"https://github.com/osppro/o-js-framework#readme","_id":"o-js-framework@1.0.1","gitHead":"1be08447ff6bdcea9cb06c880f156b25c4ef3e3e","_nodeVersion":"20.11.0","_npmVersion":"10.7.0","dist":{"integrity":"sha512-LZ7EHnDauxq+tO4+5Tq9AuUgVDW/vD7jFdGFXWzgi4doYXerqjIzEnhkDAlsVVamhWJNLp53OAg6XNGV2t4wBg==","shasum":"63b7dba6de8008bfc02711c2fc0921e2552a0c0d","tarball":"https://registry.npmjs.org/o-js-framework/-/o-js-framework-1.0.1.tgz","fileCount":7,"unpackedSize":30590,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSt6C2mZ/ZM+sZm0QHttPLLErUmwgcyBqHUxKif9WUpQIhAMDqvpP25HdEP4pMKjEPCcg7R9p+vS7//N1Opwv8gIlJ"}]},"_npmUser":{"name":"ospproug","email":"osp123ug@gmail.com"},"directories":{},"maintainers":[{"name":"ospproug","email":"osp123ug@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/o-js-framework_1.0.1_1720855824684_0.23438991323404212"},"_hasShrinkwrap":false}},"time":{"created":"2024-07-11T09:10:56.577Z","modified":"2024-07-13T07:30:25.031Z","1.0.0":"2024-07-11T09:10:56.757Z","1.0.1":"2024-07-13T07:30:24.858Z"},"bugs":{"url":"https://github.com/osppro/o-js-framework/issues"},"author":{"name":"Oguti David Brian","email":"osp123ug@gmail.com"},"license":"MIT","homepage":"https://github.com/osppro/o-js-framework#readme","keywords":["javascript","framework","web-development","frontend","lightweight","modular"],"repository":{"type":"git","url":"git+https://github.com/osppro/o-js-framework.git"},"description":"o.js - A lightweight and modular JavaScript framework for building dynamic web applications. Designed with a focus on simplicity, flexibility, and performance.","maintainers":[{"name":"ospproug","email":"osp123ug@gmail.com"}],"readme":"![O.js Logo](logo/o-js-logo.png)\r\n# o-js-Framework\r\no.js - A lightweight and modular JavaScript framework for building dynamic web applications. Designed with a focus on simplicity, flexibility, and performance.\r\n\r\n# o.js - A Lightweight JavaScript Framework\r\n\r\no.js is a minimalist JavaScript framework that empowers developers to build dynamic and responsive web applications with ease. Designed with a focus on simplicity, flexibility, and performance, o.js provides a straightforward approach to component-based development, routing, and data management.\r\n\r\n## Features\r\n\r\n- **Component-based Architecture**: Easily create and manage reusable UI components with a clear separation of concerns.\r\n- **Efficient Routing**:  Implement client-side routing with a simple and intuitive API, as well as support for server-side rendering (SSR).\r\n- **Data Management**: Manage application-wide data with a centralized data store, and integrate with various backend APIs.\r\n- **Lightweight and Modular**: The core framework is lightweight, allowing you to build applications without unnecessary overhead.\r\n- **Extensible**: Customize and extend the framework to fit your specific needs, including the ability to add custom directives.\r\n\r\n## Getting Started\r\n\r\n### Installation\r\n\r\nInclude the `o.js` file in your HTML:\r\n\r\n### Usage\r\n\r\n```html\r\n<script src=\"https://cdn.jsdelivr.net/npm/o-js-framework\"></script>\r\nCreate your first component:\r\n// Create your first component\r\nclass HomePage extends OComponent {\r\n  render() {\r\n    this.element.innerHTML = `\r\n      <h1>Welcome to the Home Page</h1>\r\n      <p>This is the content of the home page.</p>\r\n    `;\r\n  }\r\n}\r\n\r\nDefine your routes and mount the application:\r\nconst o = new O();\r\n\r\no.component('home-page', HomePage);\r\no.route('/', 'home-page');\r\n\r\no.mount();\r\n```\r\n### Server-Side Rendering (SSR)\r\no.js supports server-side rendering (SSR) for improved initial load times and SEO. You can use the O.renderToString() method to render your components on the server:\r\n```\r\nconst html = O.renderToString('home-page', { /* props */ });\r\n// Use the rendered HTML on the server-side\r\n```\r\n\r\n### API Integration\r\no.js provides a convenient O.fetch() method that wraps the native fetch() API, allowing you to integrate with various backend APIs (PHP, Python, Go, etc.):\r\n```const data = await O.fetch('/api/data');\r\n// Use the fetched data in your components\r\n```\r\n\r\n### Documentation\r\nFor detailed documentation, examples, and more information, please visit the o.js Documentation.\r\n\r\n### Contributing\r\nWe welcome contributions to the o.js framework! If you have any ideas, bug reports, or pull requests, please feel free to submit them on the GitHub repository.\r\n\r\n### License\r\no.js is released under the  <b>MIT License</b>.\r\n","readmeFilename":"README.md"}