{"id":21665339,"url":"https://github.com/dlueth/qoopido.nucleus","last_synced_at":"2025-07-06T11:33:44.702Z","repository":{"id":1775730,"uuid":"44702220","full_name":"dlueth/qoopido.nucleus","owner":"dlueth","description":"Lightweight, atomic and modular JavaScript utility library that strongly encourages the creation and usage of small yet flexible, reusable and easily maintainable modules.","archived":false,"fork":false,"pushed_at":"2023-03-04T02:33:27.000Z","size":6068,"stargazers_count":4,"open_issues_count":3,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-12T03:50:34.505Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/dlueth.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}},"created_at":"2015-10-21T20:25:41.000Z","updated_at":"2023-12-20T19:00:36.000Z","dependencies_parsed_at":"2023-07-05T19:33:56.197Z","dependency_job_id":null,"html_url":"https://github.com/dlueth/qoopido.nucleus","commit_stats":{"total_commits":190,"total_committers":5,"mean_commits":38.0,"dds":0.5526315789473684,"last_synced_commit":"28ddaf63d7dddc7353a33731ba3d256ddb00438d"},"previous_names":[],"tags_count":54,"template":false,"template_full_name":null,"purl":"pkg:github/dlueth/qoopido.nucleus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlueth%2Fqoopido.nucleus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlueth%2Fqoopido.nucleus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlueth%2Fqoopido.nucleus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlueth%2Fqoopido.nucleus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dlueth","download_url":"https://codeload.github.com/dlueth/qoopido.nucleus/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlueth%2Fqoopido.nucleus/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263893707,"owners_count":23526345,"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-25T10:50:00.635Z","updated_at":"2025-07-06T11:33:44.651Z","avatar_url":"https://github.com/dlueth.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License](https://img.shields.io/npm/l/qoopido.nucleus.svg?style=flat-square)](https://github.com/dlueth/qoopido.nucleus)\n[![Code Climate](https://img.shields.io/codeclimate/github/dlueth/qoopido.nucleus.svg?style=flat-square)](https://codeclimate.com/github/dlueth/qoopido.nucleus)\n[![NPM downloads](https://img.shields.io/npm/dt/qoopido.nucleus.svg?style=flat-square\u0026label=npm%20downloads)](https://www.npmjs.org/package/qoopido.nucleus)\n[![jsDelivr Hits](https://data.jsdelivr.com/v1/package/npm/qoopido.nucleus/badge)](https://www.jsdelivr.com/package/npm/qoopido.nucleus)\n\n# Qoopido.nucleus\nNucleus is a lightweight, atomic and modular JavaScript utility library that strongly encourages the creation and usage of small yet flexible, reusable and easily maintainable modules.\n\nBeside containing basic components that make out for the term *library* Nucleus also is a concept that offers developers means to use its very flexible extension/inheritance pattern throughout their own modules.\n\nNucleus utilizes [Qoopido.demand](https://github.com/dlueth/qoopido.demand) as its (caching) loader which removes the explicit need for having to bundle things up for production.\n\nThe upcoming availability of HTTP/2 will also be greatly beneficial for Nucleus and its tendency towards **many** small and atomic modules.\n\nDue to its architecture Nucleus enables web sites to leave the monolithic \"include all your modules once\" path and instead cleverly load them one by one, on demand and only when **really** needed.\n\nTo see Nucleus in action feel free to visit its [official site](http://nucleus.qoopido.com). The site's source code (beside some necessary minor changes) is also part of this repo and can be found in the ```site``` directory.\n\n\n## Compatibility\nQoopido.nucleus is officially developed for Chrome, Firefox, Safari, Opera and IE9+.\n\nI do test on OSX Yosemite and nucleus is fully working on Chrome, Firefox, Safari and Opera there. To test IE9, 10, 11 as well as Edge the official Microsoft VMs in combination with VirtualBox are being used.\n\n\n## External dependencies\nTo load Nucleus [Qoopido.demand](https://github.com/dlueth/qoopido.demand) is required.\n\n\n## Availability\nQoopido.nucleus is available on GitHub as well as jsdelivr, npm and bower at the moment. CDNJS will follow in the near future.\n\n\n## Loading Nucleus\nTo be able to use Nucleus you will need to load [Qoopido.demand](https://github.com/dlueth/qoopido.demand) which comes with extensive documentation within its own repo.\n\n\n## Usage\nAfterwards you simply have to define a ```path``` for ```/nucleus``` pointing towards the location from which you want to load Nucleus. This configuration will most likely be part of the ```main``` module of Qoopido.demand which might look like the following snippet:\n\n```javascript\n(function(global) {\n\t'use strict';\n\n\tfunction definition(demand, provide) {\n\t\tdemand\n\t\t\t.configure({\n\t\t\t\tpattern: {\n\t\t\t\t\t'/nucleus': '//cdn.jsdelivr.net/npm/qoopido.nucleus@3.0.5/dist/base.js'\n\t\t\t\t},\n\t\t\t\tmodules: {\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t// any Nucleus module can now be loaded via demand, e.g.\n\t\tdemand('/nucleus/dom/element', '/nucleus/function/debounce')\n\t\t\t.then(\n\t\t\t\tfunction(DomElement, functionDebounce) {\n\t\t\t\t\tnew DomElement(global)\n\t\t\t\t\t\t.on('resize orientationchange', function onResize() { ... })\n\t\t\t\t\t\t.on('scroll', functionDebounce(function onScroll() { ... }));\n\t\t\t\t}\n\t\t\t);\n\t\t\t\n\t\treturn true;\n\t}\n\t\n\tprovide([ 'demand', 'provide' ], definition);\n}(this));\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdlueth%2Fqoopido.nucleus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdlueth%2Fqoopido.nucleus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdlueth%2Fqoopido.nucleus/lists"}