-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Towards yarn v3 (berry) #29
Closed
Closed
Changes from 7 commits
Commits
Show all changes
25 commits
Select commit
Hold shift + click to select a range
3e64b5e
Towards yarn v2 (berry)
kachkaev 04a26de
Change yarn flag
kachkaev f7e2650
Fix prettier and run-if-changed command
kachkaev d26e521
Use new eslint rules
kachkaev 3ead67c
Merge remote-tracking branch 'origin/main' into yarn-berry
kachkaev a8f9fa0
Tweak markdownlint config
kachkaev 88f0051
Bump pnpfied version of typescript
kachkaev 4f298b1
Bring back Prettier plugins
kachkaev d2f5380
Bump dependencies
kachkaev 0bd478f
Merge remote-tracking branch 'origin/main' into yarn-berry
kachkaev a07c57d
Change yarn path
kachkaev 545e824
Merge branch 'main' into yarn-berry
kachkaev e39d0d9
Try removing dependenciesMeta
kachkaev 4b8c84a
Try removing dependenciesMeta
kachkaev 8ad5913
Merge remote-tracking branch 'origin/main' into yarn-berry
kachkaev 39aadac
Merge remote-tracking branch 'origin/main' into yarn-berry
kachkaev 16e721d
Merge branch 'main' into yarn-berry
kachkaev e0a9eae
Merge branch 'main' into yarn-berry, upgrade yarn to v3.0.0
kachkaev 02e5ef3
Add eslint-config-next
kachkaev 53ae480
Merge remote-tracking branch 'origin/main' into yarn-berry
kachkaev 7eb5b81
Upgrade yarn to 3.0.2
kachkaev 497f8e6
Update husky config
kachkaev 58b5600
Merge remote-tracking branch 'origin/main' into yarn-berry
kachkaev 3ce8297
Run "yarn fix:prettier"
kachkaev a8cc632
Update VSCode SDKs (yarn dlx @yarnpkg/sdks vscode)
kachkaev File filter
Filter by extension
Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
{ | ||
"extends": "./node_modules/@kachkaev/markdownlint-config/index.json", | ||
"extends": "@kachkaev/markdownlint-config", | ||
"first-line-heading": false, | ||
"no-inline-html": false | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
module.exports = require("@kachkaev/prettier-config"); |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
{ | ||
"recommendations": [ | ||
"arcanis.vscode-zipfs", | ||
"dbaeumer.vscode-eslint", | ||
"esbenp.prettier-vscode" | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{ | ||
"search.exclude": { | ||
"**/.yarn": true, | ||
"**/.pnp.*": true | ||
}, | ||
"eslint.nodePath": ".yarn/sdks", | ||
"prettier.prettierPath": ".yarn/sdks/prettier/index.js", | ||
"typescript.tsdk": ".yarn/sdks/typescript/lib", | ||
"typescript.enablePromptUseWorkspaceTsdk": true | ||
} |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
#!/usr/bin/env node | ||
|
||
const {existsSync} = require(`fs`); | ||
const {createRequire, createRequireFromPath} = require(`module`); | ||
const {resolve, dirname} = require(`path`); | ||
|
||
const relPnpApiPath = "../../../../.pnp.js"; | ||
|
||
const absPnpApiPath = resolve(__dirname, relPnpApiPath); | ||
const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath); | ||
|
||
if (existsSync(absPnpApiPath)) { | ||
if (!process.versions.pnp) { | ||
// Setup the environment to be able to require eslint/bin/eslint.js | ||
require(absPnpApiPath).setup(); | ||
} | ||
} | ||
|
||
// Defer to the real eslint/bin/eslint.js your application uses | ||
module.exports = absRequire(`eslint/bin/eslint.js`); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
#!/usr/bin/env node | ||
|
||
const {existsSync} = require(`fs`); | ||
const {createRequire, createRequireFromPath} = require(`module`); | ||
const {resolve, dirname} = require(`path`); | ||
|
||
const relPnpApiPath = "../../../../.pnp.js"; | ||
|
||
const absPnpApiPath = resolve(__dirname, relPnpApiPath); | ||
const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath); | ||
|
||
if (existsSync(absPnpApiPath)) { | ||
if (!process.versions.pnp) { | ||
// Setup the environment to be able to require eslint/lib/api.js | ||
require(absPnpApiPath).setup(); | ||
} | ||
} | ||
|
||
// Defer to the real eslint/lib/api.js your application uses | ||
module.exports = absRequire(`eslint/lib/api.js`); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
{ | ||
"name": "eslint", | ||
"version": "7.11.0-pnpify", | ||
"main": "./lib/api.js", | ||
"type": "commonjs" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# This file is automatically generated by PnPify. | ||
# Manual changes will be lost! | ||
|
||
integrations: | ||
- vscode |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
#!/usr/bin/env node | ||
|
||
const {existsSync} = require(`fs`); | ||
const {createRequire, createRequireFromPath} = require(`module`); | ||
const {resolve, dirname} = require(`path`); | ||
|
||
const relPnpApiPath = "../../../.pnp.js"; | ||
|
||
const absPnpApiPath = resolve(__dirname, relPnpApiPath); | ||
const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath); | ||
|
||
if (existsSync(absPnpApiPath)) { | ||
if (!process.versions.pnp) { | ||
// Setup the environment to be able to require prettier/index.js | ||
require(absPnpApiPath).setup(); | ||
} | ||
} | ||
|
||
// Defer to the real prettier/index.js your application uses | ||
module.exports = absRequire(`prettier/index.js`); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
{ | ||
"name": "prettier", | ||
"version": "2.1.2-pnpify", | ||
"main": "./index.js", | ||
"type": "commonjs" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
#!/usr/bin/env node | ||
|
||
const {existsSync} = require(`fs`); | ||
const {createRequire, createRequireFromPath} = require(`module`); | ||
const {resolve, dirname} = require(`path`); | ||
|
||
const relPnpApiPath = "../../../../.pnp.js"; | ||
|
||
const absPnpApiPath = resolve(__dirname, relPnpApiPath); | ||
const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath); | ||
|
||
if (existsSync(absPnpApiPath)) { | ||
if (!process.versions.pnp) { | ||
// Setup the environment to be able to require typescript/bin/tsc | ||
require(absPnpApiPath).setup(); | ||
} | ||
} | ||
|
||
// Defer to the real typescript/bin/tsc your application uses | ||
module.exports = absRequire(`typescript/bin/tsc`); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
#!/usr/bin/env node | ||
|
||
const {existsSync} = require(`fs`); | ||
const {createRequire, createRequireFromPath} = require(`module`); | ||
const {resolve, dirname} = require(`path`); | ||
|
||
const relPnpApiPath = "../../../../.pnp.js"; | ||
|
||
const absPnpApiPath = resolve(__dirname, relPnpApiPath); | ||
const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath); | ||
|
||
if (existsSync(absPnpApiPath)) { | ||
if (!process.versions.pnp) { | ||
// Setup the environment to be able to require typescript/bin/tsserver | ||
require(absPnpApiPath).setup(); | ||
} | ||
} | ||
|
||
// Defer to the real typescript/bin/tsserver your application uses | ||
module.exports = absRequire(`typescript/bin/tsserver`); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
#!/usr/bin/env node | ||
|
||
const {existsSync} = require(`fs`); | ||
const {createRequire, createRequireFromPath} = require(`module`); | ||
const {resolve, dirname} = require(`path`); | ||
|
||
const relPnpApiPath = "../../../../.pnp.js"; | ||
|
||
const absPnpApiPath = resolve(__dirname, relPnpApiPath); | ||
const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath); | ||
|
||
if (existsSync(absPnpApiPath)) { | ||
if (!process.versions.pnp) { | ||
// Setup the environment to be able to require typescript/lib/tsc.js | ||
require(absPnpApiPath).setup(); | ||
} | ||
} | ||
|
||
// Defer to the real typescript/lib/tsc.js your application uses | ||
module.exports = absRequire(`typescript/lib/tsc.js`); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
#!/usr/bin/env node | ||
|
||
const {existsSync} = require(`fs`); | ||
const {createRequire, createRequireFromPath} = require(`module`); | ||
const {resolve, dirname} = require(`path`); | ||
|
||
const relPnpApiPath = "../../../../.pnp.js"; | ||
|
||
const absPnpApiPath = resolve(__dirname, relPnpApiPath); | ||
const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath); | ||
|
||
const moduleWrapper = tsserver => { | ||
// 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`); | ||
|
||
const Session = tsserver.server.Session; | ||
const {onMessage: originalOnMessage, send: originalSend} = Session.prototype; | ||
let isVSCode = false; | ||
|
||
return Object.assign(Session.prototype, { | ||
onMessage(/** @type {string} */ message) { | ||
const parsedMessage = JSON.parse(message) | ||
|
||
if ( | ||
parsedMessage != null && | ||
typeof parsedMessage === 'object' && | ||
parsedMessage.arguments && | ||
parsedMessage.arguments.hostInfo === 'vscode' | ||
) { | ||
isVSCode = true; | ||
} | ||
|
||
return originalOnMessage.call(this, JSON.stringify(parsedMessage, (key, value) => { | ||
return typeof value === 'string' ? removeZipPrefix(value) : value; | ||
})); | ||
}, | ||
|
||
send(/** @type {any} */ msg) { | ||
return originalSend.call(this, JSON.parse(JSON.stringify(msg, (key, value) => { | ||
return typeof value === 'string' ? addZipPrefix(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)) { | ||
if (!process.versions.pnp) { | ||
// Setup the environment to be able to require typescript/lib/tsserver.js | ||
require(absPnpApiPath).setup(); | ||
} | ||
} | ||
|
||
// Defer to the real typescript/lib/tsserver.js your application uses | ||
module.exports = moduleWrapper(absRequire(`typescript/lib/tsserver.js`)); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
#!/usr/bin/env node | ||
|
||
const {existsSync} = require(`fs`); | ||
const {createRequire, createRequireFromPath} = require(`module`); | ||
const {resolve, dirname} = require(`path`); | ||
|
||
const relPnpApiPath = "../../../../.pnp.js"; | ||
|
||
const absPnpApiPath = resolve(__dirname, relPnpApiPath); | ||
const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath); | ||
|
||
if (existsSync(absPnpApiPath)) { | ||
if (!process.versions.pnp) { | ||
// Setup the environment to be able to require typescript/lib/typescript.js | ||
require(absPnpApiPath).setup(); | ||
} | ||
} | ||
|
||
// Defer to the real typescript/lib/typescript.js your application uses | ||
module.exports = absRequire(`typescript/lib/typescript.js`); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
{ | ||
"name": "typescript", | ||
"version": "4.0.3-pnpify", | ||
"main": "./lib/typescript.js", | ||
"type": "commonjs" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
yarnPath: ".yarn/releases/yarn-berry.cjs" | ||
packageExtensions: | ||
styled-components@*: | ||
dependencies: | ||
react-is: "*" | ||
eslint-module-utils@*: | ||
dependencies: | ||
eslint-import-resolver-node: "*" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You probably don't want prettier to touch these files
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah you are right! Same for ESLint and Markdownlint. What is interesting though is that I just ran
yarn fix:prettier
and did not notice any.yarn/*
paths in stdout. I guess that something in my approach to config files ends up excluding all folders starting with the dot by default. For that reason, I had to add!/.github/
a while ago (see above) — otherwise the yamls were not formatted.I’ll see what's best: to keep things as is or to ‘break the symmetry’ between the ignore files. Gonna switch to work work till the next weekend 🙂