/tg-oss

Teselagen Open Source modules

Primary LanguageJavaScriptMIT LicenseMIT

Teselagen's Open Source Mono Repo

Packages

@teselagen/ove (open-source vector editor - a tool for viewing and manipulating DNA/AA sequences)

@teselagen/ui (reusable react components)

@teselagen/bio-parsers (parsers and formatters for genbank/fasta/json/snapgene/geneious/jbei-xml)

@teselagen/sequence-utils (util functions for working with biological sequences (dna/rna/protein))

@teselagen/range-utils (util functions for working with biological ranges e.g. {start: 2, end: 61})

@teselagen/file-utils (util functions for working with files and blobs)

Repo Philosophy

This is a monorepo composed of multiple packages under /packages. There are two types of packages, utils and ui (react) packages. UI packages have everything util packages have but also have a demo and e2e cypress tests. The config files for each package should extend the root config files.

NX

We use NX to run tasks (https://nx.dev) and cache the task results. NX allows us to only lint/build/test the packages that have changed since the last commit and caches the results of the tasks for efficient reruns.

Getting Started (CONTRIBUTING)

Install Deps

yarn

Install vscode extension for nx

Run commands (build/start/test/lint etc..) from the nx extension in vscode or from the command line

Or run them manually from the command line

nx run <package-name>:<command>

eg
nx run ui:start
nx run ove:start
nx run ove:launch-e2e
nx run ove:build
nx run --target:<command>

eg
nx run-many --target:build
nx run-many --target:build

Profit!

How to Publish

using the vscode command prompt (cmd+shift+p): Nx: run-many publish Execute: nx run-many --target=publish