@aegis-framework/artemis

Aegis Framework Javascript Library

Usage no npm install needed!

<script type="module">
  import aegisFrameworkArtemis from 'https://cdn.skypack.dev/@aegis-framework/artemis';
</script>

README

Artemis

Artemis is a JavaScript Library that aims to provide common utilities needed during development such as DOM manipulation, a wrapper for client based Storage and other functions that may be useful for web app development.

Using it

Artemis is provided as a CommonJS, ES6 and global library.

Browser

<script src='./artemis.min.js'></script>
const { $_, Text } = Artemis;

ES6 Modules

import { $_, Text } from '@aegis-framework/artemis';

Node JS

const { $_, Text } = require ('@aegis-framework/artemis');

Below are some simple examples but you can read the full documentation of each class for more details.

Classes

DOM

Artemis core library focuses on DOM manipulation, providing a jQuery-like experience and API

$_ready (()=> {
    $_('body').append ('<h1>Some Title</h1>');
    $_('h1').text ('A different title');
    $_('h1').style ('color', '#424242');
});

Form

Artemis also includes a small form utility class that helps with filling and retrieving values from a form.

<form data-form="MyForm">
    <input type="text" name="SomeInput">
    <input type="text" name="OtherInput">
</form>
Form.fill ('MyForm', {
    'SomeInput': 'Here is some Value',
    'OtherInput': 'And here’s another one'
});

console.log (Form.values ('MyForm'));

Space

The Space Library is a wrapper for simple storage solutions as Local and Session storage but provides data independence through storage namespaces and versioning.

let space = new Space (SpaceAdapter.LocalStorage, {
    name: 'Storage',
    version: '0.1.0'
});

space.set ('Test', {
    value: 'Some Value'
}).then (({key, value}) => {
    console.log ('The value was inserted correctly!');
});

space.get ('Test').then ((value) => {
    return value;
}).then (({key, value}) => {
    console.log (value);
});

space = new Space (SpaceAdapter.LocalStorage, {
    name: 'Storage',
    version: '0.1.1'
});

space.upgrade ('0.1.0', '0.1.1', (storage) => {
    return storage.set ('Test', {
        value: 'Other Value'
    });
});

Request

The request library provides a simple way to send HTTP requests using the fetch API.

Request.get ('https://example.com/api/', {
    'someQueryParam': 'Some Query Value!'
}).then ((response) => {
    return response.text ();
}).then ((text) => {
    console.log (text);
});

Request.post ('https://example.com/api/', {
    'someKey': 'Some Value!'
}).then ((response) => {
    return response.text ();
}).then ((text) => {
    console.log (text);
});

Platform

The platform library provides several utility methods to obtain information about the platform in which the code is running.

if (Platform.mobile ('Android')) {
    console.log ('You are running this on Android!');
} else if (Platform.mobile ()) {
    console.log ('You are running this on some kind of mobile device!');
} else if (Platform.desktop ('macOS')) {
    console.log ('You are running this on a Mac!');
}

if (Platform.electron ()) {
    console.log ('You are running this on a Electron!');
} else if (Platform.cordova ()) {
    console.log ('You are running this on a Cordova!');
}

Text

The text library provides simple utility methods to perform text transformations or other text related functions.

console.log (Text.capitalize ('is this text capitalized?'));
// Logs: Is This Text Capitalized?

console.log (Text.suffix ('Hello', 'Hello how are you?'));
// Logs: how are you?

console.log (Text.prefix ('how are you?', 'Hello how are you?'));
// Logs: Hello

Util

The util library provides diverse methods that could be useful for some applications

console.log (Util.uuid ());
// Logs: Some UUID such as 116a7d96-8c6c-46ee-a9e1-3c7183e691b5

function test () {
    console.log ('A simple Function');
}

Util.callAsync (test).then (() => {
    console.log ('Test was executed and a promise was inserted so test behaves like a function using promises');
});