All Projects → syumai → dem

syumai / dem

Licence: MIT license
A module version manager for Deno.

Programming Languages

typescript
32286 projects
Makefile
30231 projects

Labels

Projects that are alternatives of or similar to dem

dataStructure
Implement different Data Structures using TypeScript and JavaScript. Deno Third-party Module.
Stars: ✭ 24 (-58.62%)
Mutual labels:  deno
microdiff
A fast, zero dependency object and array comparison library. Significantly faster than most other deep comparison libraries and has full TypeScript support.
Stars: ✭ 3,138 (+5310.34%)
Mutual labels:  deno
lmdb-js
Simple, efficient, ultra-fast, scalable data store wrapper for LMDB
Stars: ✭ 270 (+365.52%)
Mutual labels:  deno
deno registry2
The backend for the deno.land/x service
Stars: ✭ 79 (+36.21%)
Mutual labels:  deno
snatchblock
A strictly typed utility library.
Stars: ✭ 1,059 (+1725.86%)
Mutual labels:  deno
johanbrook.com
Naming the repo "johanbrook.com" was a mistake.
Stars: ✭ 17 (-70.69%)
Mutual labels:  deno
crypto
🔐 Fastest crypto library for Deno written in pure Typescript. AES, Blowfish, CAST5, DES, 3DES, HMAC, HKDF, PBKDF2
Stars: ✭ 40 (-31.03%)
Mutual labels:  deno
deno-csv
Streaming API for reading and writing CSV for https://deno.land/
Stars: ✭ 34 (-41.38%)
Mutual labels:  deno
nanoid
A NanoID implementation for Deno
Stars: ✭ 63 (+8.62%)
Mutual labels:  deno
jike-sdk
Ⓙ Jike SDK for Node.js / Deno / browser
Stars: ✭ 34 (-41.38%)
Mutual labels:  deno
youtube-sr
Simple library for Node, Deno & Bun to make YouTube search easily
Stars: ✭ 68 (+17.24%)
Mutual labels:  deno
deno-pokemon
a simple api to create and explore pokemons - made with oak deno framework
Stars: ✭ 20 (-65.52%)
Mutual labels:  deno
maze generator
A work-in-progress Javascript maze generator module, compatible with both Deno and Node. 🌽
Stars: ✭ 35 (-39.66%)
Mutual labels:  deno
http4ts
Server as a Function http toolkit for TypeScript & JavaScript
Stars: ✭ 30 (-48.28%)
Mutual labels:  deno
aqua
A minimal and fast 🏃 web framework for Deno
Stars: ✭ 219 (+277.59%)
Mutual labels:  deno
denocker
A Docker client library for Deno
Stars: ✭ 23 (-60.34%)
Mutual labels:  deno
angular deno
Angular Deno - Experimental Angular renderer in server with Deno
Stars: ✭ 78 (+34.48%)
Mutual labels:  deno
hex
An ecosystem delivering practices, philosophy and portability. Powered By Deno and JavaScript.
Stars: ✭ 48 (-17.24%)
Mutual labels:  deno
bundle
An online tool to quickly bundle & minify your projects, while viewing the compressed gzip/brotli bundle size, all running locally on your browser.
Stars: ✭ 475 (+718.97%)
Mutual labels:  deno
calcite
A rust framework for creating deno plugins
Stars: ✭ 62 (+6.9%)
Mutual labels:  deno

dem

Build Status

  • A simple module version manager for Deno.
  • dem creates dem.json and links script files with version.
    • linked scripts are stored in vendor directory.
  • dem provides an easy way to update dependencies.

Example

Using https://deno.land/std/http/server.ts at v0.51.0

  • dem.json
    • generated file like a package.json
{
  "modules": [
    {
      "protocol": "https",
      "path": "deno.land/std",
      "version": "v0.51.0",
      "files": [
        "/http/server.ts"
      ]
    }
  ]
}
  • vendor/https/deno.land/std/http/server.ts
    • generated linked script includes version specified in dem.json
export * from "https://deno.land/[email protected]/http/server.ts";
  • example.ts
    • script to run
// You can import module without the version.
import { serve } from "./vendor/https/deno.land/std/http/server.ts";

Install

deno install --allow-read --allow-write --allow-net -f -n dem https://deno.land/x/[email protected]/cmd.ts

Usage

Getting Started

1. dem init to create dem.json

$ dem init
successfully initialized the project.

2. dem add to add module.

$ dem add https://deno.land/[email protected]
successfully added new module: https://deno.land/std, version: v0.51.0

3. Edit your script and import module from vendor.

example.ts

import * as path from './vendor/https/deno.land/std/fs/path.ts';

console.log(path.join(Deno.cwd(), 'example'));

4. dem ensure to resolve modules.

$ dem ensure
successfully created link: https://deno.land/[email protected]/fs/path.ts

5. Run your script.

$ deno example.ts

Standard Usage

Updating module

  • dem update updates versions in dem.json and linked scripts.
$ dem update https://deno.land/[email protected]
successfully updated module: https://deno.land/std, version: v0.52.0

Advanced Usage

Alias

  • With alias, shortened script paths are available.

example.ts

// Original
import * as dejs from "./vendor/https/deno.land/x/dejs/mod.ts"
// With alias
import * as dejs from "./vendor/dejs.ts"

How to use alias

  1. execute dem alias.
# create alias for module.
$ dem alias https://deno.land/x/dejs/mod.ts dejs.ts # ./vendor/dejs.ts will be created.
  1. import script using alias path
import * as dejs from "./vendor/dejs.ts"
  1. run dem ensure.
# create link for `./vendor/https/deno.land/x/dejs/mod.ts`.
$ dem ensure

Commands

dem init                                          # initialize dem.json
dem add https://deno.land/x/[email protected]            # add module `dejs` and set its version to `0.1.0`
dem link https://deno.land/x/dejs/mod.ts          # create link of `[email protected]/mod.ts` and put it into vendor.
dem update https://deno.land/x/[email protected]         # update module to `0.2.0`
dem unlink https://deno.land/x/dejs/mod.ts        # remove link of `[email protected]/mod.ts`.
dem remove https://deno.land/x/dejs               # remove module `dejs`
dem ensure                                        # resolve file paths of added modules used in project and link them.
dem prune                                         # remove unused modules and linked scripts.
dem alias https://deno.land/x/dejs/mod.ts dejs.ts # create alias for module and put it into vendor.
dem unalias dejs.ts                               # remove alias for module.

Unsupported features

  • default export
  • manage .d.ts file

Author

syumai

License

MIT

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].