Skip to content

Instantly share code, notes, and snippets.

View erdesigns-eu's full-sized avatar
$ root@erdesigns-eu

ERDesigns - Ernst Reidinga erdesigns-eu

$ root@erdesigns-eu
View GitHub Profile
@erdesigns-eu
erdesigns-eu / formatSQL.js
Last active August 26, 2022 07:41
Format Value for SQL Query
/**
* Format value for insert or update in SQLite database
* @param {Any} val
* @returns Boolean/Number/String/Null
*/
const formatSQLValue = (val) => {
const escapeString = (str) => {
return str.replace(/[\0\x08\x09\x1a\n\r"'\\\%]/g, (char) => {
switch (char) {
@erdesigns-eu
erdesigns-eu / m3uReader.js
Last active August 5, 2022 20:37
M3U Reader Class
/**
* Constantes used for parsing.
*/
const HEADER = 'HEADER';
const DIRECTIVE = 'DIRECTIVE';
const ATTRIBUTE = 'ATTRIBUTE';
const EXTGRP = 'EXTGRP';
const EXTPLS = 'PLAYLIST';
const FILENAME = 'FILENAME';
const GROUPTITLE = 'group-title';
@erdesigns-eu
erdesigns-eu / m3uWriter.js
Last active August 5, 2022 21:25
M3U Writer Class
/**
* Constantes used for constructing.
*/
const EXTGRP = 'EXTGRP';
const EXTPLS = 'PLAYLIST';
const GROUPTITLE = 'group-title';
/**
* M3U Writer Class
*/
@erdesigns-eu
erdesigns-eu / memory-cache.js
Created August 23, 2022 18:43
Simple Memory Cache
/**
* Simple in-memory cache
*/
module.exports = class MemCache {
// Cache object
#cache = Object.create(null);
// Cache size
#size = 0;
@erdesigns-eu
erdesigns-eu / file-cache.js
Last active August 26, 2022 07:46
Simple File Cache
// Import os module
const os = require('os');
// Import fs module
const fs = require('fs');
// Import path module
const path = require('node:path');
/**
* Simple file cache
*/
@erdesigns-eu
erdesigns-eu / FileDS.js
Last active August 26, 2022 06:58
Simple JSON File Based DataStore with versioning
// Import fs module
const fs = require('fs');
// Import path module
const path = require('node:path');
// Property value - used for key removal in version
const removalKey = '__DELETED_FROM_FILE__';
/**
* Construct filename with directory
*
@erdesigns-eu
erdesigns-eu / JSONDatabase.js
Last active September 4, 2022 10:52
Javascript JSON Database
/**
* Title : JSON Database written in Javascript.
* Version : 1.0.0.0
* Author : Ernst Reidinga
* Copyleft : 2022 (c) ERDesigns - Ernst Reidinga
* License : GPL
*/
// Import fs module
const fs = require('fs');
@erdesigns-eu
erdesigns-eu / newsapi.js
Last active October 26, 2022 12:45
NewsAPI Class for use in Browsers
/**
* News API Class for use in the browser. You can use this on localhost
* or if you have a paid subscription you can use it on your website.
* Just create a new instance and pass your API key, alternatively
* you can set some defaults via the options object.
*
* License: MIT
* Author: Ernst Reidinga - ERDesigns - 26/10/2022
*/
@erdesigns-eu
erdesigns-eu / coinlayer.js
Created November 2, 2022 10:39
CoinLayer API Wrapper for Javascript
/**
* CoinLayer API - Cryptocurrency exchange rates etc..
* for use in the browser.
*
* License: MIT
* Author: Ernst Reidinga - ERDesigns - 26/10/2022
*/
class CoinLayerAPIError extends Error {
/**
@erdesigns-eu
erdesigns-eu / dependency.test.js
Created November 23, 2022 14:33
Test dependencies in package.json
/**
* Terminal colors and style
*/
const Color = {
Reset: "\x1b[0m",
Bright: "\x1b[1m",
Dim: "\x1b[2m",
Underscore: "\x1b[4m",
Blink: "\x1b[5m",
Reverse: "\x1b[7m",