Ps: The current setup was done on 01-04-19
Project Dependency Versions at the time 👇
"react": "^16.7.0",
"react-dom": "^16.7.0",
"react-scripts": "2.1.3",
"typescript": "^3.2.2"
"tslint": "^5.12.0",
"tslint-config-prettier": "^1.17.0",| #!/usr/bin/env node | |
| // Channel ID is on the the browser URL.: https://mycompany.slack.com/messages/MYCHANNELID/ | |
| // Pass it as a parameter: node ./delete-slack-messages.js CHANNEL_ID | |
| // CONFIGURATION ####################################################################################################### | |
| const token = 'SLACK TOKEN'; | |
| // Legacy tokens are no more supported. | |
| // Please create an app or use an existing Slack App |
| import { Link } from 'react-router-dom' | |
| import { Badge, Col, Menu } from 'antd' | |
| const StyledBadge = styled(Badge)` | |
| .ant-badge-count { | |
| background-color: #7ECBBF; | |
| color: white; | |
| box-shadow: 0 0 0 1px #d9d9d9 inset; | |
| } | |
| ` |
Ps: The current setup was done on 01-04-19
Project Dependency Versions at the time 👇
"react": "^16.7.0",
"react-dom": "^16.7.0",
"react-scripts": "2.1.3",
"typescript": "^3.2.2"
"tslint": "^5.12.0",
"tslint-config-prettier": "^1.17.0",| import { ApolloServer, gql } from 'apollo-server-micro'; | |
| const typeDefs = gql` | |
| type Query { | |
| sayHello: String | |
| } | |
| `; | |
| const resolvers = { | |
| Query: { |
⚠️ Note 2023-01-21
Some things have changed since I originally wrote this in 2016. I have updated a few minor details, and the advice is still broadly the same, but there are some new Cloudflare features you can (and should) take advantage of. In particular, pay attention to Trevor Stevens' comment here from 22 January 2022, and Matt Stenson's useful caching advice. In addition, Backblaze, with whom Cloudflare are a Bandwidth Alliance partner, have published their own guide detailing how to use Cloudflare's Web Workers to cache content from B2 private buckets. That is worth reading,
| const App = () => { | |
| return ( | |
| <> | |
| <RoleFlag user={user} roles={[ROLES.USER]}> | |
| <AppUser /> | |
| </RoleFlag> | |
| <RoleFlag user={user} roles={[ROLES.ADMIN]}> | |
| <AppAdmin /> | |
| </RoleFlag> | |
| </> |
| /** | |
| * This Gist is part of a medium article - read here: | |
| * https://jamiecurnow.medium.com/using-firestore-with-typescript-65bd2a602945 | |
| */ | |
| // import firstore (obviously) | |
| import { firestore } from "firebase-admin" | |
| // Import or define your types | |
| // import { YourType } from '~/@types' |
| /** | |
| * This Gist is part of a medium article - read here: | |
| * https://jamiecurnow.medium.com/using-firestore-with-typescript-65bd2a602945 | |
| */ | |
| // import firstore (obviously) | |
| import { firestore } from "firebase-admin" | |
| // Import or define your types | |
| // import { YourType } from '~/@types' |
| /** | |
| * This Gist is part of a medium article - read here: | |
| * https://jamiecurnow.medium.com/using-firestore-with-more-typescript-8058b6a88674 | |
| */ | |
| // import firstore (obviously) | |
| import { firestore } from 'firebase-admin' | |
| import type { DocumentData, WithFieldValue } from 'firebase-admin/firestore' | |
| // Here's the helper type for paths: |