diff options
author | crupest <crupest@outlook.com> | 2021-01-23 02:05:42 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2021-01-23 02:05:42 +0800 |
commit | 45cd92679a69d9f21928df31f1d8b250bfd8f213 (patch) | |
tree | 583ad7f474d5474c12eac68024c8c058eea48b34 /FrontEnd | |
parent | 2639774e3e3c90a6453e0d764f977f575dc56ec4 (diff) | |
download | timeline-45cd92679a69d9f21928df31f1d8b250bfd8f213.tar.gz timeline-45cd92679a69d9f21928df31f1d8b250bfd8f213.tar.bz2 timeline-45cd92679a69d9f21928df31f1d8b250bfd8f213.zip |
chore: Re-pnpify.
Diffstat (limited to 'FrontEnd')
-rw-r--r-- | FrontEnd/.yarn/sdks/eslint/lib/api.js | 2 | ||||
-rw-r--r-- | FrontEnd/.yarn/sdks/eslint/package.json | 2 | ||||
-rw-r--r-- | FrontEnd/.yarn/sdks/integrations.yml | 10 | ||||
-rwxr-xr-x[-rw-r--r--] | FrontEnd/.yarn/sdks/prettier/index.js | 10 | ||||
-rw-r--r-- | FrontEnd/.yarn/sdks/prettier/package.json | 2 | ||||
-rw-r--r-- | FrontEnd/.yarn/sdks/typescript/lib/tsc.js | 2 | ||||
-rw-r--r-- | FrontEnd/.yarn/sdks/typescript/lib/tsserver.js | 86 | ||||
-rw-r--r-- | FrontEnd/.yarn/sdks/typescript/lib/typescript.js | 2 | ||||
-rw-r--r-- | FrontEnd/.yarn/sdks/typescript/package.json | 2 |
9 files changed, 81 insertions, 37 deletions
diff --git a/FrontEnd/.yarn/sdks/eslint/lib/api.js b/FrontEnd/.yarn/sdks/eslint/lib/api.js index bbcd99d6..ac3c9fc0 100644 --- a/FrontEnd/.yarn/sdks/eslint/lib/api.js +++ b/FrontEnd/.yarn/sdks/eslint/lib/api.js @@ -2,7 +2,7 @@ const {existsSync} = require(`fs`); const {createRequire, createRequireFromPath} = require(`module`); -const {resolve, dirname} = require(`path`); +const {resolve} = require(`path`); const relPnpApiPath = "../../../../.pnp.js"; diff --git a/FrontEnd/.yarn/sdks/eslint/package.json b/FrontEnd/.yarn/sdks/eslint/package.json index d57cb9c3..4c6f31e4 100644 --- a/FrontEnd/.yarn/sdks/eslint/package.json +++ b/FrontEnd/.yarn/sdks/eslint/package.json @@ -1,6 +1,6 @@ { "name": "eslint", - "version": "7.12.1-pnpify", + "version": "7.18.0-pnpify", "main": "./lib/api.js", "type": "commonjs" } diff --git a/FrontEnd/.yarn/sdks/integrations.yml b/FrontEnd/.yarn/sdks/integrations.yml index bce9333e..76ed42ba 100644 --- a/FrontEnd/.yarn/sdks/integrations.yml +++ b/FrontEnd/.yarn/sdks/integrations.yml @@ -1,5 +1,5 @@ -# This file is automatically generated by PnPify.
-# Manual changes will be lost!
-
-integrations:
- - vscode
+# This file is automatically generated by PnPify. +# Manual changes will be lost! + +integrations: + - vscode diff --git a/FrontEnd/.yarn/sdks/prettier/index.js b/FrontEnd/.yarn/sdks/prettier/index.js index 984baf1d..80134e18 100644..100755 --- a/FrontEnd/.yarn/sdks/prettier/index.js +++ b/FrontEnd/.yarn/sdks/prettier/index.js @@ -14,6 +14,16 @@ if (existsSync(absPnpApiPath)) { // Setup the environment to be able to require prettier/index.js require(absPnpApiPath).setup(); } + + const pnpifyResolution = require.resolve(`@yarnpkg/pnpify`, {paths: [dirname(absPnpApiPath)]}); + if (typeof global[`__yarnpkg_sdk_is_using_pnpify__`] === `undefined`) { + Object.defineProperty(global, `__yarnpkg_sdk_is_using_pnpify__`, {configurable: true, value: true}); + + process.env.NODE_OPTIONS += ` -r ${pnpifyResolution}`; + + // Apply PnPify to the current process + absRequire(pnpifyResolution).patchFs(); + } } // Defer to the real prettier/index.js your application uses diff --git a/FrontEnd/.yarn/sdks/prettier/package.json b/FrontEnd/.yarn/sdks/prettier/package.json index 6a957f27..adf33891 100644 --- a/FrontEnd/.yarn/sdks/prettier/package.json +++ b/FrontEnd/.yarn/sdks/prettier/package.json @@ -1,6 +1,6 @@ { "name": "prettier", - "version": "2.1.2-pnpify", + "version": "2.2.1-pnpify", "main": "./index.js", "type": "commonjs" } diff --git a/FrontEnd/.yarn/sdks/typescript/lib/tsc.js b/FrontEnd/.yarn/sdks/typescript/lib/tsc.js index 4bc23fc2..e030711c 100644 --- a/FrontEnd/.yarn/sdks/typescript/lib/tsc.js +++ b/FrontEnd/.yarn/sdks/typescript/lib/tsc.js @@ -2,7 +2,7 @@ const {existsSync} = require(`fs`); const {createRequire, createRequireFromPath} = require(`module`); -const {resolve, dirname} = require(`path`); +const {resolve} = require(`path`); const relPnpApiPath = "../../../../.pnp.js"; diff --git a/FrontEnd/.yarn/sdks/typescript/lib/tsserver.js b/FrontEnd/.yarn/sdks/typescript/lib/tsserver.js index eaae166c..1d6dfb61 100644 --- a/FrontEnd/.yarn/sdks/typescript/lib/tsserver.js +++ b/FrontEnd/.yarn/sdks/typescript/lib/tsserver.js @@ -2,7 +2,7 @@ const {existsSync} = require(`fs`); const {createRequire, createRequireFromPath} = require(`module`); -const {resolve, dirname} = require(`path`); +const {resolve} = require(`path`); const relPnpApiPath = "../../../../.pnp.js"; @@ -10,11 +10,65 @@ const absPnpApiPath = resolve(__dirname, relPnpApiPath); const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath); const moduleWrapper = tsserver => { + const {isAbsolute} = require(`path`); + const pnpApi = require(`pnpapi`); + + const dependencyTreeRoots = new Set(pnpApi.getDependencyTreeRoots().map(locator => { + return `${locator.name}@${locator.reference}`; + })); + // VSCode sends the zip paths to TS using the "zip://" prefix, that TS // doesn't understand. This layer makes sure to remove the protocol // before forwarding it to TS, and to add it back on all returned paths. - const {isAbsolute} = require(`path`); + function toEditorPath(str) { + // We add the `zip:` prefix to both `.zip/` paths and virtual paths + if (isAbsolute(str) && !str.match(/^\^zip:/) && (str.match(/\.zip\//) || str.match(/\$\$virtual\//))) { + // We also take the opportunity to turn virtual paths into physical ones; + // this makes is much easier to work with workspaces that list peer + // dependencies, since otherwise Ctrl+Click would bring us to the virtual + // file instances instead of the real ones. + // + // We only do this to modules owned by the the dependency tree roots. + // This avoids breaking the resolution when jumping inside a vendor + // with peer dep (otherwise jumping into react-dom would show resolution + // errors on react). + // + const resolved = pnpApi.resolveVirtual(str); + if (resolved) { + const locator = pnpApi.findPackageLocator(resolved); + if (locator && dependencyTreeRoots.has(`${locator.name}@${locator.reference}`)) { + str = resolved; + } + } + + str = str.replace(/\\/g, `/`) + str = str.replace(/^\/?/, `/`); + + // Absolute VSCode `Uri.fsPath`s need to start with a slash. + // VSCode only adds it automatically for supported schemes, + // so we have to do it manually for the `zip` scheme. + // The path needs to start with a caret otherwise VSCode doesn't handle the protocol + // + // Ref: https://github.com/microsoft/vscode/issues/105014#issuecomment-686760910 + // + if (str.match(/\.zip\//)) { + str = `${isVSCode ? `^` : ``}zip:${str}`; + } + } + + return str; + } + + function fromEditorPath(str) { + return process.platform === `win32` + ? str.replace(/^\^?zip:\//, ``) + : str.replace(/^\^?zip:/, ``); + } + + // And here is the point where we hijack the VSCode <-> TS communications + // by adding ourselves in the middle. We locate everything that looks + // like an absolute path of ours and normalize it. const Session = tsserver.server.Session; const {onMessage: originalOnMessage, send: originalSend} = Session.prototype; @@ -26,44 +80,24 @@ const moduleWrapper = tsserver => { if ( parsedMessage != null && - typeof parsedMessage === 'object' && + typeof parsedMessage === `object` && parsedMessage.arguments && - parsedMessage.arguments.hostInfo === 'vscode' + parsedMessage.arguments.hostInfo === `vscode` ) { isVSCode = true; } return originalOnMessage.call(this, JSON.stringify(parsedMessage, (key, value) => { - return typeof value === 'string' ? removeZipPrefix(value) : value; + return typeof value === `string` ? fromEditorPath(value) : value; })); }, send(/** @type {any} */ msg) { return originalSend.call(this, JSON.parse(JSON.stringify(msg, (key, value) => { - return typeof value === 'string' ? addZipPrefix(value) : value; + return typeof value === `string` ? toEditorPath(value) : value; }))); } }); - - function addZipPrefix(str) { - // We add the `zip:` prefix to both `.zip/` paths and virtual paths - if (isAbsolute(str) && !str.match(/^\^zip:/) && (str.match(/\.zip\//) || str.match(/\$\$virtual\//))) { - // Absolute VSCode `Uri.fsPath`s need to start with a slash. - // VSCode only adds it automatically for supported schemes, - // so we have to do it manually for the `zip` scheme. - // The path needs to start with a caret otherwise VSCode doesn't handle the protocol - // https://github.com/microsoft/vscode/issues/105014#issuecomment-686760910 - return `${isVSCode ? '^' : ''}zip:${str.replace(/^\/?/, `/`)}`; - } else { - return str; - } - } - - function removeZipPrefix(str) { - return process.platform === 'win32' - ? str.replace(/^\^?zip:\//, ``) - : str.replace(/^\^?zip:/, ``); - } }; if (existsSync(absPnpApiPath)) { diff --git a/FrontEnd/.yarn/sdks/typescript/lib/typescript.js b/FrontEnd/.yarn/sdks/typescript/lib/typescript.js index 3ee6808d..7e3c852f 100644 --- a/FrontEnd/.yarn/sdks/typescript/lib/typescript.js +++ b/FrontEnd/.yarn/sdks/typescript/lib/typescript.js @@ -2,7 +2,7 @@ const {existsSync} = require(`fs`); const {createRequire, createRequireFromPath} = require(`module`); -const {resolve, dirname} = require(`path`); +const {resolve} = require(`path`); const relPnpApiPath = "../../../../.pnp.js"; diff --git a/FrontEnd/.yarn/sdks/typescript/package.json b/FrontEnd/.yarn/sdks/typescript/package.json index 5fa233a1..69b595cc 100644 --- a/FrontEnd/.yarn/sdks/typescript/package.json +++ b/FrontEnd/.yarn/sdks/typescript/package.json @@ -1,6 +1,6 @@ { "name": "typescript", - "version": "4.0.5-pnpify", + "version": "4.1.3-pnpify", "main": "./lib/typescript.js", "type": "commonjs" } |