Skip to content

Instantly share code, notes, and snippets.

View wanderer20's full-sized avatar

Oleg wanderer20

  • QL
  • Moscow
View GitHub Profile
@wanderer20
wanderer20 / Dockerfile
Last active April 17, 2024 09:44
[test] docker + pm2 + nuxt
ARG NODE_VERSION=node:21.7.3-alpine
ARG NGINX_VERSION=nginx:1.25.4-alpine
FROM $NODE_VERSION AS production-base
WORKDIR /usr/src/app
COPY ./../app/package*.json ./../app/pnpm-*.yaml ./
RUN apk update
@wanderer20
wanderer20 / is-odd.js
Last active March 12, 2024 04:43
[optim:01] Проверка на нечетность (isOdd) + bench
/**
Есть несколько вариантов проверить число на нечетность
1) const isOdd = (i: number): boolean => (i & 1) == 1
2) const isOdd = (i: number): boolean => !!(i & 1)
3) const isOdd = (i: number): boolean => i % 2 !== 0
4) const isOdd = (i: number): boolean => [false, true][i & 1]
*/
// Проверка будет простой, ориентироваться будем на одном вызове функции и на нескольких в цикле:
@wanderer20
wanderer20 / gist:104b90810bb9a481a7e3f73f13278a58
Last active February 7, 2024 15:35
Пользовательская защита или проверка пользовательского типа в TypeScript. Идея - использовать дискриминатор, как точный идентификатор для типа, дабы четко совершать проверку
type CustomType = {
discriminator: 'customType';
field1: number;
field2: string;
}
...
const isCustomType = (object: any): object is CustomType => !!object && object.discriminator === 'customType';
@wanderer20
wanderer20 / event-manager.js
Created January 4, 2024 11:46
event-manager.js
/**
* Класс для менеджера событий (целей)
* @constructor
*/
function EventManager() {
this.init();
this.initEvents();
}
/**
@wanderer20
wanderer20 / wc-filter-cart-contents-weight
Created February 17, 2022 09:05 — forked from vanbo/wc-filter-cart-contents-weight
Filter WooCommerce Cart Contents Weight
add_filter( 'woocommerce_cart_contents_weight', 'prefix_filter_cart_contents_weight' );
function prefix_filter_cart_contents_weight( $weight ) {
/**
* Adding 170 units to the total cart weight.
*/
return $weight + 170;
}