0.2.2 • Published 1 year ago

monoduck v0.2.2

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
1 year ago

Monoduck

What is it?

  • Monoduck is a Typescript-first, monolithic repository of subpackages.
  • To avoid bloat, it has absolutely no dependencies, and all peerDependencies are optional.
  • And to keep things tree-shakable, only named exports are used.

Production Readiness

  • Monoduck is not generally ready for production use, but it's getting there.
  • However, it should be stable enough for use in internal apps, and POCs.

What's included?

  • Lookduck: React state manager with automatic dependency management for derived state.
  • Tapiduck: End-to-end type-safe APIs with fullstack intillisense. Simple and restful-ish.
  • Patchduck: TS-first, React-friendly utility for deep-patching (deep-spreading) objects.
  • Utilduck: Commonly used, Underscore-style, typed utils like _.map, _.deepClone, etc.
  • Sqlduck: A thin Sequelize wrapper. Plays well with Zod. Prioritizes simplicity & type-safety.
  • Roqsduck: Intentionally simple, query-string based, client-side routing for React apps.

Code Style & Preferences

Monoduck uses ts-standard for code-styling and linting. This way, one needn't manually configure lint rules. The codebase also has a few additional conventions, listed below. While most of these conventions are not strict requirements, the codebase tries to follow all of them.

  • Prefer functions over classes.
  • Mildly prefer interfaces over types, but prefer types for functions.
  • Avoid this. If unavoidable, go with const self = this and use self.
  • Prefer function over =>. (Latter is OK for one-liners like x => x + 1)
  • Prefer named exports over default exports, and avoid * imports.
  • Prefer unknown over any. For return types, prefer void over unknown.
  • Prefer const over let, and don't use var.
  • Bool vars should begin with is, has, etc. (eg. isAdmin, hasAccess)
  • Functions that return bools should end with is, has, etc. (eg. oddIs)
  • Strictly prefer === over ==. Never use ==, not even == null.
  • Prefer if..else over switch. (Latter is OK if each case just returns.)
0.2.1

1 year ago

0.2.0

1 year ago

0.1.8

1 year ago

0.2.2

1 year ago

0.1.7

2 years ago

0.1.0

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago

0.0.0

2 years ago