GithubHelp home page GithubHelp logo

jurassiscripts / velociraptor Goto Github PK

View Code? Open in Web Editor NEW
682.0 10.0 23.0 396 KB

The npm-style script runner for Deno

Home Page: https://velociraptor.run

License: MIT License

TypeScript 99.64% Shell 0.36%
deno npm-scripts npm-run script-runner package-json scripts git-hooks

velociraptor's Introduction

Velociraptor is a script runner for Deno, inspired by npm's package.json scripts. It offers a similar experience but with out-of-the-box support for declarative Deno CLI options, environment variables, concurrency and git hooks.

CI Version GitHub stars vr scripts

Documentation

To get started visit velociraptor.run.

Help

If you need any help feel free to ask in discussions or in the chat.

Badge

Show your collaborators/users you use velociraptor:

[![vr scripts](https://badges.velociraptor.run/flat.svg)](https://velociraptor.run)

vr scripts

Contributing

Feedback and PRs are welcome! Take a look at the contributing guidelines.

License

This project is licensed under the MIT License. See LICENSE for details.

velociraptor's People

Contributors

0xflotus avatar ayntee avatar beckend avatar c4spar avatar gsbain avatar hyperupcall avatar joeljuca avatar kidonng avatar littledivy avatar lowlighter avatar nnmrts avatar paambaati avatar pangoraw avatar tony133 avatar trs avatar ulthuan avatar umbopepato avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

velociraptor's Issues

Install command not working

Hello,

First of all, @umbopepato thanks for the work you're doing!

I'm taking my first look at Deno and came here from the 1st Deno mailing list issue. After running the install command deno install --allow-read --allow-env --allow-run -n vr https://deno.land/x/velociraptor/cli.ts from the documentation, I'm getting 404 error

error: Uncaught Error: Import 'https://deno.land/[email protected]/fs/read_file_str.ts' failed: 404 Not Found

deno --version

deno 1.0.0-rc2
v8 8.4.300
typescript 3.8.

Please, take a look

oak/oak_graphql blocks serial execution

scripts:
  start: 
    - server.ts  # app.listen({port: 8080})
    - client.ts

client.ts script never runs.

Is this issue with oak/oak_graphql or velociraptor? how can I run both scripts serially?

Extend the run command to local deps

If the script identifier is not found in the scripts section, search in dependencies and use the name to resolve the path to the local binary to execute.

$ vr run somecli [...args]
πŸ‘‡
$ ./bin/somecli [...args]

help and version params dont work

Is your feature request related to a problem? Please describe.

When running vr --help, velociraptor thinks I am trying to run a script with the name --help:

$ vr --help
error: Script --help not found
Run vr without arguments to see a list of available scripts.

Describe the solution you'd like

Velociraptor should follow what is defined in the completion created and what is shown when running vr help, vr --help, vr -V and vr -h should show the help/version.

I think the problem will be resolved when c4spar/deno-cliffy#27 is implemented. In the meantime, I have created fixes on #33.

`vr` command not found after installation

Command I ran from https://velociraptor.run/docs/installation/ :

deno install -qAn vr https://deno.land/x/[email protected]/cli.ts

New terminal window in zsh

$ vr
zsh: command not found: vr

Tried to reinstall it by running command again (with -f flag) but get a module not found error

error: Cannot resolve module "file:///Users/<username>/pathtomyapp/vr".

MacOS Catalina 10.15.4
deno 1.13.1 (release, x86_64-apple-darwin)
v8 9.3.345.11
typescript 4.3.5

Let me know if there is any other information I can provide. Thanks!

Add Javascript Support

Instead of JSON and YAML, I'd prefer to use a JavaScript module. For example, instead of this JSON:

{
  "scripts": {
    "start": "deno run --allow-net server.ts",
    "test": "deno test --allow-net server_test.ts"
  }
}

or this YAML:

# scripts.yaml
scripts:
  start: deno run --allow-net server.ts
  test: deno test --allow-net server_test.ts

I prefer this:

let options = {};
options.scripts = {};
options.scripts.start = "deno run --allow-net server.ts";
options.scripts.test = "deno test --allow-net server_test.ts";
export options;

Granted, my preference is more verbose. However, nothing is more flexible. You could do anything you wanted (programmatically) within this file and Velociraptor should only care about the object that gets exported at the end.

Support description for composite scripts

Take this script.yaml for example –

scripts:
  onething:
    desc: Do a simple thing
    cmd: echo "simple"
  manythings:
    - desc: Do some thing first
      cmd: echo "thing number 1"
    - desc: Do another thing next
      cmd: echo "thing number 2"

vr outputs this –

$ vr

  πŸ¦– Available scripts

    β€’ onething
    Do a simple thing
    $ echo "simple"

    β€’ manythings
    $ echo "thing number 1", echo "thing number 2"

You'll notice that composite scripts don't have a description. I understand we can't have a top-level field for description because composite scripts are an array. Perhaps we could just print the descriptions of each script? Something like this –

$ vr

  πŸ¦– Available scripts

    β€’ onething
    Do a simple thing
    $ echo "simple"

    β€’ manythings
    Do some thing first
    Do another thing next
    $ echo "thing number 1", echo "thing number 2"

Add self-update features

An upgrade subcommand could be used to launch a deno install and upgrade to the latest available version:

$ vr upgrade

PRO It's much, much shorter than the full install command.
CON A certain version can't know if deno install flags have changed in a newer version.

Also, vr, when called without arguments or with a subcommand other than upgrade, could prompt the user if an update is available.

CON The --allow-net flag is needed.

How about using Conventional Commits on Velociraptor?

This issue is more of a suggestion than a feature addition. I think Velociraptor would benefit from using something like Conventional Commits a lot. Being able to tell what a commit do would be great, and keeping yourself up to date with what's going on with the codebase by reading the commit log would be easier.

What do you think? Does it make sense for you as a project maintainer?

Feature request - Allow passing patterns to `watch`

It would be good to support patterns for watch. I.e.

scripts.json

{
  "scripts": {
    "start": {
      "cmd": "deno run --unstable mod.ts",
      "watch": "*.ts,*.json"
    },
  }
}

Based on denoland/deno#2401 (comment) Deno supports deno run --watch=./**/*.ts,./**/*.tsx server.ts kind of syntax.

Looking at the code, the command builder would have to be extended to support strings beyond booleans (case DenoOptions.watch: { in code).

add possibility for `velociraptor.yaml` file

was wondering if there were any considerations to allow the naming of the file to be velociraptor.yaml, velociraptor.json, etc. instead of just scripts.yaml? would be willing to create pr for this - thoughts?

Extend the script configuration schema

Add the install and dependencies top-level sections:

interface InstallOptions extends Omit<DenoCliOptions, 'watch'> {
  entry: string;
  name?: string;
  location?: string;
  prompt?: boolean;
  seed?: number;
}

export interface ScriptsConfiguration extends ScriptOptions {
  scripts: Scripts;
  install: InstallOptions;
  dependencies: Record<string, string | InstallOptions>;
}

pre-commit hook fails in fish shell

Using v1.0.2 of velociraptor.

Given this scripts file:

#scripts.yml
scripts:
  fmt:
    cmd: deno fmt --ignore=deno_dir
    gitHook: pre-commit

I get the following error when trying to commit:

$ git commit
fish: Unsupported use of '='. In fish, please use 'set GIT_ARGS ("$@")'.

error: Failed at the pre-commit script

Windows escape handling is not accurate

Steps to reproduce

velociraptor.json

{
  "scripts": {
    "bundle": "deno run --unstable --allow-read --allow-write --allow-env --allow-net https://deno.land/x/[email protected]/cli.ts --config denopack_config.ts --dir dist --input"
  }
}

PS> &vr run bundle source.ts

Expected behavior

Normal execution like the following.

PS> deno.exe "run" "--allow-read" "--allow-write" "--allow-net" "--allow-env" "--unstable" "https://deno.land/x/[email protected]/cli.ts" --config denopack_config.ts --dir dist --input source.ts
denopack completed in 1037ms

Actual behavior

PS> &vr run bundle source.ts
error: Uncaught Error: Could not load "source.ts": Cannot access the file system (via "fs.readFile") when using the browser build of Rollup. Make sure you supply a plugin with custom resolveId and load hooks to Rollup.
    at https://unpkg.com/[email protected]/dist/es/rollup.browser.js:11:317808
    at Ua.addModuleSource (https://unpkg.com/[email protected]/dist/es/rollup.browser.js:11:323588)
    at async Ua.fetchModule (https://unpkg.com/[email protected]/dist/es/rollup.browser.js:11:325400)
    at async Promise.all (index 0)
error: Failed at the bundle script

Additional context

The followings is the command lines of the executed processes.

"C:\ProgramData\chocolatey\lib\deno\deno.exe" "run" "--allow-read" "--allow-write" "--allow-net" "--allow-env" "--allow-run" "--allow-plugin" "--allow-hrtime" "--quiet" "https://deno.land/x/[email protected]/cli.ts" run bundle source.ts
"C:\Windows\system32\cmd.exe" /d /s /c "deno run --unstable --allow-read --allow-write --allow-env --allow-net https://deno.land/x/[email protected]/cli.ts --config denopack_config.ts --dir dist --input \"source.ts\""
deno  run --unstable --allow-read --allow-write --allow-env --allow-net https://deno.land/x/[email protected]/cli.ts --config denopack_config.ts --dir dist --input \"source.ts\"

In buildShellArgs shell command is passed as single string, and it seems that cmd cannot process doubly escaped command according to the line 2.

Install command

Details

Name: install
Alias: i
Arguments:

  1. In case of global (-g, --global) and local vr-powered installations
$ vr install [-g, --global] [-r, --reload] <specifier> # Where specifier = [registry:]<package>[@version]
# IE
$ vr install awesomecli
$ vr install -g nest:[email protected]
  1. In case of local deno-like installations they replicate deno install (except for --root, --force, --reload)
- $ deno install --allow-net --allow-read -n serve https://deno.land/[email protected]/http/file_server.ts
+ $ vr install --allow-net --allow-read -n serve https://deno.land/[email protected]/http/file_server.ts

Action

Adding a dependency
We should find a way to safely distinguish the two cases (ie presence of the -g flag or remote URLs?) and generate and execute a deno install command either from the parameters in case 2 or from the remote vr configuration (install entry) in case 1.

Updating a dependency
If a compatible entry is found in the local vr configuration, the dependency is not installed unless a corresponding executable is not present in the local bins folder or unless the -r, --reload flag is used. If the entries differ by the registry or version, a new install is always performed (a @latest version tag could be used to forcefully install the latest version of a dep?).

Initializing dependencies from an existing configuration
Like npm, running vr install without arguments installs all the dependencies found in the configuration locally. If a bin folder is already present, it checks wether all the deps have a corresponding executable and installs it otherwise.

Security considerations

Since in case 1 the permissions are hidden in the remote configuration, it might be appropriate to at least show the final deno installΒ command that is being executed (with or without a confirmation prompt?) so that the user can decide to uninstall/reinstall the CLI with a custom install command.

Always create a lockfile for these installs?

VrCommand parses additional arguments

While the arguments are still forwarded correctly, their syntax is normalized to --option [value] (removing any = signs). These may cause unintended effects when forwarded to CLIs that require a particular syntax (see #69).

CLI installation helpers

This feature combines @bcomnes 's local CLI dependencies proposal with our vr install proposal.

Features

The install command

This command has two main purposes:

  • allow consumers of CLIs that use Velociraptor to install them with simple commands,
  • allow Velociraptor users to locally install CLIs they use in their scripts.

Global install

A new section of vr config files would be used to advertise CLI project's installation command:

# awesomecli/scripts.yaml

install:
  entry: ./cli.ts
  name: awesomecli
  allow: [env, read, write]

scripts:
  ...

So that users of awesomecli can install it with a simple command:

$ vr install -g awesomecli[@version]
# Translates to deno install --allow-env --allow-read --allow-write --name awesomecli https://<registry@version>/cli.ts

This new section would use a variant of the config structure already used by scripts entries:

interface InstallOptions extends Omit<DenoCliOptions, 'watch' | 'inspect' | 'inspectBrk'> {
  entry: string;
  name?: string;
  location?: string;
  prompt?: boolean;
  seed?: number;
}

Registries

The command would try to resolve the dependency from a default registry (ie deno.land/x/) unless another registry is manually specified, ie:

$ vr install -g nest:[email protected]
$ vr install -g github:user/[email protected]

Local install

The install command, used without the -g, --global flag and inside a project with a valid vr configuration, would save the dependency as project-local inside a new section of vr config files:

scripts:
  ...

dependencies: # Or deps? tools?
  somecli:
    entry: https://deno.land/x/somecli/cli.ts
    allow: [read, write]
    ...

Where dependencies is a Record<string, InstallOptions>.

This would happen in two ways:

1. Installing tools that don't use Velociraptor

In this case users can simply replace deno with vrΒ in the installation script recommended by the author:

- $ deno install --allow-net --allow-read -n serve https://deno.land/[email protected]/http/file_server.ts
+ $ vr install --allow-net --allow-read -n serve https://deno.land/[email protected]/http/file_server.ts

2. Installing tools that use Velociraptor and advertise their installation commands

Easy, just run:

$ vr install somecli

In this case the dependency entry could be simplified to a specifier+version combination like:

dependencies:
  somecli: ^2.3.4

Install location and $PATH patching

As per @bcomnes 's proposal these dependencies would be installed in a local folder (.bin? .vr-bin?) via deno install's --rootΒ option. When running scripts vr would check whether the .bin folder exists and is up to date with the dependencies in the config file and deno install them otherwise. Vr would add the .bin folder to $PATH when running scripts.

Run locally installed CLIs

Just like scripts, dependencies could be made runnable via the vr run command:

dependencies:
  somecli: ^2.3.4
$ vr run somecli [...args]
# Translates to
$ ./.bin/somecli [...args]

Init command

Using some of the logic from the previous points we could implement the Project scaffolder proposal: a special script name (init?) could be resolved and run from remote script configurations in order to perform project initialization tasks (Γ  la npm init <package>):

vr init oak
# Would search for a script in a script configuration in https://deno.land/x/oak/...
# and (if present) execute the `init` script

Potential issues

Discovering advertised install commands from registries could be cumbersome if we have to make one network request for each possible combination of script config file name and extension:

GET https:/deno.land/x/somecli/scripts.yaml
GET https:/deno.land/x/somecli/scripts.yml
GET https:/deno.land/x/somecli/scripts.json
GET https:/deno.land/x/somecli/scripts.ts
GET https:/deno.land/x/somecli/velociraptor.yaml
GET https:/deno.land/x/somecli/velociraptor.yml
GET https:/deno.land/x/somecli/velociraptor.json
GET https:/deno.land/x/somecli/velociraptor.ts

We could mitigate this by restricting the install advertisement functionality to a single file name though.

PermissionDenied for denon cmd

Below config works with deno run mod.ts command but fails for denon run mod.ts command

Versions:
deno: 1.8.1
denon: v2.4.7
velociraptor: v1.0.0-beta.17

allow:
  - net

scripts:
  start: 
    cmd: denon run mod.ts  # deno run mod.ts works
    allow:
      net: 127.0.0.1

minor bug: "No scripts available" doesn't occur on an empty file

i accidentally made an empty scripts.yaml and ran vr. there seems to be a thing for no scripts available, but if you have a fully blank yaml file, you get this instead

error: Uncaught (in promise) TypeError: Cannot read property 'scripts' of undefined
    !configData.config.scripts ||
                       ^
    at validateConfigData (https://deno.land/x/[email protected]/src/validate_config_data.ts:10:24)
    at runScript (https://deno.land/x/[email protected]/src/run_script.ts:16:3)
    at VrCommand.fn (https://deno.land/x/[email protected]/src/cli/commands/vr.ts:29:15)
    at VrCommand.execute (https://deno.land/x/[email protected]/command/command.ts:966:18)
    at VrCommand.parse (https://deno.land/x/[email protected]/command/command.ts:894:27)

i think this is cause an empty file parses to undefined so that should be checked.

deno 1.7.5 isolatedModules

Uncaught (in promise) TypeError: TS1205 [ERROR]: Re-exporting a type when the '--isolatedModules' flag is provided requires using 'export type'.
export { ScriptsConfiguration } from "./src/scripts_config.ts";
         ~~~~~~~~~~~~~~~~~~~~
    at https://deno.land/x/[email protected]/mod.ts:1:10

Then tried to use a custom tsconfig.json with:

{
  "compilerOptions": {
    "importsNotUsedAsValues": "remove",
    "isolatedModules": false
  }
}

Running:

Unsupported compiler options in "/home/admin/.deno/bin/vr.tsconfig.json".
  The following options were ignored:
    isolatedModules
error: Uncaught (in promise) TypeError: TS1205 [ERROR]: Re-exporting a type when the '--isolatedModules' flag is provided requires using 'export type'.
export { ScriptsConfiguration } from "./src/scripts_config.ts";
         ~~~~~~~~~~~~~~~~~~~~
    at https://deno.land/x/[email protected]/mod.ts:1:10

Add support for managing dependencies in deps.ts

Is your feature request related to a problem? Please describe.
npm cli provides a way to manage dependencies using npm install.

  • For example: npm install express

This command either adds a dependency or devDependency in package.json (documentation)

Although velociraptor is just advertised as a script runner for deno, it would be more useful if it can mange dependencies too (in deps.ts)

Describe the solution you'd like
velociraptor cli has an equivalent cli for add dependency.

  • For example, vr add https://deno.land/x/oak/mod.ts

The above command could populate dependency in deps.ts

export * as oak from "https://deno.land/x/oak/mod.ts";

Describe alternatives you've considered
Manually managing dependencies in deps.ts

Deno 1.1.2 breaks velocipraptor

vr --help
sh: 0: getcwd() failed: No such file or directory
thread 'main' panicked at 'called Result::unwrap() on an Err value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', cli/worker.rs:141:16

Question: Working with `trex`

Heyo. I'm new to Deno and have been doing homework about equivalents to my favorite and oft used Node features for tooling and DX. I'm really liking what you all have setup with this project. In my readings I also stumbled across trex. If you aren't already aware of it, its main usefulness is in managing import maps, which as a first-version Node user, is appealing for the import DX. It also purports to support some assemblance of NPM scripts. However, I find vrs approach and feature set more appealing around scripts.

To that end, do the userbase / maintainers have any thoughts on novel approachs for streamlining use of trex for its import maps along side vr without having to require my peers to add another CLI command to their muscle memory?

Scripts supplemented by versioned bins

Have you given any thought or considered adding support for versioned tools similar to how npm supplements its script environment PATH with node_modules/.bin?

Not exactly sure what that would look like in a deno project, but roughly you would would list deno installable cli urls (and maybe permission flags) in a project file, have them installed into a local project folder, and then supplement the script shell's path to include these.

Thoughts? Maybe there are other tools out there providing this?

possible non wanted error [ERROR:vr] Unknown option: -1

hello πŸ‘‹

i was successfully running deno scripts through velociraptor, like so:

vr add foo 100

which maps to:

deno run --allow-env --allow-read --allow-write add.ts

add.ts is supposed to read Deno.args and do something with them.


the problem with velociraptor appeared when i ran:

vr add foo -100

which failed with [ERROR:vr] Unknown option: -1.
that's okay, it looks like an option and it's not a valid one.

but then i tried to wrap the value in quotes:

vr add foo "-100"

and got the same error.


now, it's not at all critical.
but when i ran the whole command manually, i got it working (with or without quotes):

$ deno run --allow-env --allow-read --allow-write add.ts foo -1000

so it's just something i wanted to point out
thanks for the good work on velociraptor! πŸ‘

bash completions throw a TypeError

  • deno v1.8.1
  • velociraptor v1.0.0-beta.17
  • bash 5.0.17

when using source <(vr completions bash) on the latest deno and vr, and press tab, it outputs

TypeError: Cannot read property 'reduce' of undefined

it seems to happen in any context, with a scripts file existing or not.

Cannot run Velociraptor in Deno ^1.13.0

Native plugins have been removed denoland/deno#10908.

So executing this command will raise an error:

vr

error: Found argument '--allow-plugin' which wasn't expected, or isn't valid in this context
        Did you mean --allow-run?

USAGE:
    deno run <SCRIPT_ARG>... --allow-env=<allow-env> --allow-net=<allow-net> --allow-read=<allow-read> --allow-run=<allow-run> --allow-write=<allow-write>

For more information try --help

pre-commit hook fails - Syntax error: "(" unexpected

I'm seeing my pre-commit hook fail in linux. I turned on debug logging - I saw it mentioned in another issue.

mupchrch /workspace/project $ git commit -m 'Trigger card ui infra'
Running > GIT_ARGS=("$@"); deno lint --config deno.json
sh: 1: Syntax error: "(" unexpected
error: Failed at the lint script

mupchrch /workspace/project $ echo $SHELL
/bin/bash

I guess ( isn't supported in bash? (Not sure, I'm not super knowledgable with shell scripting)

Initialize command

From the Project scaffolder proposal.

Details

Name: initialize
Alias: init
Arguments:

$ vr init <specifier> # Where specifier = [registry:]<package>[@version]

Action

The command should try to resolve a remote vr configuration file from the given specifier and (if present) execute the init command in such file.

Security considerations

Since the user would have no control over the permissions given to any Deno module executed by the script, a confirmation prompt that shows the command that's about to be executed might be appropriate.

GIT_ARGS NOT WORKING

I believe GIT_ARGS env is not set properly. Looks totally empty used at gitHook commit-msg

image

broken modules using Deno 1.2.0

with deno 1.2.0 update some packages will be broken due to changes in lib std.

I get an error with all other commands that are broken they will throw errors.
I tried to reinstall and cache reloading but couldn't.
I get the following error

$ vr start
error: TS2345 [ERROR]: Argument of type 'string | URL' is not assignable to parameter of type 'string'.
  Type 'URL' is not assignable to type 'string'.
  return new URL(url).pathname
                 ~~~
    at https://deno.land/[email protected]/path/win32.ts:917:18

TS2345 [ERROR]: Argument of type 'string | URL' is not assignable to parameter of type 'string'.
  Type 'URL' is not assignable to type 'string'.
  return new URL(url).pathname;
                 ~~~
    at https://deno.land/[email protected]/path/posix.ts:438:18

Found 2 errors.

"write" permission not allowed in list of values for "allow"

While trying to configure my module scripts, I stumbled upon a squiqqly orange warning underline in Visual Studio Code (using https://github.com/jurassiscripts/vscode-velociraptor) after adding "write" to the list of permissions under the key "allow" in my scripts.json:

Bildschirmfoto 2021-03-27 um 10 42 43

Examining this further, it seems like the value "write" is not in the list of allowed values, even though it should be:

Bildschirmfoto 2021-03-27 um 10 43 14

According to the readme of velociraptor, the section Permissions states that Deno permissions can be specified using the allow key, of which all but "write" can be specified without a warning.

I created this issue here because the vscode extension (at least at the moment) is only a "wrapper" around code in this repository and any fix there would actually be a fix here.

My suggestion would be to add write?: string | boolean; here to the AllowFlags interface in scripts_config.ts, for which I will add a PR shortly.

Install and run errors on Deno v1.11.0

deno version: 1.11.0
os: fedora 34

when i try to install with this command:
deno install -qAn vr https://deno.land/x/[email protected]/cli.ts

or run script with vr run [script-name], i got this error:

error: TS2339 [ERROR]: Property 'operator' does not exist on type 'never'.
    if (high!.operator === comp || high!.operator === ecomp) {
              ~~~~~~~~
    at https://deno.land/x/[email protected]/mod.ts:1744:15

TS2339 [ERROR]: Property 'operator' does not exist on type 'never'.
    if (high!.operator === comp || high!.operator === ecomp) {
                                         ~~~~~~~~
    at https://deno.land/x/[email protected]/mod.ts:1744:42

TS2339 [ERROR]: Property 'operator' does not exist on type 'never'.
      (!low!.operator || low!.operator === comp) &&
             ~~~~~~~~
    at https://deno.land/x/[email protected]/mod.ts:1751:14

TS2339 [ERROR]: Property 'operator' does not exist on type 'never'.
      (!low!.operator || low!.operator === comp) &&
                              ~~~~~~~~
    at https://deno.land/x/[email protected]/mod.ts:1751:31

TS2339 [ERROR]: Property 'semver' does not exist on type 'never'.
      ltefn(version, low!.semver)
                          ~~~~~~
    at https://deno.land/x/[email protected]/mod.ts:1752:27

TS2339 [ERROR]: Property 'operator' does not exist on type 'never'.
    } else if (low!.operator === ecomp && ltfn(version, low!.semver)) {
                    ~~~~~~~~
    at https://deno.land/x/[email protected]/mod.ts:1755:21

TS2339 [ERROR]: Property 'semver' does not exist on type 'never'.
    } else if (low!.operator === ecomp && ltfn(version, low!.semver)) {
                                                             ~~~~~~
    at https://deno.land/x/[email protected]/mod.ts:1755:62

Found 7 errors.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.