Skip to content

Instantly share code, notes, and snippets.

View wmakeev's full-sized avatar
💭
💻

Makeev Vitaliy wmakeev

💭
💻
View GitHub Profile
@wmakeev
wmakeev / moysklad-kassa-fix.md
Last active March 30, 2022 13:22
[Исправление ошибки Кассы МойСклад на Ubuntu 20+] #moysklad #kassa #ubuntu

Исправление ошибки запуска кассы МойСклад на Ubuntu 20+

Описание ошибки

После установки кассы МойСклад, приложение не запускается. При попытке запустить кассу через командную строку получаем следующую ошибку:

$ moysklad-kassa

(moysklad-kassa:28133): Pango-ERROR **: 17:41:02.913: Harfbuzz version too old (1.3.1)
@wmakeev
wmakeev / errors.ts
Created March 20, 2022 11:35
[Custom errors] #error #typescript
export class SomeError extends Error {
constructor(message: string) {
super(message)
this.name = this.constructor.name
/* istanbul ignore else */
if (Error.captureStackTrace) {
Error.captureStackTrace(this, this.constructor)
}
}
}
@wmakeev
wmakeev / resolve.ts
Created March 17, 2022 09:15
[Error helpers] #error #resolve
export const resolve = async <T>(promise: Promise<T>) => {
try {
const result = await promise
return [result, null] as const
} catch (err) {
if (err instanceof Error) {
return [null, err] as const
} else {
throw err
}
@wmakeev
wmakeev / !AWS_CDK_stack.md
Last active March 17, 2022 12:00
[AWS CDK stack (rev.2)] #template #aws #cdk #stack

Params

Parameter Default Description
AWS_PROFILE default Current AWS profile
STACK_ACCOUNT_NUMBER AWS account number (aws sts get-caller-identity --profile default)
STACK_REGION eu-west-1 AWS region (aws configure get region --profile prod)

Include

@wmakeev
wmakeev / resolve.ts
Created March 13, 2022 12:56
[resolve] #promise #tools #helpers
const resolve = async <T>(promise: Promise<T>) => {
try {
const result = await promise
return [result, null] as const
} catch (err) {
if (err instanceof Error) {
return [null, err] as const
} else {
throw err
}
@wmakeev
wmakeev / dropHeadAfter.js
Created February 20, 2022 09:34
[Array drop] #tools #array #helper
/**
* @type {<T>(arr: T[], predicate: (item: T) => boolean) => T[]}
*/
const dropHeadAfter = (arr, predicate) => {
if (arr.length === 0) return []
for (let i = 0, len = arr.length; i < len; i++) {
if (!predicate(arr[i])) {
return arr.slice(i)
}
@wmakeev
wmakeev / !javascript-eslint-template.md
Last active August 28, 2023 15:23
[02 - ESLint (JavaScript)] #template #eslint

ESLint JavaScript template

@wmakeev
wmakeev / aws_api_gateway_custom_domine.md
Last active January 1, 2022 15:17
[AWS API Gateway custom domine] #aws #cert #domine
@wmakeev
wmakeev / AWS to Google Cloud Workload Identity Federation.md
Last active December 9, 2021 12:12
[AWS to Google Cloud Workload Identity Federation] #aws #googlecloud #lambda #auth #identity #iam

AWS to Google Cloud Workload Identity Federation

  • Setup organization

    ...

  • Google: Add new Project EmailSender (with default options)

  • AWS: Create Role GMailSenderRole and attach Policy

@wmakeev
wmakeev / json-cli.md
Last active November 26, 2021 10:12
[json CLI] #json #cli #tools

Install

npm install json -D

Get field value