Skip to content

Instantly share code, notes, and snippets.

@sasin91
sasin91 / PriceMatrix.php
Created December 11, 2024 15:11
PriceMatrix.php
<?php
namespace App;
use App\Enums\Discount;
use Brick\Money\Money;
use Illuminate\Contracts\Support\Arrayable;
use InvalidArgumentException;
use WeakMap;
@sasin91
sasin91 / lua
Created June 14, 2024 15:55
init.lua
--[[
=====================================================================
==================== READ THIS BEFORE CONTINUING ====================
=====================================================================
======== .-----. ========
======== .----------------------. | === | ========
======== |.-""""""""""""""""""-.| |-----| ========
======== || || | === | ========
======== || KICKSTART.NVIM || |-----| ========
@sasin91
sasin91 / getCalleeFromStackTrace.js
Created February 12, 2024 13:13
getCalleeFromStackTrace.js
export const getCalleeFromStackTrace = () => {
const e = new Error();
const frame = e.stack.split(`\n`)[2]; // change to 3 for grandparent func
// const lineNumber = frame.split(`:`).reverse()[1];
// const functionName = frame.split(` `)[5];
const regex = /(\S+)\s+\(([^:]+):(\d+):(\d+)\)/;
const match = frame.trim().match(regex);
@sasin91
sasin91 / CreateMuxJWTToken.php
Created October 25, 2022 08:32
Action class that's called for creating Broadcast.mux_stats_jwt_token
<?php
namespace App\Actions;
use App\Enums\JWTTokenType;
use App\Models\Broadcast;
use App\Services\MuxApiClient;
use App\Values\MuxJWTToken;
use MuxPhp\ApiException;
@sasin91
sasin91 / MuxLiveViewers.vue
Created October 25, 2022 08:24
ZomeTV Broadcast live stats
<script lang="ts">
export default {
props: {
jwtToken: String,
},
data() {
return {
intervalId: undefined,
@sasin91
sasin91 / Country.php
Created June 17, 2022 07:49
extensible Enum with country names, alpha2, alpha3
<?php
namespace App\Enums;
use ArchTech\Enums\From;
use function array_flip;
use ArchTech\Enums\Values;
use ArchTech\Enums\Options;
use Illuminate\Support\Str;
@sasin91
sasin91 / FormField.component
Last active September 8, 2020 07:55
Infer wired property from slot
<code>
<?php
namespace App\View\Components;
use Illuminate\Support\Str;
use Illuminate\View\Component;
class FormField extends Component
{
@sasin91
sasin91 / Str.php
Created August 13, 2020 11:52
Str::compare
Str::macro('compare', function (string $value, string $to, string $delimiter = ' ') {
return collect(explode($delimiter, $value))
->zip(explode($delimiter, $to))
->filter(function ($pair) {
return $pair->first() !== $pair->last();
})
->collapse();
});
Str::macro('diff', function (string $compare, string $to) {
// First we'll find the determine the bitwise difference between the two strings, using the bitwise XOR operator (^) to compare them.
// Then we'll utilize strspn to determine the position where a difference is found.
$from_start = strspn($compare ^ $to, "\0");
// Next we'll determine the end position, by reversing both strings then utilizing strspn as before.
$from_end = strspn(Str::reverse($compare) ^ Str::reverse($to), "\0");
// here we snip out original value
$value = Str::substr($compare, $from_start, (strlen($compare) - $from_end) - $from_start);
@sasin91
sasin91 / trinitycore.ebuild
Created July 7, 2020 20:43
Ebuild for compiling the latest TrinityCore 3.3.5 on Gentoo
# Copyright 2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit cmake cmake-utils git-r3
DESCRIPTION="TrinityCore WoW Private server for WoTLK 3.3.5a"
HOMEPAGE="https://trinitycore.org"
EGIT_REPO_URI="https://github.com/TrinityCore/TrinityCore.git"