Skip to content

Instantly share code, notes, and snippets.

View hmelenok's full-sized avatar
🙊
Coding

Mykyta Khmel hmelenok

🙊
Coding
View GitHub Profile
@hmelenok
hmelenok / structure.txt
Last active April 27, 2021 16:17
File structure for i18n package
i18n
├── README.md
├── babel.config.js
├── create-translations.js
├── crowdin.yml
├── package.json
├── renovate.json
├── src
│ ├── bundles
│ │ ├── app-1
/* Amplify Params - DO NOT EDIT
You can access the following resource attributes as environment variables from your Lambda function
var environment = process.env.ENV
var region = process.env.REGION
var storageEmailsBucketName = process.env.STORAGE_EMAILS_BUCKETNAME
Amplify Params - DO NOT EDIT */
var storageEmailsBucketName = process.env.STORAGE_EMAILS_BUCKETNAME;
var AWS = require('aws-sdk');
var s3 = new AWS.S3();
import React from 'react';
import {Provider} from 'react-redux';
import App, {Container} from 'next/app';
import withRedux from 'next-redux-wrapper';
import {PersistGate} from 'redux-persist/integration/react';
import {Api} from '@shelf/sdk';
import Error from './_error';
import {initStore} from '../lib/store';
import {initRollbar} from '../lib/rollbar';
import {initIntercom} from '../lib/intercom';
import AWSAppSyncClient, {createAppSyncLink} from 'aws-appsync';
import {PureQueryOptions} from 'apollo-client';
import {MutationOptions, QueryOptions, ApolloQueryResult} from 'apollo-client';
import {map} from 'lodash';
import AppSyncConfig from '../../aws.config';
import {getAccessToken, getDefaultQueryParams, getMeteorTokenString} from '../helpers/apiHelper';
import {logError, logResponse} from './apolloLogHelpers';
import '../polyfills/server-fetch';
import {InMemoryCache} from 'apollo-cache-inmemory';
import {setContext} from 'apollo-link-context';
export const goToDecisionStep = (stepId = 'Step#1', gemId) => async (dispatch, getState) => {
const {
gemDecisionTree: {nodes}
} = getState();
const alreadyFetchedStep = nodes[stepId];
if (!isEmpty(alreadyFetchedStep)) {
return dispatch(setActiveDecisionStep(alreadyFetchedStep));
}
import {Api} from '@shelf/sdk';
import {Meteor} from 'meteor/meteor';
const graphqlConfig = {
apiKey: Meteor.settings.public.decisionTree.apiKey,
apiUrl: `https://${Meteor.settings.public.decisionTree.graphqlAPIHost}/graphql`
};
// Todo: Setup Apollo during Visual Editing implementation and switch to QueryLayer
class DecisionTreeApi extends Api {
@hmelenok
hmelenok / sorting.js
Created June 4, 2018 13:42
javascript natural sort collection
import naturalSort from 'javascript-natural-sort';
import emojiStrip from 'emoji-strip';
import {cloneDeep} from 'lodash';
import {isOrgLib, isPersonalLib} from './directory';
import {getTitle} from './properties';
naturalSort.insensitive = true;
/**
@hmelenok
hmelenok / basae64IsoToUTF8.js
Created September 1, 2016 16:50
function to decode in js gmail base64 strings to normal UTF8 language
function base64DecodetoUTF8(string) {
return decodeURIComponent(escape(atob(string.split('-').join('+').split('_').join('/')) ));
}
<Extension id="from" type="contextExtractor">
<Name>Email Sender</Name>
<Url>google.com:SenderEmailExtractor</Url>
<Param name="sender_email" value="my_boss@my_domain.com"/>
<Triggers ref="bossIsCalling"/>
<Scope ref="senderScope"/>
<Container name="mail"/>
</Extension>
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="Preferences for __UP_myname__" height="250" />
<UserPref name="myname" display_name="Name" required="true" />
<UserPref name="myphoto" display_name="Photo" default_value="http://doc.examples.googlepages.com/rowan-headshot.jpg"/>
<UserPref name="mychoice" display_name="Show Photo?" datatype="bool" default_value="true"/>
<UserPref name="mycolor" display_name="Color" default_value="Yellow" datatype="enum" >
<EnumValue value="Red" />
<EnumValue value="Aqua" />
<EnumValue value="Lime" />