summaryrefslogtreecommitdiff
path: root/cli/global_state.rs
AgeCommit message (Collapse)Author
2020-10-13refactor(cli): rename GlobalState to ProgramState (#7914)Bartek Iwańczuk
2020-10-07refactor(cli): remove TextDocument (#7850)Kitson Kelly
2020-10-07refactor(cli): cleanups to new module graph (#7846)Kitson Kelly
2020-09-30fix(cli): use global_state file_fetcher when using SpecifierHandler (#7748)Kitson Kelly
Fixes: #7709
2020-09-29refactor: improve graph and tsc_config (#7747)Kitson Kelly
2020-09-26refactor: combine MainWorker::new and MainWorker::create (#7693)Bartek Iwańczuk
* combine MainWorker::new and MainWorker::create * remove compiler_starts fields * make op_state types explicit for readability
2020-09-26refactor: use JsRuntime to implement TSC (#7691)Bartek Iwańczuk
This commits removes "CompilerWorker" in favor of using "JsRuntime". "cli/ops/compiler.rs" has been removed in favor of inline registration of ops in "cli/tsc.rs"
2020-09-25refactor(cli/inspector): make server optional (#7656)Casper Beyer
This makes inspector registration with the server with optional and explicit to allow for inspectors to exist without spinning up the server. As a side effect of the server being explicitly passed around it also makes it possible to bind multiple servers.
2020-09-25refactor: new module graph used for no check (#7621)Kitson Kelly
2020-09-21refactor: remove GlobalState::compile_lock (#7598)Bartek Iwańczuk
2020-09-20refactor: remove CliState, use OpState, add CliModuleLoader (#7588)Bartek Iwańczuk
- remove "CliState.workers" and "CliState.next_worker_id", instead store them on "OpState" using type aliases. - remove "CliState.global_timer" and "CliState.start_time", instead store them on "OpState" using type aliases. - remove "CliState.is_internal", instead pass it to Worker::new - move "CliState::permissions" to "OpState" - move "CliState::main_module" to "OpState" - move "CliState::global_state" to "OpState" - move "CliState::check_unstable()" to "GlobalState" - change "cli_state()" to "global_state()" - change "deno_core::ModuleLoader" trait to pass "OpState" to callbacks - rename "CliState" to "CliModuleLoader"
2020-09-15cli/msg.rs -> cli/media_type.rsRyan Dahl
2020-09-15refactor: use the 'anyhow' crate instead of 'ErrBox' (#7476)Bert Belder
2020-09-14refactor: use ParsedModule and improve MediaTypes enum (#7456)Kitson Kelly
2020-09-12Revert "feat(unstable): Support data: urls (#5157)" (#7432)Bartek Iwańczuk
This reverts commit e3319f34a6ece36eab3138eae83c8d0e18fcc07c.
2020-09-11feat(unstable): Support data: urls (#5157)Valentin Anger
2020-09-07feat(info): Dependency count and sizes (#6786)KrisChambers
This commit changes "deno info" subcommand logic. - Modules are no longer loaded into V8 isolate - analysis is done using ModuleGraph. - Removed deno_core::Deps structure. - Modules are no longer type-checked and transpiled - "compiled" file is shown only if it is already available. - Added number of unique dependencies for root module. - Changed tree output: - file size is shown next to the dependency - repeated dependencies are marked with "*" - used less spaces in prefix to save terminal width
2020-09-06refactor(core): rename CoreIsolate to JsRuntime (#7373)Bartek Iwańczuk
deno_core/ - rename core_isolate.rs to runtime.rs - rename CoreIsolate to JsRuntime - rename JSError to JsError - rename JSStackFrame to JsStackFrame cli/ - update references from deno_core::CoreIsolate to deno_core::JsRuntime - rename deno_core::JSError to deno_core::JsError - rename fmt_errors::JSError to fmt_errors::JsError
2020-09-06refactor(core): merge CoreIsolate and EsIsolate (#7370)Bartek Iwańczuk
2020-09-06Move JSON ops to deno_core (#7336)Bert Belder
2020-08-19refactor: move cli/doc/ to separate crate (#7103)Bartek Iwańczuk
2020-08-19Make Rc/Arc wrapper around State/GlobalState visible (#7104)Bert Belder
2020-08-03fix(cli): add support for non-UTF8 source files (#6789)Maayan Hanin
Fixes: #5542
2020-07-28refactor: Use SWC to strip types for "--no-check" flag (#6895)Bartek Iwańczuk
2020-07-17fix: providing empty source code for missing compiled files (#6760)Bartek Iwańczuk
This commit adds a fallback mechanism for absent compiled source file. Because imported type declaration files are not emitted by TS compiler and their imports are not elided users often hit "No such file or directory" error. With this commit in such situation an empty source file will be provided to V8 with a warning to the user suggesting using "import type"/ "export type" syntax instead.
2020-07-12feat(cli): add DENO_CERT environment variable (#6370)Oscar Linde
2020-07-08feat: add --no-check option (#6456)Kitson Kelly
This commit adds a "--no-check" option to following subcommands: - "deno cache" - "deno info" - "deno run" - "deno test" The "--no-check" options allows to skip type checking step and instead directly transpiles TS sources to JS sources. This solution uses `ts.transpileModule()` API and is just an interim solution before implementing it fully in Rust.
2020-07-02refactor: lock file (#6569)Bartek Iwańczuk
- refactor lock file creation - provide deterministic output in lock file (alphabetically sorted) - dynamic imports are checked against lock file
2020-06-30refactor: Improvements to TsCompiler and its tests (#6576)Kitson Kelly
2020-06-24Incremental compilation for TypeScript (#6428)Bartek Iwańczuk
This commit adds incremental compilation capabilities to internal TS compiler. Instead of using "ts.createProgram()" API for compilation step (during deno startup), "ts.createIncrementalProgram()" API is used instead. Thanks to TS' ".tsbuildinfo" file that already stores all necessary metadata for compilation I was able to remove our own invention that is ".graph" file. ".tsbuildinfo" file is stored alongside compiled source and is used to cache-bust outdated dependencies, facilitated by the "version" field. The value for "version" field is computed in Rust during loading of module graph and is basically a hash of the file contents. Please keep in mind that incremental compilation is only used for initial compilation (or dynamic imports compilation) - bundling and runtime compiler APIs haven't been changed at all. Due to problems with source map I changed compilation settings to inline source map (inlineSourceMap instead of sourceMap).
2020-06-19refactor(compiler): split code paths for compile and bundle (#6304)Bartek Iwańczuk
* refactor "compile" and "runtimeCompile" in "compiler.ts" and factor out separate methods for "compile" and "bundle" operations * remove noisy debug output from "compiler.ts" * provide "Serialize" implementations for enums in "msg.rs" * rename "analyze_dependencies_and_references" to "pre_process_file" and move it to "tsc.rs" * refactor ModuleGraph to use more concrete types and properly annotate locations where errors occur * remove dead code from "file_fetcher.rs" - "SourceFile.types_url" is no longer needed, as type reference parsing is done in "ModuleGraph" * remove unneeded field "source_path" from ".meta" files stored for compiled source file (towards #6080)
2020-06-15fix(compiler): JSX compilation and provide better error message (#6300)Bartek Iwańczuk
2020-06-13Move to allowlist and blocklist (#6282)Luca Casonato
2020-06-10fix: several regressions in TS compiler (#6177)Bartek Iwańczuk
This commit fixes several regressions in TS compiler: * double compilation of same module during same process run * compilation of JavaScript entry point with non-JS imports * unexpected skip of emit during compilation Additional checks were added to ensure "allowJs" setting is used in TS compiler if JavaScript has non-JS dependencies.
2020-06-01fix: compile TS dependencies of JS files (#6000)Bartek Iwańczuk
This commit fixes regression that caused TS dependencies not being compiled. Check was added that ensures TS compiler is run if any of dependencies in module graph is TS/TSX/JSX.
2020-05-29refactor: TS compiler and module graph (#5817)Bartek Iwańczuk
This PR addresses many problems with module graph loading introduced in #5029, as well as many long standing issues. "ModuleGraphLoader" has been wired to "ModuleLoader" implemented on "State" - that means that dependency analysis and fetching is done before spinning up TS compiler worker. Basic dependency tracking for TS compilation has been implemented. Errors caused by import statements are now annotated with import location. Co-authored-by: Ryan Dahl <ry@tinyclouds.org>
2020-05-24fix: create HTTP cache lazily (#5795)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-11fix: source maps in inspector (#5223)Bartek Iwańczuk
This commit fixes problems with source maps in Chrome Devtools by substituting source map URL generated by TS compiler with actual file URL pointing to DENO_DIR. Dummy value of "source_map_url" has been removed from "ScriptOrigin". Also fixes lock file which used compiled source code to generate lock hash; it now uses source code of the file that is being compiled.
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-08refactor: Remove cli::compilers module (#5138)Bartek Iwańczuk
This PR removes "cli/compilers/" directory. "cli/compilers/ts.rs" has been renamed to "cli/tsc.rs"
2020-05-07BREAKING: Remove support for .wasm imports (#5135)Bartek Iwańczuk
Importing .wasm files is non-standardized therefore deciding to support current functionality past 1.0 release is risky. Besides that .wasm import posed many challenges in our codebase due to complex interactions with TS compiler which spawned thread for each encountered .wasm import. This commit removes: - cli/compilers/wasm.rs - cli/compilers/wasm_wrap.js - two integration tests related to .wasm imports
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-05-04Rename DenoPermissions, add abs path asserts (#5076)Ryan Dahl
2020-05-02BREAKING: remove support for JSON imports (#5037)Bartek Iwańczuk
This commit removes support for importing JSON files as modules. This change is dictated by security; browsers rolled back on this support as well.
2020-04-06fix: fetch reference types for JS files (#4652)Giorgi Rostomashvili
Fixes #4000 and fixes #4476. Now always tries to fetch reference types for JS files. Does not throw if it fails, since Typescript compiler will complain if the file is not there(it will try to fetch it again first) and people who just use JS should not be bothered by this error. Not sure about my test, it passes and catches the bug but maybe there is a better way to express it.
2020-04-03clippy (#4618)Kitson Kelly
2020-04-03Make inspector more robust, add --inspect-brk support (#4552)Bert Belder
2020-03-27feat: Support Inspector / Chrome Devtools (#4484)Ryan Dahl
This is a first pass implementation which is still missing several important features: - support for --inspect-brk (#4503) - support for source maps (#4501) - support for piping console.log to devtools console (#4502) Co-authored-by: Bert Belder <bertbelder@gmail.com> Co-authored-by: Matt Harrison <mt.harrison86@gmail.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2020-02-26DenoFlags -> Flags (#4136)Ryan Dahl