All Projects → Novaleaf → xlib

Novaleaf / xlib

Licence: MIT License
Your isomorphic toolbox

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to xlib

maxwelm
Maxwelm is a simple window manager for small displays
Stars: ✭ 20 (+11.11%)
Mutual labels:  xlib
quranicaudio-app
QuranicAudio.com Mobile App
Stars: ✭ 44 (+144.44%)
Mutual labels:  isomorphic
Contemplate
Contemplate: Fast, extendable object-oriented and light-weight Template Engine for PHP, Python, Node.js, Browser and XPCOM/SDK JavaScript
Stars: ✭ 15 (-16.67%)
Mutual labels:  isomorphic
book-monorepo-cicd
Effectively build, test, and deploy code with monorepos.
Stars: ✭ 59 (+227.78%)
Mutual labels:  monorepo
speckle-server
The Speckle Server, Frontend, 3D Viewer, & other JS utilities.
Stars: ✭ 224 (+1144.44%)
Mutual labels:  monorepo
monoreact
📦 React workspaces implementation
Stars: ✭ 13 (-27.78%)
Mutual labels:  monorepo
react-component-library-lerna
Build your own React component library managed with lerna, presented with storybook and published in private npm registry.
Stars: ✭ 55 (+205.56%)
Mutual labels:  monorepo
ng2-rest
Isomorphic, simple, robust REST API library for Browser and NodeJS, ( ts / js ) apps
Stars: ✭ 26 (+44.44%)
Mutual labels:  isomorphic
monopack
A JavaScript bundler for node.js monorepo-codebased applications.
Stars: ✭ 52 (+188.89%)
Mutual labels:  monorepo
vswm
A very stupid window manager.
Stars: ✭ 28 (+55.56%)
Mutual labels:  xlib
pacote
A box of goodies, in TypeScript.
Stars: ✭ 14 (-22.22%)
Mutual labels:  monorepo
smoovy
A collection of small and useful js packages (smooth scrolling, utils, etc.) preventing copy & paste
Stars: ✭ 25 (+38.89%)
Mutual labels:  monorepo
codeowners-generator
CODEOWNERS solution for mono repos
Stars: ✭ 16 (-11.11%)
Mutual labels:  monorepo
monorepo-typescript-next-the-sane-way
A monorepo example using TypeScript and Next.js
Stars: ✭ 104 (+477.78%)
Mutual labels:  monorepo
isomorphic-relay-boilerplate
No description or website provided.
Stars: ✭ 30 (+66.67%)
Mutual labels:  isomorphic
ocean-web
Blu's Design System
Stars: ✭ 25 (+38.89%)
Mutual labels:  monorepo
fetch
Isomorphic Wordpress API client and React hooks - super tiny, super fast.
Stars: ✭ 47 (+161.11%)
Mutual labels:  isomorphic
core
A library for making isomorphic React components with RxJS
Stars: ✭ 12 (-33.33%)
Mutual labels:  isomorphic
lerna-learning
基于Lerna管理packages的Monorepo项目最佳实践
Stars: ✭ 105 (+483.33%)
Mutual labels:  monorepo
go
Monorepo for small Go modules maintained by Tawesoft
Stars: ✭ 16 (-11.11%)
Mutual labels:  monorepo

ToC

REWRITE IN PROGRESS

Xlib is being rewritten from first principles. The current master branch of this repo is dedicated to this rewrite. The current npm xlib package points to [email protected] which is a stable, high quality core/util library for node. See the v17 branch for it's source.

The v17 branch is:

  • highly stable
  • full featured
  • used in production
  • available as the default npm xlib package

The problems with v17

  • too opinionated: had debugging and logging interactions built into the runtime. v18 includes a logger and source-map-support but doesn't do these automatically.
  • obsolete features
    • required Bluebird promises: bluebird was great before promises became a native part of javascript. v18 has xlib.promise which supports any promise implementation you use.
    • brittle axios: axios "works" but fails for advanced features (proxy, network failures, authentication). v18 uses gaxios instead and is less strongly tied to it.
    • no use of async/await: not in itself a reason to rewrite, but supporting async/await by default simplifies the api
  • node only: v18 targets browsers and node equally

The remainder of this readme is dedicated to the v18 rewrite.

XLIB v18+

Your isomorphic toolbox

Goals

  • Monorepo: the core xlib, tooling, and build verification projects all live in this repo
  • Docs: full online documentation
  • Promises: async / await by default
  • Isometric: full support for node and browser
  • Performance: take advantage of worker threads where it makes sense
  • Full Featured: aim to provide 80% of utility needs
  • Professional: no hacks, fully documented, deployment environment aware
  • Dev Experience: will include dev-env scafolding scripts and an easy build system
  • Lightweight: A library, not framework. No unexpected logging to console, tree-shake support

Non-Goals

  • Legacy browser support: Ignoring IE, but Edge-Classic support will be attempted
  • Legacy Node support: Development is done on Node 14.x. Node 12.x should work fine.
  • Dev Tooling Agnostism: Development is done on VSCode via ubuntu. You should be able to build/dev on windows, but it's not tested.
    • Win10 Tip: Use WSL for development!

R&D Status

Current v18.x is of develop build quality (meaning: do not use this right now).

Critical R&D complete. Now porting most useful xlib features to the new codebase.

The following signifiers will be attached to the v18 rewrite as work progresses

  • develop: not suitable for any use.
  • alpha: usable for PoC projects only.
  • beta: can be used for production, but features may be missing, and breaking changes should be expected between xlib versions

COMPLETE

  • isomorphic: xlib feature parity for browser and node projects
    • Full test suite runs (and passes) under Node and Evergreen Firefox + Chrome
  • typings: ensure dependent projects get sub-package typings automatically
    • basically, tsconfig.json has to be setup properly. for example, esModuleInterop:true
  • debugging: ensure dependent projects can debug into xlib's *.ts source files
    • dependent project's launch.json needs to properly setup the outFiles setting. see build-examples/xlib-node-basic
    • browser debugging properly sourcemaps to original .ts files
  • monorepo: develop xlib ecosystem as seperate projects within the same repository
    • use npm @microsoft/rush
  • upgradeability: ensure dependent modules can be properly upgraded in a reliable way
    • use rush check and rush dep-check and rush dep-upgrade for this workflow
  • documentation: proper code documentation, auto-gen from source
  • testing: isometric testing supported: mocha used in browsers, jest used in node.
    • jest doesn't work in browsers. didn't switch to full mocha because heft nicely runs jest tests when it builds typescript, and I don't want to spend the time figuring out to do similar with mocha.
    • however there is a problem, in that jest's expect library isn't available cross-platform and it doesn't seem easy to register another assertion lib to globally override jest's in node.
    • so currently working on building the xlib.diagnostics.logging module to handle this kind of work.

PENDING

  • publishing: ensure xlib ecosystem can be published to npm
  • basic react e2e: proof of concept using react to setup a real app (including ssl and dev vs production env)
  • doc site: a documenation site with full text search and versioning
  • modern promise libary
    • probably just use builtin promises
  • enterprise grade logging system (without the enterprise plumbing requirement)
    • ??? some plugable listener lib probably
  • isomorphic worker threads: currently using npm threads which works, but is brittle
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].