summaryrefslogtreecommitdiff
path: root/cli/lockfile.rs
AgeCommit message (Collapse)Author
2022-11-25refactor: move lockfile.rs to args module (#16818)David Sherret
This should be in the `args` folder as it's similar to `config_file`.
2022-11-10feat(lock): don't require --unstable for auto discovery (#16582)Bartek Iwańczuk
Enables discovery of lock file unconditionally (ie. not requiring "--unstable" flag) as long as there's a config file discovered.
2022-11-08feat(unstable/npm): support peer dependencies (#16561)David Sherret
This adds support for peer dependencies in npm packages. 1. If not found higher in the tree (ancestor and ancestor siblings), peer dependencies are resolved like a dependency similar to npm 7. 2. Optional peer dependencies are only resolved if found higher in the tree. 3. This creates "copy packages" or duplicates of a package when a package has different resolution due to peer dependency resolution—see https://pnpm.io/how-peers-are-resolved. Unlike pnpm though, duplicates of packages will have `_1`, `_2`, etc. added to the end of the package version in the directory in order to minimize the chance of hitting the max file path limit on Windows. This is done for both the local "node_modules" directory and also the global npm cache. The files are hard linked in this case to reduce hard drive space. This is a first pass and the code is definitely more inefficient than it could be. Closes #15823
2022-11-08fix(lock): only store integrities for http: and https: imports (#16558)Bartek Iwańczuk
2022-11-03fix(lock): add --no-lock flag to disable auto discovery of lock file (#16526)Bartek Iwańczuk
2022-11-03fix(lock): require --unstable flag to auto discover lockfile (#16524)Bartek Iwańczuk
2022-11-02fix(lock): autodiscovery of lockfile (#16498)Bartek Iwańczuk
This commit adds autodiscovery of lockfile. This only happens if Deno discovers the configuration file (either "deno.json" or "deno.jsonc"). In such case Deno tries to load "deno.lock" file that sits next to the configuration file, or creates one for user if the lockfile doesn't exist yet. As a consequence, "--lock" and "--lock-write" flags had been updated. "--lock" no longer requires a value, if one is not provided, it defaults to "./deno.lock" resolved from the current working directory. "--lock-write" description was updated to say that it forces to overwrite a lockfile. Autodiscovery is currently not handled by the LSP.
2022-11-01fix(lock): Additive lock file (#16500)Bartek Iwańczuk
This commit changes lockfile to be "additive" - ie. integrity check only fails if file/package is already specified in the lockfile, but its integrity doesn't match. If file/package is not present in the lockfile, it will be added to the lockfile and the lockfile will be written to disk.
2022-10-25fix(npm): add support for npm packages in lock files (#15938)Bartek Iwańczuk
This commit adds support for npm packages in the lock file.
2022-10-25fix: upgrade swc_ecma_parser to 0.122.19 - deno_ast 0.20 (#16406)David Sherret
2022-10-21refactor(lockfile): migrate from v1 to v2 in-memory (#16385)Bartek Iwańczuk
<!-- Before submitting a PR, please read http://deno.land/manual/contributing 1. Give the PR a descriptive title. Examples of good title: - fix(std/http): Fix race condition in server - docs(console): Update docstrings - feat(doc): Handle nested reexports Examples of bad title: - fix #7123 - update docs - fix bugs 2. Ensure there is a related issue and it is referenced in the PR text. 3. Ensure there are tests that cover the changes. 4. Ensure `cargo test` passes. 5. Ensure `./tools/format.js` passes without changing files. 6. Ensure `./tools/lint.js` passes. -->
2022-10-19feat: Add new lockfile format (#16349)Bartek Iwańczuk
Introduces a new lockfile format that will be used to support locking "npm" dependencies. Currently the format looks as follows: ``` // This file is automatically generated by Deno, do not edit its contents // manually. This file should be commited to your repository. { "version": "2", "remote": { "https://deno.land/std@0.160.0/http/server.ts": "asdwetsw44523asdfgfas..", "https://deno.land/std@0.160.0/http/file_server.ts": "asdwetsw44523asdfgfas.." } } ``` A follow up PR will add "npm" key that will be used to store information related to "npm" dependencies and their resolution. The new format is used when `--lock-write` is present, if user tries to load a lock file using the old format it will still work.
2022-10-18refactor: better errors in lockfile and preparation for new version (#16344)Bartek Iwańczuk
A small cleanup that improves errors in the lockfile as well as prepares for adding a new format of the lock file that will allow to provide backward compatibility with existing format (ie. "Lockfile::content" will be changed into an enum "LockfileContent" that will have "V1" and "V2" variants).
2022-04-01chore(tests): use custom temp dir creation for the tests (#14153)David Sherret
2022-03-29chore: upgrade dprint-core to 0.54.1 (#14146)David Sherret
2022-03-23chore: remove all `pub(crate)`s from the cli crate (#14083)David Sherret
2022-01-07chore: update copyright to 2022 (#13306)Ryan Dahl
Co-authored-by: Erfan Safari <erfanshield@outlook.com>
2021-12-07feat(cli): use deno fmt for lock and coverage files (#13018)WenheLI
2021-10-11refactor: integrate deno_graph into CLI (#12369)Kitson Kelly
2021-03-26remove macro_use (#9884)Ryan Dahl
2021-01-11chore: update copyright to 2021 (#9092)Yusuke Tanaka
2020-11-26refactor(cli): Remove unnecessary conversion into BTreeMap (#8498)Yusuke Tanaka
This commit removes unnecessary conversion into BTreeMap. The value that gets converted into BTreeMap is _originally_ BTreeMap, so this conversion is just superfluous. Additionally, a test is added so that we can make sure the keys in the emitted lockfile are sorted alphabetically.
2020-10-19feat(cli/installer): Add missing flags for deno install (#7601)Nayeem Rahman
This commit adds support for following flags: - deno install --importmap - deno install --no-remote - deno install --lock - deno install --lock-write - deno install --cached-only - deno install --v8-flags - deno install --seed
2020-10-05chore: add lockfile tests (#7816)JavascriptMick
Fixes #7653
2020-09-25refactor: new module graph used for no check (#7621)Kitson Kelly
2020-09-21refactor: use futures and serde_json from deno_core (#7614)Bartek Iwańczuk
2020-09-21chore: add copyright (#7593)tokiedokie
2020-09-06Move JSON ops to deno_core (#7336)Bert Belder
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-29refactor: util functions take slices instead of heap values (#6547)Valentin Anger
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-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"
2019-11-03feat: lockfiles (#3231)Ry Dahl
Use --lock-write=lock.json or --lock-check=lock.json on the command line.