Skip to content

Instantly share code, notes, and snippets.

@buglss
buglss / setByPathOfObject.js
Created October 26, 2022 15:21
[EN] It is a function that assigns the specified value to a nested object according to the specified path. If the object is not sent as a parameter, a new object is created and returned. [TR] Belirtilen değeri belirtilen path'e göre nested bir objede atama yapan fonksiyondur. Eğer parametre olarak obje gönderilmezse yeni bir obje oluşturup döndü…
/*
* * STRUCTURE [EN]
* - .: Character used to separate the path of Keys/Fields. (key.key.key...)
*
* * YAPI [TR]
* - .: Anahtarların/Alanların yolunu ayırmak için kullanılan karakter. (key.key.key...)
*
* * USAGE EXAMPLE / KULLANIM ÖRNEĞİ
* setByPathOfObject("document.customField.meta.value", 28)
* => { document: { customField: { meta: { value: 28 } } } }
@buglss
buglss / getByPathFromObject.js
Last active February 20, 2023 19:26
[EN] The function that provides the data of the specified path from an nested object to be value. [TR] Nested bir objeden belirtilen path'e ait verinin getirilmesini sağlayan bir fonksiyondur.
/*
* * STRUCTURE [EN]
* - .: Character used to separate the path of Keys/Fields. (key.key.key...)
* - [<number>]: The character used to return the relevant element of the Array type data.
* - >: Character used to search (find method) in Array type data.
* - :: The character that expresses the condition field in the find operation specified by the > character of the data of type Array. (...>CONDITIONFIELD:...)
* - <: It is the character that expresses the value that the field expressed with : must be equal in the find operation determined by the > character of the data in Array type. (...>CONDITIONFIELD:EXPECTEDTOEQUALCONDITION<...)
*
* * YAPI [TR]
* - .: Anahtarların/Alanların yolunu ayırmak için kullanılan karakter. (key.key.key...)
@buglss
buglss / flatToComplex.js
Last active January 2, 2023 12:35
[TR]: Özel bir flat json'dan kompleks bir json üretir. [EN]: Generates a complex json from a specific flat json.
/**
* Flat JSON Yapısı: <json|group,key,value>
* group <string>: Anahtarlanmış birden fazla değeri gruplamak için kullanılan ifadedir.
* Eğer işaretçiye ait bir grup ise işaretçinin group değeri ve key değeri ile isimlendirilmelidir. (group.key)
* key <string>: Anahtar ifadesidir. JSON içinde benzersiz olmalıdır.
* Eğer başka bir grubu işaret edecekse group ve key isimlerinin birleşiminden oluşan grup (group) tanımlanmalıdır. (group.key)
* value <string>: Anahtarlanan ifadenin tuttuğu değerdir. Eğer başka bir grubu (group) işaret edecekse "*" (pointer) değerini alır.
* Örn: [
* ...
* { "group": "anaKategori", "key": "TEST KATEGORİ", "value": "*" },
@buglss
buglss / isPrime.js
Last active August 12, 2022 21:50
İki sayı arasındaki asal sayıları dönen fonksiyon. [EN] Return prime number for two between number.
function isPrime(first, last) {
let out = []
if(last < first) [first, last] = [last, first]
const fin = last - first
let num = first - 1
while(num++ < fin) {
(function() {
const boundary = Math.floor(Math.sqrt(num))
for (var i = 2; i <= boundary; i++) if (num % i === 0) return false
if(num >= 2) out.push(num)
@buglss
buglss / mongodb_project_alldata_by_filter.js
Created June 13, 2022 07:46
MongoDb aggregate sorgusunda project kısmında dokümanın tüm elemanlarını dönen fakat bazı elemanlarını dahil etmeyen örnek bir sorgudur. / It is an example query that returns all the elements of the document in the project part of the MongoDb aggregate query, but does not include some fields.
db.demo.aggregate([
{
$project: {
allData: {
$let: {
vars: { data: { "$objectToArray": "$$ROOT" } },
in: {
$filter: {
input: "$$data",
as: "item",
@buglss
buglss / numToText.js
Last active June 17, 2022 11:30
Girilen sayı değeri istenen basamak ve yönde bölünerek metne dönüştürüp liste halinde dönen fonksiyondur. / It is a function that converts the entered number value into text by dividing it in the desired digit and direction and returns it as a list.
const place = ["", "bin", "milyon", "milyar", "trilyon", "katrilyon"]
const digets = [
[['sıfır'], ['yüz'], ['ikiyüz'], ['üçyüz'], ['dörtyüz'], ['beşyüz'], ['altıyüz'], ['yediyüz'], ['sekizyüz'], ['dokuzyüz']],
[['sıfır'], ['on'], ['yirmi'], ['otuz'], ['kırk'], ['elli'], ['altmış'], ['yetmiş'], ['seksen'], ['doksan']],
[['sıfır'], ['bir'], ['iki'], ['üç'], ['dört'], ['beş'], ['altı'], ['yedi'], ['sekiz'], ['dokuz']]
]
const read3DigitNum = (num) => num.padStart(3, "_").split("").flatMap((y, i) => y === "_" ? [] : y === "0" && i > 0 && Number(num.slice(0, i)) != 0 ? [] : digets[i][y]).join("")
const chunk = (str, size, rtl = false) => rtl
? str.split('').flatMap((x, i) => { return i % size ? [] : str.slice(Math.max(str.length - i - 3, 0), str.length - i) }).reverse()
: str.split('').flatMap((x, i) => { return i % size ? [] : str.slice(i, i + size) })
@buglss
buglss / numberToText.js
Last active June 10, 2022 13:45
Girilen sayıyı basamaklarına ayırıp metinsel karşılığını dönen fonksiyon. / Function that splits the entered number into its digits and returns its textual equivalent.
const numberToTextLookup = [
{ "0": "Sıfır", "1": "Yüz", "2": "İkiyüz", "3": "Üçyüz", "4": "Dörtyüz", "5": "Beşyüz", "6": "Altıyüz", "7": "Yediyüz", "8": "Sekizyüz", "9": "Dokuzyüz", "undefined": " " },
{ "0": "Sıfır", "1": "On", "2": "Yirmi", "3": "Otuz", "4": "Kırk", "5": "Elli", "6": "Atmış", "7": "Yetmiş", "8": "Seksen", "9": "Doksan", "undefined": " " },
{ "0": "Sıfır", "1": "Bir", "2": "İki", "3": "Üç", "4": "Dört", "5": "Beş", "6": "Altı", "7": "Yedi", "8": "Sekiz", "9": "Dokuz", "undefined": " " }
]
function numberToText(number, digit = 3) {
number = +number
if(isNaN(number) || digit > 3 || digit < 0) return ""
@buglss
buglss / index.html
Last active June 5, 2022 10:43
HTML-CSS-JS Hap Bilgi/ HTML-CSS-JS Nutshell
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="style.css">
@buglss
buglss / npm_git_publish_major.sh
Last active June 7, 2022 10:17
npm together git publish major,minor and patch versiyon / npm ile git'i beraber olarak major,minor ve patch versiyon yayınlamak.
#! /bin/bash
npm version major
npm publish # update latest version
# npm publish --tag old-version # not update latest version
git push --follow-tags
@buglss
buglss / vendor.sh
Created May 31, 2022 14:37
Harici kütüphanelerin çekildiği bash script. / Bash script that pulls external libraries. (VENDOR)
#! /bin/bash
BOLD="\e[1m"
NORMAL="\e[0m"
DEFAULT="\e[39m"
RED="\e[31m"
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
if [ "$SCRIPTPATH" = "$PWD" ];then
css=""