first pass at meta data
This commit is contained in:
parent
5b7341ce65
commit
8f30754bcc
|
@ -0,0 +1,32 @@
|
||||||
|
# temp scrach pads
|
||||||
|
examples/*
|
||||||
|
scratch.js
|
||||||
|
|
||||||
|
# manged dependencies
|
||||||
|
node_modules
|
||||||
|
|
||||||
|
# output
|
||||||
|
dist
|
||||||
|
*.tgz
|
||||||
|
|
||||||
|
# code coverage
|
||||||
|
coverage
|
||||||
|
*.lcov
|
||||||
|
|
||||||
|
# logs
|
||||||
|
logs
|
||||||
|
|
||||||
|
# dotenv environment variable files
|
||||||
|
.env
|
||||||
|
|
||||||
|
# caches
|
||||||
|
.eslintcache
|
||||||
|
.cache
|
||||||
|
*.tsbuildinfo
|
||||||
|
|
||||||
|
# IDEs
|
||||||
|
.idea
|
||||||
|
.vscode
|
||||||
|
|
||||||
|
# Finder (MacOS) folder config
|
||||||
|
.DS_Store
|
|
@ -0,0 +1,70 @@
|
||||||
|
# Contributing
|
||||||
|
|
||||||
|
So you want to contribute, nice. **Thank you**.
|
||||||
|
|
||||||
|
Bug reports and code and documentation patches are all welcome. You can help this project also by using the development version and by reporting any bugs you might encounter.
|
||||||
|
|
||||||
|
You may contribute in several ways like:
|
||||||
|
|
||||||
|
* Creating new features
|
||||||
|
* Fixing bugs
|
||||||
|
* Improving documentation and examples
|
||||||
|
* Translating any document here to your language
|
||||||
|
|
||||||
|
## Table of contents
|
||||||
|
|
||||||
|
* [Contributing](#contributing)
|
||||||
|
* [Developing](#developing)
|
||||||
|
* [Running tests](#running-tests)
|
||||||
|
* [Reporting a bug](#reporting-a-bug)
|
||||||
|
* [Request a feature](#request-a-feature)
|
||||||
|
* [Commit message](#commit-message)
|
||||||
|
* [Code style](#code-style)
|
||||||
|
|
||||||
|
## Developing
|
||||||
|
|
||||||
|
There is only one main source file in the project. It is the [/src/index.js](/src/Mite.js).
|
||||||
|
The [test/mite.spec.js](test/mite.test.js) is for now the only unit test file in the project.
|
||||||
|
|
||||||
|
The `dist` includes the minified version of the source code.
|
||||||
|
|
||||||
|
## Running tests
|
||||||
|
|
||||||
|
Run unit tests using this command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bun test
|
||||||
|
```
|
||||||
|
|
||||||
|
## Reporting a bug
|
||||||
|
|
||||||
|
Use the [GitHub issue tracker](https://github.com/n2geoff/mite/issues) to report any bug you find.
|
||||||
|
Bugs description should include:
|
||||||
|
|
||||||
|
* How to reproduce the bug;
|
||||||
|
* Easy to understand title;
|
||||||
|
|
||||||
|
Would be nice to have some code showing how to reproduce the code, you may use [gist](https://gist.github.com) or [Codepen](https://codepen.io) for uploading your example code.
|
||||||
|
|
||||||
|
## Request a feature
|
||||||
|
|
||||||
|
Use the [GitHub issue tracker](https://github.com/n2geoff/mite/issues) to request a new feature.
|
||||||
|
|
||||||
|
Keep in mind, this is a pure javascript library
|
||||||
|
|
||||||
|
## Commit message
|
||||||
|
|
||||||
|
Commit messages should includes GitHub number reference and a imperative easy to understand sentence.
|
||||||
|
|
||||||
|
## Coding style
|
||||||
|
|
||||||
|
If it is supported in all major browers without transpiling, then please use those JavaScript language features in your code, with one caveat -- readablity is king.
|
||||||
|
|
||||||
|
Currently the JavaScript Target is ES2017.
|
||||||
|
|
||||||
|
This project is linted agaist [ESLint](https://eslint.org/) and the [`.eslintrc.js`](.eslintrc.js) is dead-simple, and all you need to followed.
|
||||||
|
|
||||||
|
Thank you for reading this.
|
||||||
|
|
||||||
|
|
||||||
|
Hey, **star** this *repo* and/or share it with your friends.
|
|
@ -0,0 +1,19 @@
|
||||||
|
Copyright (c) 2025 Geoff Doty
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||||
|
of the Software, and to permit persons to whom the Software is furnished to do
|
||||||
|
so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
|
@ -0,0 +1,78 @@
|
||||||
|
# Mite
|
||||||
|
> The tiniest framework that *mite* work
|
||||||
|
|
||||||
|
```
|
||||||
|
/___\ ___ _
|
||||||
|
)O.o( |\/| o | |_ BE small
|
||||||
|
\_^_/ | | | | |_ be STRONG
|
||||||
|
" "
|
||||||
|
```
|
||||||
|
|
||||||
|
Brainspace is limited, time is limited, ideas are abundant, so enter stage left: **Mite**
|
||||||
|
|
||||||
|
**Mite** is a tiny `import` ui library that was born out of a necessity to rift out prototypes fast, and complement existing HTML/CSS/JS knowledge. The boiler-plate of most conventional frameworks takes longer than actually getting the core MVP of the idea out there.
|
||||||
|
|
||||||
|
**Mite** provides an extendable one-and-done solutions from decorating components to building out single-page-applications -- pure-frontend, and core-web for the win!
|
||||||
|
|
||||||
|
With **Mite** it is just one file and go...
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
### Key Features
|
||||||
|
- **Reactive Data Binding**: Bind data to the DOM using `{{ }}` syntax, and Mite will automatically update the DOM when the data changes.
|
||||||
|
- **Directives**:
|
||||||
|
- `m-if`: Conditionally show or hide elements based on a truthy/falsy expression.
|
||||||
|
- `m-each`: Iterate over arrays to render lists dynamically.
|
||||||
|
- `:`-prefixed attributes (e.g., `:value`): Bind data to element attributes.
|
||||||
|
- **Event Handling**: Bind events to methods using `@event` syntax (e.g., `@click`).
|
||||||
|
- **Lightweight**: Mite is a single class with no external dependencies, making it easy to integrate into any project.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```html
|
||||||
|
|
||||||
|
<div id="counter">
|
||||||
|
<button @click="{increment}">{count}</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="module">
|
||||||
|
|
||||||
|
import Mite from './src/Mite.js';
|
||||||
|
|
||||||
|
new Mite('#counter', {
|
||||||
|
data: {count: 0},
|
||||||
|
increment(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
this.data.count++;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
```
|
||||||
|
|
||||||
|
Any tag property that starts with a `@` is an event, so you can do `@click=""`;
|
||||||
|
|
||||||
|
|
||||||
|
## Test
|
||||||
|
|
||||||
|
**WIP**
|
||||||
|
|
||||||
|
`bun test`
|
||||||
|
|
||||||
|
> Currently [Bun]() is used as the development runtime
|
||||||
|
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
Please open [an issue](https://github.com/n2geoff/mite/issues/new) for support.
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Anyone is welcome to contribute, however, if you decide to get involved, please take a moment to review the [guidelines](CONTRIBUTING.md), they're minimalistic;)
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
[MIT](LICENSE)
|
||||||
|
|
||||||
|
---
|
||||||
|
*Last updated: March 29, 2025*
|
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
// Environment setup & latest features
|
||||||
|
"lib": ["ESNext"],
|
||||||
|
"target": "ESNext",
|
||||||
|
"module": "ESNext",
|
||||||
|
"moduleDetection": "force",
|
||||||
|
"jsx": "react-jsx",
|
||||||
|
"allowJs": true,
|
||||||
|
|
||||||
|
// Bundler mode
|
||||||
|
"moduleResolution": "bundler",
|
||||||
|
"allowImportingTsExtensions": true,
|
||||||
|
"verbatimModuleSyntax": true,
|
||||||
|
"noEmit": true,
|
||||||
|
|
||||||
|
// Best practices
|
||||||
|
"strict": true,
|
||||||
|
"skipLibCheck": true,
|
||||||
|
"noFallthroughCasesInSwitch": true,
|
||||||
|
"noUncheckedIndexedAccess": true,
|
||||||
|
|
||||||
|
// Some stricter flags (disabled by default)
|
||||||
|
"noUnusedLocals": false,
|
||||||
|
"noUnusedParameters": false,
|
||||||
|
"noPropertyAccessFromIndexSignature": false
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"name": "mite",
|
||||||
|
"description": "",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"module": "src/Mite.js",
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"build": "bun build ./src/Mite.js --outdir ./dist --target browser"
|
||||||
|
},
|
||||||
|
"devDependencies": {},
|
||||||
|
"peerDependencies": {}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
import { expect, test } from "bun:test";
|
||||||
|
import { Mite } from "../src/Mite.js";
|
||||||
|
|
||||||
|
test("Mite Exists", () => {
|
||||||
|
expect(typeof Mite).toBe("function");
|
||||||
|
});
|
Loading…
Reference in New Issue