Giter VIP home page Giter VIP logo

iamturns / create-exposed-app Goto Github PK

View Code? Open in Web Editor NEW
404.0 4.0 64.0 2.96 MB

App generator with everything exposed for maximum control (powered by TypeScript, ESBuild, Jest, ESLint, GitHub Actions, Prettier, and more)

License: MIT License

JavaScript 13.13% TypeScript 6.26% Shell 3.54% EJS 77.07%
generator app-generator create-app starter-kit starter-project javascript typescript nodejs esbuild

create-exposed-app's Introduction

create-exposed-app

Version Downloads Last commit Build Status Coverage Status License PRs Welcome Code of conduct

App generator with everything exposed for maximum control (powered by TypeScript, ESBuild, Jest, ESLint, GitHub Actions, Prettier, and more)


Like zero-config? Get out!

Generate a flexible starting point for your app, where config files and scripts are in-your-face and ready to adapt to your needs.

Because every app is unique.

Go for it:

npm init exposed-app

command demo

What's included?

Setup

npm install @iamturns/create-exposed-app

Usage

Run the following command and follow the prompts:

npm init exposed-app

You can also invoke the app with arguments. For example:

npx create-exposed-app \
  --packageName="my-awesome-project" \
  --npmScope="@example" \
  --oneLiner="Does awesome stuff" \
  --authorName="Bruce Wayne" \
  --authorEmail="[email protected]" \
  --authorGithub="batman" \
  --authorTwitter="TheRealBatman" \
  --authorWebsite="https://batman.com"

Credits

This project is authored and maintained by Matt Turnbull (iamturns.com / @iamturns).

A big thank you to all contributors πŸ†

License

Open-source under MIT License.

FAQ

Uh oh, something went wrong!

Sorry about that. Please submit a bug report using the GitHub issue tracker.

I wish something was different…

Keen to hear all ideas in GitHub discussions.

Can I contribute code?

Yes please! See DEVELOPING.md.

My question isn't answered :(

Ask away in GitHub discussions.

create-exposed-app's People

Contributors

arlophoenix avatar dependabot[bot] avatar github-actions[bot] avatar iamturns avatar renovate[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

create-exposed-app's Issues

Script to sync ADR titles and filenames

✨ Enhancement Request

It's easy for ADR titles and file names to become out of sync. Fix this with a script that writes the ADR title to the filename, and run it automatically on changes.


βœ… Checklist

Move husky settings into package.json

Enhancement

Move husky settings into package.json

The setting is so minor, is just an alias to npm run pre-commit, and will never be changed.

"husky": {
    "hooks": {
      "pre-commit": "npm run pre-commit"
    }
  }

Discover unformatted files when linting

✨ Enhancement Request

It's possible for files to go unformatted.

The npm run lint command should alert to this issue.

Can use --list-different option with Prettier. However, we have other formatting tools besides Prettier. Perhaps the best way is to run npm run format and check if any files changed. However, this means the git must be clear. Perhaps this should only be run during CI.


βœ… Checklist

Upgrade to Jest 24

Enhancement

Upgrade to Jest 24.

It includes built-in TypeScript support.

Hopefully can simplify the configuration, and possibly remove babel-jest dependency

Remove manually overridden linting rules

✨ Enhancement Request

Keep your manual linting overrides to yourself

Use eslint-config-iamturns as a central repository to store these rules instead. Potentially use it within the src directory, but definitely not within template directory.


βœ… Checklist

markdownlint found some errors. Please fix them and try committing again.

πŸ› Bug report

On commit 8755684
I run create-exposed-app-cli.js
I try add all those files to git and commit - git commit -m "Add files"
error mesage:
` βœ– markdownlint
Running tasks for /.{css,gql,graphql,html,json,less,md,mdx,scss,vue,yaml,yml}
Running tasks for **/
.{js,jsx,ts,tsx}
Running tasks for src/
/*

βœ– markdownlint found some errors. Please fix them and try committing again.

/home/dewi/tempdewi/test6/docs/adr/README.md: 5: MD041/first-line-h1 First line in file should be a top level heading [Context: "- ADRs"]`

Remove TypeScript question

Supporting both TS and JS is adding unnecessary weight to the project.

Instead, assume TS by default. It can be easily removed and converted to JS if needed. Possibly provide instructions for this.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • chore(deps): replace dependency npm-run-all with npm-run-all2 5.0.0
  • chore(deps): update dependency @types/debug to v4.1.12
  • chore(deps): update dependency doctoc to v2.2.1
  • chore(deps): update dependency eslint-config-airbnb-typescript to v16.2.0
  • chore(deps): update dependency eslint-config-prettier to v8.10.0
  • chore(deps): update dependency eslint-plugin-jsx-a11y to v6.8.0
  • chore(deps): update dependency eslint-plugin-promise to v6.1.1
  • chore(deps): update dependency eslint-plugin-react to v7.34.1
  • chore(deps): update dependency markdownlint-cli to v0.40.0
  • chore(deps): update dependency prettier to v2.8.8
  • chore(deps): update dependency sort-package-json to v1.57.0
  • chore(deps): update actions/checkout action to v4
  • chore(deps): update actions/setup-node action to v4
  • chore(deps): update commitlint monorepo to v19 (major) (@commitlint/cli, @commitlint/config-conventional)
  • chore(deps): update dependency eslint to v9
  • chore(deps): update dependency eslint-config-airbnb-typescript to v18
  • chore(deps): update dependency eslint-config-prettier to v9
  • chore(deps): update dependency eslint-formatter-pretty to v6
  • chore(deps): update dependency eslint-plugin-jest to v28
  • chore(deps): update dependency eslint-plugin-unicorn to v52
  • chore(deps): update dependency prettier to v3
  • chore(deps): update dependency rimraf to v5
  • chore(deps): update dependency sort-package-json to v2
  • chore(deps): update dependency typescript to v5
  • chore(deps): update googlecloudplatform/release-please-action action to v4
  • chore(deps): update jest monorepo to v29 (major) (@types/jest, babel-jest, jest)
  • chore(deps): update stefanzweifel/git-auto-commit-action action to v5
  • chore(deps): update typescript-eslint monorepo to v7 (major) (@typescript-eslint/eslint-plugin, @typescript-eslint/parser)
  • chore(deps): update wagoid/commitlint-github-action action to v6
  • fix(deps): update dependency dotenv to v16
  • πŸ” Create all rate-limited PRs at once πŸ”

Edited/Blocked

These updates have been manually edited so Renovate will no longer make changes. To discard all commits and start over, click on a checkbox.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/coveralls.yml
  • actions/checkout v2
  • actions/setup-node v2
.github/workflows/formatter.yml
  • actions/checkout v2
  • actions/setup-node v2
  • stefanzweifel/git-auto-commit-action v4
.github/workflows/push-branch.yml
  • actions/checkout v2
  • actions/setup-node v2
.github/workflows/push-master.yml
  • actions/checkout v2
  • wagoid/commitlint-github-action v4
  • actions/setup-node v2
  • GoogleCloudPlatform/release-please-action v3
npm
package.json
  • debug ^4.3.3
  • dotenv ^10.0.0
  • hygen ^6.1.0
  • @babel/core 7.16.7
  • @babel/preset-env 7.16.7
  • @babel/preset-typescript 7.16.7
  • @commitlint/cli 16.0.1
  • @commitlint/config-conventional 16.0.0
  • @types/debug 4.1.7
  • @types/jest 27.4.0
  • @typescript-eslint/eslint-plugin 5.8.1
  • @typescript-eslint/parser 5.8.1
  • babel-jest 27.4.5
  • doctoc 2.1.0
  • esbuild 0.14.10
  • eslint 8.6.0
  • eslint-config-airbnb-base 15.0.0
  • eslint-config-airbnb-typescript 16.1.0
  • eslint-config-prettier 8.3.0
  • eslint-formatter-pretty 4.1.0
  • eslint-plugin-eslint-comments 3.2.0
  • eslint-plugin-import 2.25.3
  • eslint-plugin-jest 25.3.3
  • eslint-plugin-jsx-a11y 6.5.1
  • eslint-plugin-promise 6.0.0
  • eslint-plugin-react 7.28.0
  • eslint-plugin-unicorn 40.0.0
  • gen-esm-wrapper 1.1.3
  • import-sort-cli 6.0.0
  • import-sort-parser-babylon 6.0.0
  • import-sort-parser-typescript 6.0.0
  • import-sort-style-module 6.0.0
  • jest 27.4.5
  • markdownlint-cli 0.30.0
  • npm-run-all 4.1.5
  • prettier 2.5.1
  • rimraf 3.0.2
  • sort-package-json 1.53.1
  • typescript 4.5.4

  • Check this box to trigger a request for Renovate to run again on this repository

Unstaged markdown files are linted

Bug report

Markdown files that aren't staged are linted within lint-staged.

Steps to reproduce

  1. Add a markdown file that fails linting
  2. Git stage a different markdown file that passes linting
  3. Run lint-staged

Expected behavior

Lint-staged should be successful.

Actual behaviour

Lint-staged lints the other file.

Environment

  • create-exposed-app version: latest
  • Node.js version: 10.1.0
  • npm version: 6.4.1

Checklist

Add checks to ensure commits follow conventional commit

Enhancement

It is easy for commits to appear in master that do not follow conventional commits, and then break the automated release process.

Example: https://github.com/seek-oss/commitlint-config-seek

Note: this only needs to apply in the master branch. Other branches can follow any commit messages they like. When they are squashed + merged, the commit should then follow conventional commits.

Cleanup dependencies

There are many dependencies which are no longer required, or should be moved to devDependencies instead.

Generate example app within repo

✨ Enhancement Request

it would be useful to browse an example app, to see how create-exposed-app is pieced together.

It could be run before being published and stored in an examples directory.


βœ… Checklist

Running `npm run dev` searches for missing file

Bug report

Running npm run dev searches for missing file

Steps to reproduce

Run npm run dev

Expected behavior

The command should run successfully.

Actual behaviour

Searching for missing src/create-exposed-app.ts file.

Introduce `test:coverage` script

Enhancement

Currently the test script generates a coverage report. However this is quite slow, and is better off to be run only when required. Recommend adding a test:coverage command.

{
  "test": "jest --passWithNoTests",
  "test:coverage": "jest --passWithNoTests --coverage",
}

Introduce `build-serve` command

Enhancement

Currently with dev and dev:onchange command, the scripts get confusing if adding other dev:* commands (e.g. "dev:debug": "DEBUG=1 npm run dev") (FYI - might be useful to add this, too!)

Recommended to rename to something like:

{
    "build-serve": "babel-node --extensions .js,.jsx,.ts,.tsx src/course-directory-api.ts --inspect",
    "build-serve:watch": "nodemon --ext js,jsx,ts,tsx --delay 1 --exec npm run build-serve",
    "dev": "NODE_ENV=development npm run build-serve:watch",
    "dev:debug": "DEBUG=1 npm run dev",
}

Installation stuck at executeStepCopyTemplate

πŸ› Bug report

As I go through the getting started, and run the npm init exposed-app, my terminal gets stuck after the new 'hello-world' git branch is checked out.

Steps to reproduce

  1. Install create-exposed-app on a Windows 7 machine
  2. Run npm init exposed-app

Please include if possible and/or relevant: code, config, links, repository that reproduces the bug.

Expected behavior

Installation should progress to 'Copying 50 files' as per the gif shows on the Read me.

Actual behaviour

No error message is logged, and the Terminal session keeps hangin.

Environment

  • create-exposed-app version: latest
  • Node.js version: v10.13.0
  • npm version: 6.4.1
  • Operating System and version: Windows 7
  • Device used: N/A
  • Browser name and version: N/A

Additional

No ideas.


βœ… Checklist

Add .env support

Enhancement

This is useful for every project I know of.

Notes:

  • Include item in .gitignore file
  • Include .env.example file (is this the convention?)
  • Include items in documentation for developers to alter the .env file
  • Import manually within source files, or force the import via CLI scripts?

Not all markdown files are linted

πŸ› Bug report

Not all markdown files are linted when running npm run lint:markdown.

Steps to reproduce

  1. Create a markdown file that fails linting in .github directory
  2. `npm run lint:markdown"

Expected behavior

Linting should fail

Actual behaviour

Linting is successful

Checklist

'dev' command alerts to type errors and interrupts build

✨ Enhancement Request

Running npm run dev should simply compile files.

Currently the npm run dev command is also building DTS files, which runs type checking. If something breaks type checking, the build shows a failure.

This is not ideal. Type checking should be a separate process manually run after development, along with linting and testing. Having type checking errors during development breaks the flow.


βœ… Checklist

Implement README.md badges

Enhancement

Example:

[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)

There are many many more.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.