Repository: BentoumiTech/denox Branch: master Commit: bc6cfdfb30fa Files: 131 Total size: 66.6 KB Directory structure: gitextract_ms61bagw/ ├── .editorconfig ├── .eslintrc.js ├── .github/ │ ├── ISSUE_TEMPLATE.md │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ └── ci.yml ├── .vscode/ │ └── denox.code-workspace ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── denox.ts ├── deps.ts ├── dev_deps.ts ├── example/ │ ├── deno-workspace │ ├── files/ │ │ └── test.txt │ └── main.ts ├── src/ │ ├── const.ts │ ├── deno_options/ │ │ ├── __tests__/ │ │ │ ├── build_cli_arguments.test.ts │ │ │ ├── parse.test.ts │ │ │ ├── utils.test.ts │ │ │ └── validate.test.ts │ │ ├── build_cli_arguments.ts │ │ ├── const.ts │ │ ├── parse.ts │ │ ├── utils.ts │ │ └── validate.ts │ ├── interfaces.ts │ ├── lib/ │ │ ├── semver.ts │ │ └── upgrade_version.ts │ ├── parser/ │ │ ├── __tests__/ │ │ │ └── deno_workspace.test.ts │ │ └── deno_workspace.ts │ ├── run.ts │ └── utils/ │ ├── DenoXErrors.ts │ ├── __tests__/ │ │ ├── file.test.ts │ │ └── fixture/ │ │ ├── file.txt │ │ └── list-files/ │ │ ├── second.txt │ │ └── third.txt │ ├── consolex.ts │ └── file.ts └── test/ ├── e2e/ │ ├── args.test.ts │ ├── deno_options/ │ │ ├── options.test.ts │ │ └── scoped_global.test.ts │ └── scripts.test.ts ├── fixture/ │ ├── args/ │ │ ├── deno-workspace.ts │ │ └── main.ts │ ├── deno_options/ │ │ ├── deno-workspace.yml │ │ ├── files/ │ │ │ ├── import_map.json │ │ │ ├── test.cer │ │ │ ├── test.txt │ │ │ └── tsconfig.json │ │ ├── main.ts │ │ ├── permissions.ts │ │ ├── quiet.ts │ │ └── seed.ts │ ├── global_permission/ │ │ ├── deno-workspace │ │ ├── files/ │ │ │ └── test.txt │ │ └── main.ts │ ├── malformed_json/ │ │ └── deno-workspace.json │ ├── malformed_ts/ │ │ └── deno-workspace.ts │ ├── malformed_yaml/ │ │ └── deno-workspace │ ├── merged_scoped_global__invalid_permission/ │ │ ├── deno-workspace │ │ ├── files/ │ │ │ └── test.txt │ │ └── main.ts │ ├── multiple_scripts/ │ │ ├── deno-workspace │ │ ├── develop.ts │ │ └── main.ts │ ├── no_workspace/ │ │ └── .keep │ ├── script_global_permission/ │ │ ├── deno-workspace │ │ ├── files/ │ │ │ └── test.txt │ │ └── main.ts │ ├── script_permission/ │ │ ├── deno-workspace │ │ ├── files/ │ │ │ └── test.txt │ │ └── main.ts │ ├── single_script/ │ │ ├── deno-workspace │ │ └── main.ts │ └── workspace_multiple_names/ │ ├── .deno-workspace/ │ │ ├── .deno-workspace │ │ ├── .deno-workspace.json │ │ ├── .deno-workspace.ts │ │ ├── .deno-workspace.yaml │ │ ├── .deno-workspace.yml │ │ ├── deno-workspace.json │ │ └── deno-workspace.ts │ ├── .deno-workspace.json/ │ │ ├── .deno-workspace.json │ │ ├── .deno-workspace.ts │ │ └── deno-workspace.ts │ ├── .deno-workspace.ts/ │ │ └── .deno-workspace.ts │ ├── .deno-workspace.yaml/ │ │ ├── .deno-workspace.json │ │ ├── .deno-workspace.ts │ │ ├── .deno-workspace.yaml │ │ ├── deno-workspace.json │ │ └── deno-workspace.ts │ ├── .deno-workspace.yml/ │ │ ├── .deno-workspace.json │ │ ├── .deno-workspace.ts │ │ ├── .deno-workspace.yaml │ │ ├── .deno-workspace.yml │ │ ├── deno-workspace.json │ │ └── deno-workspace.ts │ ├── deno-workspace/ │ │ ├── .deno-workspace │ │ ├── .deno-workspace.json │ │ ├── .deno-workspace.ts │ │ ├── .deno-workspace.yaml │ │ ├── .deno-workspace.yml │ │ ├── deno-workspace │ │ ├── deno-workspace.json │ │ ├── deno-workspace.ts │ │ └── deno-workspace.yaml │ ├── deno-workspace.json/ │ │ ├── .deno-workspace.json │ │ ├── .deno-workspace.ts │ │ ├── deno-workspace.json │ │ └── deno-workspace.ts │ ├── deno-workspace.ts/ │ │ ├── .deno-workspace.ts │ │ └── deno-workspace.ts │ ├── deno-workspace.yaml/ │ │ ├── .deno-workspace │ │ ├── .deno-workspace.json │ │ ├── .deno-workspace.ts │ │ ├── .deno-workspace.yaml │ │ ├── .deno-workspace.yml │ │ ├── deno-workspace.json │ │ ├── deno-workspace.ts │ │ └── deno-workspace.yaml │ └── deno-workspace.yml/ │ ├── .deno-workspace │ ├── .deno-workspace.json │ ├── .deno-workspace.ts │ ├── .deno-workspace.yaml │ ├── .deno-workspace.yml │ ├── deno-workspace │ ├── deno-workspace.json │ ├── deno-workspace.ts │ ├── deno-workspace.yaml │ └── deno-workspace.yml └── utils/ ├── cwd.ts └── denox-run.ts ================================================ FILE CONTENTS ================================================ ================================================ FILE: .editorconfig ================================================ # See http://editorconfig.org/ # EditorConfig helps developers define and maintain consistent coding styles # between different editors and IDEs. The EditorConfig project consists of a # file format for defining coding styles and a collection of text editor plugins # that enable editors to read the file format and adhere to defined styles. # EditorConfig files are easily readable and they work nicely with version # control systems. root = true [*] indent_style = space indent_size = 2 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true [*.md] trim_trailing_whitespace = false ================================================ FILE: .eslintrc.js ================================================ module.exports = { root: true, parser: "@typescript-eslint/parser", plugins: [ "@typescript-eslint", ], rules: { "@typescript-eslint/ban-ts-ignore": 0, "no-console": 0, "no-else-return": "error", "@typescript-eslint/no-use-before-define": 0, "@typescript-eslint/camelcase": 0, "no-prototype-builtins": 0, "max-lines-per-function": [ "error", { "max": 20, "skipComments": true, }, ], "no-shadow": "error", "max-params": [ "error", 3, ], "max-statements-per-line": [ "error", { "max": 2, }, ], "complexity": [ "error", 15, ], "no-undef": 0, }, "overrides": [ { "files": ["*.test.ts"], "rules": { "max-lines-per-function": 0, }, }, ], extends: [ "eslint:recommended", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", ], }; ================================================ FILE: .github/ISSUE_TEMPLATE.md ================================================ ## Issue Type - Bug Report - Feature Request - Other ## Expected ## Actual ## Possible Solutions ## Info - DenoX version: ================================================ FILE: .github/PULL_REQUEST_TEMPLATE.md ================================================ ## Description Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. **Types of changes** What types of changes does your code introduce? Keep the one that applies: - New feature (non-breaking change which adds functionality) - Bugfix (non-breaking change which fixes an issue) - Change of existing functionality - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Docs **Related links** Related links section, that would have a link to issues and any other relevant information. ## Changelog #### Added #### Changed #### Removed #### Fixed ================================================ FILE: .github/workflows/ci.yml ================================================ name: CI on: [push] jobs: build: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] deno: [1.0.5, 1.1.3, 1.2.2] steps: - uses: actions/checkout@v2 with: fetch-depth: '0' - uses: denolib/setup-deno@master with: deno-version: ${{ matrix.deno }} - uses: actions/setup-node@v1 with: node-version: '12' - run: npm install typescript eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin tsc-silent --save-dev - run: ./node_modules/.bin/eslint **/**.ts --ext .ts - run: deno install -Af denox.ts - run: deno test -A --failfast src/ test/ ================================================ FILE: .vscode/denox.code-workspace ================================================ { "folders": [ { "path": ".." } ], "settings": { "deno.enabled": true } } ================================================ FILE: CONTRIBUTING.md ================================================ Contributing ---------------------------------- 1. File an issue to notify the maintainers about what you're working on. 2. Fork the repo, develop and test your code changes, add docs. 3. Make sure that your commit messages clearly describe the changes. 4. Send a pull request. File an Issue ---------------------------------- Use the issue tracker to start the discussion. It is possible that someone else is already working on your idea, your approach is not quite right, or that the functionality exists already. The ticket you file in the issue tracker will be used to hash that all out. Style Guides ------------------- 1. Write in UTF-8 in TypeScript 2. User modular architecture to group similar functions, classes, etc. 3. Always use 2 spaces for indentation (don't use tabs) 4. Try to limit line length to 80 characters 5. Class names should always be capitalized 6. Function names should always be camelCase 7. Look at the existing style and adhere accordingly 8. Run `deno fmt` before submitting your code Fork the Repository ------------------- Be sure to add the relevant tests before making the pull request. Make the Pull Request --------------------- Once you have made all your changes, tests, and updated the documentation, make a pull request to move everything back into the main branch of the `repository`. Be sure to reference the original issue in the pull request. Expect some back-and-forth with regards to style and compliance of these rules. ================================================ FILE: LICENSE.md ================================================ The MIT License Copyright (c) 2020 Khaled Bentoumi Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================


Deno script runner

GitHub Workflow Status latest SemVer Contribution welcome Commitizen friendly Semantic release MIT License

Install/UpgradeOverviewUsageGetting startedContributing

DenoX screenshot example

## Install/Upgrade Prerequisites: [Deno](https://github.com/denoland/deno_install) (>=1.0.0) ```bash $ deno install -Af -n denox https://denopkg.com/BentoumiTech/denox/denox.ts ``` ## Overview DenoX is a cross platform script runner and workspace wrapper for Deno Using DenoX, you can set up your workspace scripts permissions and options in declarative code. In short, it allows you to to replace this: ```bash $ deno run --allow-read --allow-write --allow-net main.ts ``` with this: ```bash $ denox run start ``` - **DRY** Only write your permissions and options once. - **Packaged** Your code can run on a different machine with a short single command `denox run start` - **Cross Platform** DenoX support and is tested on Linux, Mac OS and Windows. - **Extensible** :soon: ## Usage ```bash $ denox --help denox v0.4.0 Usage: $ denox [options] Commands: run