Skip to content

Instantly share code, notes, and snippets.

View boardev's full-sized avatar

Boar boardev

  • MHP
  • Ukraine
  • 09:20 (UTC +02:00)
View GitHub Profile
@boardev
boardev / idb-cache.js
Last active July 18, 2023 10:38
idb libraries
import idb from 'idb-keyval'
class IDBCache {
set(key, val, time) {
// Set default expiry as 100 days;
if (!time) time = 2400 * 60 * 60 * 1000
// Set the key;
Promise.all([idb.set(key, val), idb.set(`__${key}ExpiryTimeStamp`, Date.now() + time * 60 * 1000)])
.then(() => {
this.removeExpiredKeys() // Once the keys are set, remove any expired keys.
import { presetAttributify, presetUno } from 'unocss'
export function presets(): any[] {
return [presetAttributify(), presetUno()]
}
export function rules(): any[] {
return []
}
@boardev
boardev / vue3PiniaVitestSnippet.ts
Last active July 21, 2023 23:31 — forked from tkyf/vue3PiniaVitestSnippet.ts
Vue3+Pinia+Vitest+@testing-library/vue
import { it } from 'vitest'
import { setActivePinia, createPinia } from 'pinia'
import { createTestingPinia } from '@pinia/testing'
import { render } from '@testing-library/vue'
import { useSomeStore } from '@/stores/SomeStore'
import SomeComponent from '@/components/SomeComponent.vue'
it('test', async () => {
const pinia = createPinia()
@boardev
boardev / group-objects-by-property.md
Created June 14, 2023 09:26 — forked from JamieMason/group-objects-by-property.md
Group Array of JavaScript Objects by Key or Property Value

Group Array of JavaScript Objects by Key or Property Value

Implementation

const groupBy = key => array =>
  array.reduce((objectsByKeyValue, obj) => {
    const value = obj[key];
    objectsByKeyValue[value] = (objectsByKeyValue[value] || []).concat(obj);
    return objectsByKeyValue;
@boardev
boardev / README.md
Last active July 1, 2023 19:49 — forked from joseluisq/README.md
Javascript: Get part of string matching a Regular Expression and then pass its value to a callback

Pick part of an string using a Regex

Получить часть строки, соответствующую регулярному выражению, а затем передать ее значение обратному вызову

const pickStringByRegex = (pattern, str, func) => {
  const regex = new RegExp(pattern)
  const value = regex.test(str) ? str.replace(regex, '$2') : null
  if (value) func(value)
}
@boardev
boardev / add_two_times.js
Created June 14, 2023 09:13
Sum two times values HH:mm:ss with javascript
/**
* Sum two times values HH:mm:ss with javascript
* Usage:
* > addTimes('04:20:10', '21:15:10');
* > "25:35:20"
*
* @param {string} start
* @param {string} end
* @returns {String}
*/
@boardev
boardev / nvmCommands.js
Created June 5, 2023 05:07 — forked from chranderson/nvmCommands.js
Useful NVM commands
// check version
node -v || node --version
// list installed versions of node (via nvm)
nvm ls
// install specific version of node
nvm install 6.9.2
// set default version of node
@boardev
boardev / index.ts
Last active August 2, 2023 21:56
socket.io
import { Socket, io } from "socket.io-client"
import { v4 as uuidv4 } from 'uuid';
type Headers = { [key: string]: string };
class WebSocketHttpClient {
socket;
responses;
errors;
@boardev
boardev / 1. Cheat-sheets.md
Last active July 15, 2023 07:36
CheatSheets

readme

@boardev
boardev / chromeTabs.json
Last active December 23, 2023 20:20
Chrome tabs
{"nightTab":true,"version":"7.3.0","state":{"layout":{"area":{"header":{"width":54,"justify":"center"},"bookmark":{"width":100,"justify":"left"}},"alignment":"top-center","order":"header-bookmark","direction":"vertical","size":65,"width":90,"padding":40,"gutter":20,"breakpoint":"xl","scrollbar":"none","title":"","favicon":"","overscroll":false},"header":{"item":{"justify":"left"},"greeting":{"show":false,"type":"good","custom":"","name":"","size":100,"newLine":false},"transitional":{"show":false,"type":"time-and-date","size":100,"newLine":false},"clock":{"hour":{"show":true,"display":"number"},"minute":{"show":true,"display":"number"},"second":{"show":false,"display":"number"},"separator":{"show":true,"text":""},"meridiem":{"show":false},"hour24":{"show":true},"size":100,"newLine":false},"date":{"day":{"show":false,"display":"word","weekStart":"monday","length":"long"},"date":{"show":true,"display":"number","ordinal":false},"month":{"show":true,"display":"number","length":"short","ordinal":false},"year":{"sho