Giter Club home page Giter Club logo

nodeproto's Introduction

@nodeproto

  • product development starterkit

    • focuses on full stack node+react apps running on AWS
    • vagrant + docker in dev (todo)
    • docker in prod (todo)
    • this project will become the base for the core nirvai web app
  • hard requirements for develop branch

    • dependency requirements
      • all images pushed to @nodeproto registry on aws
      • Arangodb (todo)
      • ClickHouse (todo)
      • Consul (todo)
      • flowtype >= 0.171.0
      • haproxy (needs virtualization)
      • koa => 2
      • node + corepack >= 17.5 (17.6 is out!)
      • OpenSSL >= 1.1.1 for TLSv1.3 support
      • pnpm >= 6.30.1
      • react + react-dom @rc (or @next)
      • Signoz APM (todo)
    • process requirements
      • package.json.config is controlled by root/package.json and synced to child packages via tools/jsync
      • all packages export reusable type definitions as @nodeproto/packagename/src/libdefs
    • cultural boundaries
      • best in class > most popular
      • bleeding edge always
      • monorepo microservices > multirepo microservices
      • read the code > read the comments
      • specification > kitchen sinks
      • terse clarity > verbose expressiveness
      • tests are first class citizens
      • trunk > branch

TLDR

npm scripts

  • you can prepend before any npm script
    • proto or proto:script cmd to run in all packages
      • proto runs cmds in each pkg via ultra
      • proto:script runs cmds in each pkg via pnpm
    • ultra to run via ultra-runner

uninstall

  • to remove this repository completely from your system
  • delete the /var/.nodeproto directory, and this repository

installation (contributing)

  • vagrant (recommended), requires >= v2.2
  vagrant up
  vagrant ssh
  cd /opt/nodeproto
  • bare metal
  # dependency + pnpm metadata
  sudo mkdir /var/.nodeproto
  sudo chown -R $(whoami):$(whoami) /var/.nodeproto
  pnpm install-completion
  pnpm install
  pnpm proto:script build
  pnpm proto:script repo:test
  • other hellpful cmds
  # dependencies
  pnpm proto repo:flowtyped:install # install flowtype defs
  pnpm proto repo:jsync # synchronize root/package.json into each package/package.json

  # validation
  pnpm proto repo:lint

  # introspection
  pnpm repo:deps:graph
  pnpm repo:scripts:v

updating

  pnpm proto repo:update # updates all deps to latest

running tests & lints

  pnpm repo:lint # runs eslint (fix mode), prettier, flow + type coverage
  pnpm repo:eslint # runs eslint flow & prettier, fails on first package with lint errs
  pnpm repo:eslint:fix # same as above, but doesnt fail
  pnpm repo:flow:coverage # runs flow with type def coverage
  pnpm flow # detailed flowtype analysis
  pnpm flow stop|start # restart flow server, sometimes it fails to pick up changes to deep external libdefs
  pnpm repo:test # run tests
  pnpm repo:testing # watch & rerun tests in a single package
  pnpm repo:test:file somefile # run a specific test file

nodeproto's People

Contributors

noahehall avatar snyk-bot avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

nodeproto's Issues

consider setting default package versions in root/package.json

and having @nodeproto/jsync use those versions on matching dependencies

e.g. we want to use react 18 alpha only if react is currently used in a subpackage

  • currently if we add react18 to root it will install in all subpackages unless each subpackage disables overloading of dependencies

debug options

everything should be debuggable

  • babel
  • eslint
  • swc
  • browserslist
  • flowtype
  • esbuild
  • webpack
  • easy to turn on/off

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.