Skip to content

Instantly share code, notes, and snippets.

class UserEventsProcessor
include Shoryuken::Worker
shoryuken_options queue: 'User_Events.fifo', auto_delete: true
def perform(_sqs_event, payload)
Rails.logger.info("_sqs_event: #{_sqs_event}")
Rails.logger.info("UserEventsProcessor payload: #{payload}")
end
end
interface Customer {
name: string
phone: string
}
declare function getCustomerData(id: string): Promise<Customer>;
declare function payCustomer(customer: Customer): void;
async function f() {
const customer = getCustomerData('c1')
function isDate(input: unknown) : asserts input is Date {
if (input instanceof Date)
return;
else
throw new Error('Input must be a Date!');
}
function getYear(input: unknown) : number {
isDate(input);
return input.getFullYear() // TypeScripts knows that input is Date
function isDate(input: unknown) {
if (input instanceof Date)
return;
else
throw new Error('Input must be a Date!');
}
function getDayOfWeek(input: unknown) : number {
isDate(input);
return input.getFullYear() // TypeScript will fail compilation here!
// Before
passPhrase = data.inputString || 'Unknown' //will not accept "" (empty string)
passCode = data.number || '-1111' // will not accept 0
rememberMe = data.rememberFlag || true // will always be true!!!
// Now
passPhrase = data.inputString ?? 'Unknown' //Unknown only if inputString is not defined
passCode = data.number ?? '-1111' // 0 could be a passCode
rememberMe = data.rememberFlag ?? true // false is a valid value
// Prior to v3.7
if (data && data.customer && data.customer.address) {
const {address} = data.customer
const fullAddress = `${address.street}, ${address.city}, ${address.state }${address.zipcode}`
}
// v3.7 onwards
// data access
const address = data?.customer?.address
@rcdexta
rcdexta / compact.js
Last active March 28, 2019 05:33
compact
var array = [undefined, 'cat', false, 434, '', 32.0]
_.compact(array)
array.filter(Boolean)
@rcdexta
rcdexta / uniq.js
Created March 28, 2019 05:06
unique elements
var elements = [1,2,3,1,2,4,2,3,5,3]
_.uniq(elements)
[...new Set(elements)]
@rcdexta
rcdexta / includes.js
Created March 28, 2019 04:58
array includes
const primes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,97]
_.includes(primes, 47)
primes.includes(79)
@rcdexta
rcdexta / some.js
Created March 28, 2019 04:54
some element
const elements = ["cat", "dog", "bat"]
_.some(elements, el => el.startsWith('c'))
elements.some(el => el.startsWith('c'))