Skip to content

Instantly share code, notes, and snippets.

View ernestofreyreg's full-sized avatar
🚢
Just ship it

Ernesto Freyre ernestofreyreg

🚢
Just ship it
View GitHub Profile
import { NodePlopAPI } from 'plop'
export const libGenerator = (plop: NodePlopAPI) => {
const prompts = [
{
type: 'input',
name: 'libName',
message: 'Library name'
},
{
import { NodePlopAPI } from 'plop'
export const appGenerator = (plop: NodePlopAPI) => {
const prompts = [
{
type: 'input',
name: 'appName',
message: 'App name'
},
{
import { ActionConfig, NodePlopAPI } from 'plop'
import globby from 'globby'
import fse from 'fs-extra'
import replaceInFiles from 'replace-in-files'
export const copyFiles = async (answers: object, config: ActionConfig, plop: NodePlopAPI) => {
const configData = config.data as any
const allFiles = await globby([configData.source], {
gitignore: true,
import { appGenerator } from './app-generator'
import { libGenerator } from './lib-generator'
import { NodePlopAPI } from 'plop'
import { copyFiles } from './actions'
module.exports = function (plop: NodePlopAPI) {
plop.setActionType('copy-files', copyFiles)
plop.setGenerator('app', appGenerator(plop))
plop.setGenerator('lib', libGenerator(plop))
import * as React from 'react'
import { NextPage } from 'next'
import { Button } from 'components/Button'
import { capitalize } from '@outsrc/functions'
const Index: NextPage = () => {
const handleClick = (): void => {
alert('World')
}
import { capitalize } from './index'
describe('Functions', () => {
it('capitalize', () => {
expect(capitalize('john doe')).toBe('John Doe')
})
})
export const capitalize = (a: string): string =>
a
.split(' ')
.map(p => p[0].toUpperCase() + p.substr(1).toLocaleLowerCase())
.join(' ')
{
"extends": "../../../config/next.tsconfig.json",
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
"compilerOptions": {
"baseUrl": "./src"
},
"exclude": ["node_modules"]
}
{
"name": "@outsrc/functions",
"version": "0.0.0",
"description": "Templated shared functions",
"main": "src/index.ts",
"scripts": {
"test": "jest --coverage --config ../../../jest.config.js ./src/*"
},
"keywords": [],
"author": "",
module.exports.parameters = {
actions: { argTypesRegex: '^on[A-Z].*' }
}