summaryrefslogtreecommitdiff
path: root/cli/file_fetcher.rs
AgeCommit message (Collapse)Author
2020-05-31fix: media type for .cjs and application/node (#6005)Bartek Iwańczuk
2020-05-20refactor: reorganize TS compiler (#5603)Bartek Iwańczuk
2020-05-18refactor: rewrite TS dependency analysis in Rust (#5029)Bartek Iwańczuk
This commit completely overhauls how module analysis is performed in TS compiler by moving the logic to Rust. In the current setup module analysis is performed using "ts.preProcessFile" API in a special TS compiler worker running on a separate thread. "ts.preProcessFile" allowed us to build a lot of functionality in CLI including X-TypeScript-Types header support and @deno-types directive support. Unfortunately at the same time complexity of the ops required to perform supporting tasks exploded and caused some hidden permission escapes. This PR introduces "ModuleGraphLoader" which can parse source and load recursively all dependent source files; as well as declaration files. All dependencies used in TS compiler and now fetched and collected upfront in Rust before spinning up TS compiler. To achieve feature parity with existing APIs this commit includes a lot of changes: * add "ModuleGraphLoader" - can fetch local and remote sources - parses source code using SWC and extracts imports, exports, file references, special headers - this struct inherited all of the hidden complexity and cruft from TS version and requires several follow up PRs * rewrite cli/tsc.rs to perform module analysis upfront and send all required source code to TS worker in one message * remove op_resolve_modules and op_fetch_source_files from cli/ops/compiler.rs * run TS worker on the same thread
2020-05-11refactor: check permissions in SourceFileFetcher (#5011)Bartek Iwańczuk
This PR hot-fixes permission escapes in dynamic imports, workers and runtime compiler APIs. "permissions" parameter was added to public APIs of SourceFileFetcher and appropriate permission checks are performed during loading of local and remote files.
2020-05-07fix(imports): fix panic on unsupported scheme (#5131)Bartek Iwańczuk
2020-05-07fix(deno_dir): better error message (#5120)Yoshiya Hinosawa
Add better error messages when a cache subdirectory in `DENO_DIR` cannot be created.
2020-04-15remove calls to futures::executor::block_on (#4760)Bartek Iwańczuk
2020-04-03clippy (#4618)Kitson Kelly
2020-03-10Add global "quiet" flag (#4135)Florian Häglsperger
2020-03-06Add content type for wasm, fix encoding in wasm test fixture (#4269)Aurélien Bertron
2020-02-28http_cache: change .headers.json to .metadata.json (#4175)Ryan Dahl
Add original URL to metadata. This is so the VS Code Plugin can reverse look up the URL for cache entries. Ref #4069.
2020-02-28Support TypeScript eval through `deno eval -T` flag (#4141)Kevin (Kun) "Kassimo" Qian
2020-02-28fetch_cached_remote_source support redirect URL without base (#4099)Kevin (Kun) "Kassimo" Qian
2020-02-25Remove _async from method names since _sync are gone (#4128)Ryan Dahl
2020-02-23refactor: use OpError instead of ErrBox for errors in ops (#4058)Bartek Iwańczuk
To better reflect changes in error types in JS from #3662 this PR changes default error type used in ops from "ErrBox" to "OpError". "OpError" is a type that can be sent over to JSON; it has all information needed to construct error in JavaScript. That made "GetErrorKind" trait useless and so it was removed altogether. To provide compatibility with previous use of "ErrBox" an implementation of "From<ErrBox> for OpError" was added, however, it is an escape hatch and ops implementors should strive to use "OpError" directly.
2020-02-21refactor: remove unneeded ErrorKinds (#3936)Bartek Iwańczuk
2020-02-19refactor: rewrite file_fetcher to use async fns, lift blocking call (#4037)Bartek Iwańczuk
2020-02-19refactor: rewrite HTTP cache for file fetcher (#4030)Bartek Iwańczuk
2020-02-19Support loading additional TS lib files (#3863)Kitson Kelly
Fixes #3726 This PR provides support for referencing other lib files (like lib.dom.d.ts that are not used by default in Deno.
2020-02-18refactor: cleanup cli/lib.rs (#4006)Bartek Iwańczuk
* rename methods on Worker related to module loading * reorganize cli/lib.rs * remove cli/progress.rs and cli/shell.rs
2020-02-17feat: add --cert flag for http client (#3972)geoFlux
2020-02-12fix: Correctly determine a --cached-only error (#3979)Nayeem Rahman
2020-02-04Do not encode files loaded from network as utf8 (#3856)Tilman Roeder
2020-02-03Use tokio::test for some of cli's unit tests (#3868)Ryan Dahl
2020-02-02Remove //tests symlink (#3849)Luka Hartwig
2020-01-26Improve support of type definitions (#3755)Kitson Kelly
2020-01-26fix clippy warnings (#3798)Ben Noordhuis
2020-01-24Do not panic and improve error message on cache failure (#3784)Kevin (Kun) "Kassimo" Qian
2020-01-20refactor: reduce number of ErrorKind variants (#3662)Bartek Iwańczuk
2020-01-16perf: share http client in file fetcher (#3683)Bartek Iwańczuk
2020-01-11Add gzip, brotli and ETag support for file fetcher (#3597)EnokMan
2020-01-05Rename crates: 'deno' to 'deno_core' and 'deno_cli' to 'deno' (#3600)Ry Dahl
2020-01-04Use async at places, use &self instead of self: &Self (#3594)Gurwinder Singh
2020-01-02Happy new year! (#3578)Ry Dahl
2020-01-01cleanup after tokio upgrade (#3571)Gurwinder Singh
tokio_util::run and tokio::run_on_current_thread should accept Future<Output=()> instead of Future<Output=Result<(), ()>>. Currently, all the passed futures have to add Ok(()) or futures::future::ok(()) unnecessarily to call this method.
2019-12-23Upgrades rust to 1.40.0 (#3542)Axetroy
2019-12-15Use async-await at few places, fix spelling mistake (#3499)Gurwinder Singh
2019-12-03feat: Add --no-remote, rename --no-fetch to --cached-only (#3417)Nayeem Rahman
2019-11-25better error message for missing module (#3402)Bartek Iwańczuk
2019-11-22remove tokio_util::block_on (#3388)Bartek Iwańczuk
This PR removes tokio_util::block_on - refactored compiler and file fetcher slightly so that we can safely block there - that's because only blocking path consist of only synchronous operations. Additionally I removed excessive use of tokio_util::panic_on_error and tokio_util::run_in_task and moved both functions to cli/worker.rs, to tests module. Closes #2960
2019-11-16Use futures 0.3 API (#3358)Bartek Iwańczuk
2019-11-15Fix remote .wasm import content type issue (#3351)Kevin (Kun) "Kassimo" Qian
2019-11-14Loader: support .wasm imports (#3328)Kevin (Kun) "Kassimo" Qian
* loader: support .wasm imports * http_server: true * Support named exports * Clippy
2019-10-17feat: --reload flag to take arg for partial reload (#3109)Michał Sabiniarz
Example: To reload only std modules --reload=https://deno.land/std/
2019-10-16fix: remote jsx/tsx files were compiled as js/ts (#3125)Yusuke Sakurai
2019-10-06remove more calls to tokio_util::block_on (#3059)Bartek Iwańczuk
towards #2960
2019-10-04Merge deno_cli_snapshots into deno_cli (#3064)Ryan Dahl
2019-10-02feat: JSX Support (#3038)Yusuke Sakurai
2019-09-19Remove test.py, use cargo test as test frontend (#2967)Ryan Dahl
Fixes #2933
2019-09-04Run tests after "cargo build" on travis (#2854)Ryan Dahl