Skip to content

Latest commit

 

History

History
65 lines (45 loc) · 2.41 KB

File metadata and controls

65 lines (45 loc) · 2.41 KB

Dependencies

Deno

esbuild

Directory structure

nonportable/

  • deps.js -- deno-specific deps: io, stdlib -- should not be bundled
  • io.js -- abstractions over deno-specific i/o

portable/

  • main.js
  • importDirective.js

bundlable/

  • deps.b.js -- pure JS deps -- should be bundled -- this is a symlink to either:
    • deps.blocal.js -- links to the JS deps that point to repos on the local machine -- for fast development
    • deps.bremote.js -- links to the JS deps that point to remote repos, specific versions -- for release

node/

  • nonportable/
    • deps.js -- node-specific deps: io, stdlib -- same interface as the deno-specific ones
    • io.js -- same abstractions as for the deno-specific i/o, but realized for node
  • portable/ -- contains copies of /portable/*
  • bundlable/
    • deps.b.js -- bundle with the pure JS deps, made by deno from /bundlable/deps.b.js

NOTE: node/nonportable/* MUST NOT BE DELETED -- they are unique to node and should be manually kept in sync with their deno counterparts in /

NOTE2: other than node/nonportable/* NEVER EDIT node/* -- it is continuously generated by deno from the deno version which is the source of truth

scripts/

  • linkLocalDeps.sh -- use for local development
  • linkRemoteDeps.sh -- use before release/push
  • makeNode.sh -- turns deno-based jevko-cli into a node-based jevko-cli -- puts it in node/
  • watchNode.sh -- use for local dev -- incremental version of makeNode.js -- uses deno file watching capabilities to rebuild files on change
    • watchNode.js -- used by the above; looks at the pure JS files of jevko-cli
    • watchNode2.js -- whenever the node version is updated by deno, this copies the updated files to jevko-vscode, so the updates can be reflected there
  • test.sh -- run tests thru deno

NOTE: run scripts in the root of the project, e.g.:

sh scripts/...

rather than:

cd scripts
sh ...
  • localConfig.template.jevkodata -- a template for
    • localConfig.jevkodata which contains configuration data specific to the local dev env; after each edit this file should be converted via the jevko-cli into
      • localConfig.json -- this is then imported by scripts such as watchNode2.js