Each day at our company, developers are required to document their activities, painstakingly jotting down their daily work and future plans. A monotonous chore that I just really dislike.
So now, there's a scribe for that :
import { createServer } from "node:http"; | |
import { parse } from "node:url"; | |
import { initGraphClient } from "@/modules/msgraph/client"; | |
import { rosterfyImportWorkflowId } from "@/modules/volunteer/workflows/rosterfyImportWorkflow"; | |
import config from "@payload-config"; | |
import next from "next"; | |
import cron from "node-cron"; | |
import { getPayload } from "payload"; | |
const port = Number.parseInt(process.env.PORT || "3010"); |
import { withPayload } from '@payloadcms/next/withPayload'; | |
import { resolve } from 'path'; | |
/** @type {import('next').NextConfig} */ | |
const nextConfig = { | |
experimental: { | |
serverOnlyDependencies: [resolve(import.meta.dirname, 'payload.config.proxy.ts')], | |
}, | |
}; |
import React from 'react' | |
import { serializeLexical } from './serialize' | |
const RichText: React.FC<{ className?: string; content: any }> = ({ className, content }) => { | |
if (!content) { | |
return null | |
} | |
return ( |
Each day at our company, developers are required to document their activities, painstakingly jotting down their daily work and future plans. A monotonous chore that I just really dislike.
So now, there's a scribe for that :
\documentclass[11pt, oneside]{article} | |
\usepackage[margin=0.5in]{geometry} | |
\geometry{letterpaper} | |
\usepackage[parfill]{parskip} | |
\usepackage{graphicx} | |
\usepackage{amssymb} | |
\usepackage{xcolor} | |
\pagecolor{white} | |
\usepackage[colorlinks = true, linkcolor = blue, urlcolor = blue]{hyperref} | |
\pagestyle{empty} |
There is a plugin on Strapi Marketplace that do this response transforming stuffs in a more configurable way. Checkout this if you are interested.
MIT License | |
Copyright (c) 2020 Rithvik Vibhu | |
Permission is hereby granted, free of charge, to any person obtaining a copy | |
of this software and associated documentation files (the "Software"), to deal | |
in the Software without restriction, including without limitation the rights | |
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
copies of the Software, and to permit persons to whom the Software is | |
furnished to do so, subject to the following conditions: |
const puppeteer = require("puppeteer"); | |
const user_email = "[email protected]"; | |
const user_handle = "@example"; //either your handle or phone number | |
const password = "theEndisNear"; | |
async function fkTwitter() { | |
const browser = await puppeteer.launch({ | |
headless: false, | |
}); |
Spike v1 represents a significant change, mostly because it includes an update from webpack v1 to webpack v2 behind the scenes. The aim of this piece is to guide you through the process of migration from one version to the next, and explain a bit of the rationale behind these changes.
The bulk of the migration work lies in the app.js file. Webpack drastically changed its configuration in a very breaking manner between v1 and v2, so spike was forced to do the same, since spike is an extension of webpack.
// getComponent is a function that returns a promise for a component | |
// It will not be called until the first mount | |
function asyncComponent(getComponent) { | |
return class AsyncComponent extends React.Component { | |
static Component = null; | |
state = { Component: AsyncComponent.Component }; | |
componentWillMount() { | |
if (!this.state.Component) { | |
getComponent().then(Component => { |