From e4c296ad4658eae7ec637d8fb881fba8774ba761 Mon Sep 17 00:00:00 2001 From: bcakmakoglu <78412429+bcakmakoglu@users.noreply.github.com> Date: Sat, 21 May 2022 22:42:50 +0200 Subject: [PATCH] feat: add devcontainer files --- .devcontainer/Dockerfile | 18 +++ .devcontainer/README.md | 23 +++ .devcontainer/devcontainer.json | 263 ++++++++++++++++++++++++++++++++ 3 files changed, 304 insertions(+) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/README.md create mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 00000000..802e9670 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,18 @@ +# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.234.0/containers/javascript-node/.devcontainer/base.Dockerfile + +# [Choice] Node.js version (use -bullseye variants on local arm64/Apple Silicon): 18, 16, 14, 18-bullseye, 16-bullseye, 14-bullseye, 18-buster, 16-buster, 14-buster +ARG VARIANT="18-bullseye" +FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:0-${VARIANT} + +# [Optional] Uncomment this section to install additional OS packages. +# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ +# && apt-get -y install --no-install-recommends + +# [Optional] Uncomment if you want to install an additional version of node using nvm +# ARG EXTRA_NODE_VERSION=10 +# RUN su node -c "source /usr/local/share/nvm/nvm.sh && nvm install ${EXTRA_NODE_VERSION}" + +# [Optional] Uncomment if you want to install more global node modules +# RUN su node -c "npm install -g " + +WORKDIR /home/node diff --git a/.devcontainer/README.md b/.devcontainer/README.md new file mode 100644 index 00000000..7c49c985 --- /dev/null +++ b/.devcontainer/README.md @@ -0,0 +1,23 @@ +# Development Container 🐳 + +This directory contains some basic configuration to start +the whole project inside a development container (for VSCode or Docker Desktop). + +You can create, commits and push code changes, as well as spin up additional containers, all +*inside* the development container. + +By default, all ports from within containers are forwarded to the user. + +## Troubleshooting + +If for some reason your Git credentials or ssh agent +are not properly passed to the development client, meaning +you are unable to push or pull from the CLI, please make sure +you have a valid `.ssh` config file. + +```text +Host * + UseKeychain yes + AddKeysToAgent yes + IdentityFile /path/to/key +``` diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000..ab6c6a70 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,263 @@ +{ + "name": "Vue Flow", + "build": { + "dockerfile": "Dockerfile", + "context": "../" + }, + "postCreateCommand": "yarn install && yarn build", + "postStartCommand": "yarn dev", + "remoteUser": "node", + "forwardPorts": [ + 3000 + ], + "extensions": [ + "antfu.browse-lite", + "antfu.where-am-i", + "antfu.icons-carbon", + "antfu.theme-vitesse", + "lokalise.i18n-ally", + "Vue.volar", + "dbaeumer.vscode-eslint", + "GitHub.copilot", + "usernamehw.errorlens", + "streetsidesoftware.code-spell-checker", + "amodio.tsl-problem-matcher", + "eamodio.gitlens", + "EditorConfig.EditorConfig", + "GitHub.vscode-pull-request-github", + "mpontus.tab-cycle", + "naumovs.color-highlight", + "richie5um2.vscode-sort-json", + "unional.vscode-sort-package-json", + "znck.grammarly", + "voorjaar.windicss-intellisense" + ], + "settings": { + "editor.accessibilitySupport": "off", + "editor.cursorSmoothCaretAnimation": true, + "editor.find.addExtraSpaceOnTop": false, + "editor.fontFamily": "Input Mono, Fira Code, monospace", + "editor.fontLigatures": "'ss01', 'ss02', 'ss03', 'ss06', 'zero'", + "editor.fontSize": 13.5, + "editor.glyphMargin": true, + "editor.guides.bracketPairs": "active", + "editor.inlineSuggest.enabled": true, + "editor.lineNumbers": "interval", + "editor.multiCursorModifier": "ctrlCmd", + "editor.renderWhitespace": "boundary", + "editor.suggestSelection": "first", + "editor.tabSize": 2, + "editor.unicodeHighlight.invisibleCharacters": false, + "editor.codeActionsOnSave": { + "source.fixAll": false, + "source.fixAll.eslint": true, + "source.organizeImports": false + }, + "css.lint.hexColorLength": "ignore", + "explorer.confirmDelete": false, + "explorer.confirmDragAndDrop": false, + "window.autoDetectColorScheme": true, + "window.dialogStyle": "custom", + "window.nativeTabs": true, + "window.titleBarStyle": "custom", + "workbench.activityBar.visible": true, + "workbench.colorTheme": "Darcula - WebStorm Edition", + "workbench.editor.closeOnFileDelete": true, + "workbench.editor.highlightModifiedTabs": true, + "workbench.editor.tabCloseButton": "left", + "workbench.editor.limit.enabled": true, + "workbench.editor.limit.perEditorGroup": true, + "workbench.editor.limit.value": 5, + "workbench.fontAliasing": "antialiased", + "workbench.iconTheme": "file-icons", + "workbench.list.smoothScrolling": true, + "workbench.preferredDarkColorTheme": "Vitesse Dark", + "workbench.preferredLightColorTheme": "Vitesse Light", + "workbench.productIconTheme": "icons-carbon", + "workbench.sideBar.location": "left", + "workbench.startupEditor": "newUntitledFile", + "workbench.tree.expandMode": "singleClick", + "workbench.tree.indent": 10, + "extensions.autoUpdate": "onlyEnabledExtensions", + "extensions.ignoreRecommendations": true, + "files.eol": "\n", + "files.insertFinalNewline": true, + "files.simpleDialog.enable": true, + "git.autofetch": true, + "git.confirmSync": false, + "git.enableSmartCommit": true, + "git.untrackedChanges": "separate", + "terminal.integrated.cursorBlinking": true, + "terminal.integrated.cursorStyle": "line", + "terminal.integrated.fontWeight": "300", + "terminal.integrated.persistentSessionReviveProcess": "never", + "terminal.integrated.tabs.enabled": true, + "scm.diffDecorationsGutterWidth": 2, + "debug.onTaskErrors": "debugAnyway", + "diffEditor.ignoreTrimWhitespace": false, + "volar.autoCompleteRefs": false, + "volar.codeLens.pugTools": false, + "volar.codeLens.scriptSetupTools": true, + "volar.completion.preferredTagNameCase": "pascal", + "volar.showWelcomePage": false, + "volar.takeOverMode.enabled": "auto", + "windicss.enableCodeFolding": false, + "search.exclude": { + "**/.git": true, + "**/.github": true, + "**/.output": true, + "**/.vscode": true, + "**/.yarn": true, + "**/dist/**": true, + "**/logs": true, + "**/node_modules": true, + "**/out/**": true, + "**/tmp": true, + "**/yarn.lock": true + }, + "emmet.showSuggestionsAsSnippets": true, + "emmet.triggerExpansionOnTab": false, + "errorLens.enabledDiagnosticLevels": [ + "warning", + "error" + ], + "errorLens.excludeBySource": [ + "cSpell", + "Grammarly", + "eslint" + ], + "eslint.codeAction.showDocumentation": { + "enable": true + }, + "eslint.quiet": true, + "eslint.validate": [ + "javascript", + "typescript", + "html", + "markdown", + "json" + ], + "github.copilot.enable": { + "*": true, + "markdown": true, + "plaintext": false, + "yaml": false + }, + "cSpell.allowCompoundWords": true, + "cSpell.language": "en,en-US,de,de-DE", + "githubIssues.workingIssueFormatScm": "#${issueNumberLabel}", + "githubPullRequests.fileListLayout": "tree", + "gitlens.codeLens.authors.enabled": false, + "gitlens.codeLens.enabled": false, + "gitlens.codeLens.recentChange.enabled": false, + "gitlens.menus": { + "editor": { + "blame": false, + "clipboard": true, + "compare": true, + "history": false, + "remote": false + }, + "editorGroup": { + "blame": true, + "compare": false + }, + "editorTab": { + "clipboard": true, + "compare": true, + "history": true, + "remote": true + }, + "explorer": { + "clipboard": true, + "compare": true, + "history": true, + "remote": true + }, + "scm": { + "authors": true + }, + "scmGroup": { + "compare": true, + "openClose": true, + "stash": true + }, + "scmGroupInline": { + "stash": true + }, + "scmItem": { + "clipboard": true, + "compare": true, + "history": true, + "remote": false, + "stash": true + } + }, + "i18n-ally.autoDetection": false, + "i18n-ally.displayLanguage": "en", + "i18n-ally.ignoredLocales": [], + "iconify.annotations": true, + "iconify.inplace": true, + "svg.preview.mode": "svg", + "prettier.enable": true, + "explorer.fileNesting.enabled": true, + "explorer.fileNesting.expand": false, + "explorer.fileNesting.patterns": { + "*.asax": "$(capture).*.cs, $(capture).*.vb", + "*.ascx": "$(capture).*.cs, $(capture).*.vb", + "*.ashx": "$(capture).*.cs, $(capture).*.vb", + "*.aspx": "$(capture).*.cs, $(capture).*.vb", + "*.c": "$(capture).h", + "*.cc": "$(capture).hpp, $(capture).h, $(capture).hxx", + "*.component.ts": "$(capture).component.html, $(capture).component.spec.ts, $(capture).component.css, $(capture).component.scss, $(capture).component.sass, $(capture).component.less", + "*.cpp": "$(capture).hpp, $(capture).h, $(capture).hxx", + "*.csproj": "*.config, *proj.user, appsettings.*, bundleconfig.json", + "*.css": "$(capture).css.map, $(capture).*.css", + "*.cxx": "$(capture).hpp, $(capture).h, $(capture).hxx", + "*.dart": "$(capture).freezed.dart, $(capture).g.dart", + "*.ex": "$(capture).html.eex, $(capture).html.heex, $(capture).html.leex", + "*.java": "$(capture).class", + "*.js": "$(capture).js.map, $(capture).*.js", + "*.jsx": "$(capture).js, $(capture).*.jsx", + "*.master": "$(capture).*.cs, $(capture).*.vb", + "*.module.ts": "$(capture).resolver.ts, $(capture).controller.ts, $(capture).service.ts", + "*.pubxml": "$(capture).pubxml.user", + "*.resx": "$(capture).*.resx, $(capture).designer.cs, $(capture).designer.vb", + "*.tex": "$(capture).acn, $(capture).acr, $(capture).alg, $(capture).aux, $(capture).bbl, $(capture).blg, $(capture).fdb_latexmk, $(capture).fls, $(capture).glg, $(capture).glo, $(capture).gls, $(capture).idx, $(capture).ind, $(capture).ist, $(capture).lof, $(capture).log, $(capture).lot, $(capture).out, $(capture).pdf, $(capture).synctex.gz, $(capture).toc, $(capture).xdv", + "*.ts": "$(capture).js, $(capture).*.ts", + "*.tsx": "$(capture).ts, $(capture).*.tsx", + "*.vbproj": "*.config, *proj.user, appsettings.*, bundleconfig.json", + "*.vue": "$(capture).*.ts, $(capture).*.js", + ".clang-tidy": ".clang-format, .clangd, compile_commands.json", + ".env": "*.env, .env.*, .envrc, env.d.ts", + ".gitignore": ".gitattributes, .gitmodules, .gitmessage, .mailmap, .git-blame*", + ".project": ".classpath", + "BUILD.bazel": "*.bzl, *.bazel, *.bazelrc, bazel.rc, .bazelignore, .bazelproject, WORKSPACE", + "CMakeLists.txt": "*.cmake, *.cmake.in, .cmake-format.yaml, CMakePresets.json", + "artisan": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, cssnano.config.*, cypress.json, env.d.ts, htmlnanorc.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, playwright.config.*, postcss.config.*, puppeteer.config.*, server.php, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, unocss.config.*, vitest.config.*, webpack.config.*, webpack.mix.js, windi.config.*", + "astro.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, cssnano.config.*, cypress.json, env.d.ts, htmlnanorc.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, playwright.config.*, postcss.config.*, puppeteer.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, unocss.config.*, vitest.config.*, webpack.config.*, windi.config.*", + "cargo.toml": ".clippy.toml, .rustfmt.toml, cargo.lock, clippy.toml, cross.toml, rust-toolchain.toml, rustfmt.toml", + "composer.json": ".php*.cache, composer.lock, phpunit.xml*, psalm*.xml", + "default.nix": "shell.nix", + "dockerfile": ".dockerignore, docker-compose.*, dockerfile*", + "flake.nix": "flake.lock", + "gatsby-config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, cssnano.config.*, cypress.json, env.d.ts, gatsby-browser.*, gatsby-node.*, gatsby-ssr.*, gatsby-transformer.*, htmlnanorc.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, playwright.config.*, postcss.config.*, puppeteer.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, unocss.config.*, vitest.config.*, webpack.config.*, windi.config.*", + "gemfile": ".ruby-version, gemfile.lock", + "go.mod": ".air*, go.sum", + "mix.exs": ".credo.exs, .dialyzer_ignore.exs, .formatter.exs, .iex.exs, .tool-versions, mix.lock", + "next.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, cssnano.config.*, cypress.json, env.d.ts, htmlnanorc.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, next-env.d.ts, playwright.config.*, postcss.config.*, puppeteer.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, unocss.config.*, vitest.config.*, webpack.config.*, windi.config.*", + "nuxt.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, cssnano.config.*, cypress.json, env.d.ts, htmlnanorc.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, playwright.config.*, postcss.config.*, puppeteer.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, unocss.config.*, vitest.config.*, webpack.config.*, windi.config.*", + "package.json": ".browserslist*, .circleci*, .codecov, .commitlint*, .cz-config.js, .czrc, .editorconfig, .eslint*, .firebase*, .flowconfig, .github*, .gitlab*, .gitpod*, .huskyrc*, .jslint*, .lighthouserc.*, .lintstagedrc*, .markdownlint*, .mocha*, .node-version, .nodemon*, .npm*, .nvmrc, .pm2*, .pnp.*, .pnpm*, .prettier*, .releaserc*, .sentry*, .stackblitz*, .styleci*, .stylelint*, .tazerc*, .textlint*, .tool-versions, .travis*, .versionrc*, .vscode*, .watchman*, .xo-config*, .yamllint*, .yarnrc*, Procfile, api-extractor.json, apollo.config.*, appveyor*, ava.config.*, azure-pipelines*, bower.json, build.config.*, commitlint*, crowdin*, cypress.json, dangerfile*, dprint.json, firebase.json, grunt*, gulp*, jasmine.*, jenkins*, jest.config.*, jsconfig.*, karma*, lerna*, lighthouserc.*, lint-staged*, nest-cli.*, netlify*, nodemon*, nx.*, package-lock.json, phpcs.xml, playwright.config.*, pm2.*, pnpm*, prettier*, pullapprove*, puppeteer.config.*, pyrightconfig.json, renovate*, rollup.config.*, stylelint*, tsconfig.*, tsdoc.*, tslint*, tsup.config.*, turbo*, typedoc*, vercel*, vetur.config.*, vitest.config.*, webpack.config.*, workspace.json, xo.config.*, yarn*", + "pubspec.yaml": ".metadata, .packages, all_lint_rules.yaml, analysis_options.yaml, build.yaml, pubspec.lock", + "pyproject.toml": ".pdm.toml, pdm.lock, pyproject.toml", + "quasar.conf.js": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, cssnano.config.*, cypress.json, env.d.ts, htmlnanorc.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, playwright.config.*, postcss.config.*, puppeteer.config.*, quasar.extensions.json, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, unocss.config.*, vitest.config.*, webpack.config.*, windi.config.*", + "readme*": "authors, backers.md, changelog*, citation*, code_of_conduct.md, codeowners, contributing.md, contributors, copying, credits, governance.md, history.md, license*, maintainers, readme*, security.md, sponsors.md", + "remix.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, cssnano.config.*, cypress.json, env.d.ts, htmlnanorc.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, playwright.config.*, postcss.config.*, puppeteer.config.*, remix.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, unocss.config.*, vitest.config.*, webpack.config.*, windi.config.*", + "rush.json": ".browserslist*, .circleci*, .codecov, .commitlint*, .cz-config.js, .czrc, .editorconfig, .eslint*, .firebase*, .flowconfig, .github*, .gitlab*, .gitpod*, .huskyrc*, .jslint*, .lighthouserc.*, .lintstagedrc*, .markdownlint*, .mocha*, .node-version, .nodemon*, .npm*, .nvmrc, .pm2*, .pnp.*, .pnpm*, .prettier*, .releaserc*, .sentry*, .stackblitz*, .styleci*, .stylelint*, .tazerc*, .textlint*, .tool-versions, .travis*, .versionrc*, .vscode*, .watchman*, .xo-config*, .yamllint*, .yarnrc*, Procfile, api-extractor.json, apollo.config.*, appveyor*, ava.config.*, azure-pipelines*, bower.json, build.config.*, commitlint*, crowdin*, cypress.json, dangerfile*, dprint.json, firebase.json, grunt*, gulp*, jasmine.*, jenkins*, jest.config.*, jsconfig.*, karma*, lerna*, lighthouserc.*, lint-staged*, nest-cli.*, netlify*, nodemon*, nx.*, package-lock.json, phpcs.xml, playwright.config.*, pm2.*, pnpm*, prettier*, pullapprove*, puppeteer.config.*, pyrightconfig.json, renovate*, rollup.config.*, stylelint*, tsconfig.*, tsdoc.*, tslint*, tsup.config.*, turbo*, typedoc*, vercel*, vetur.config.*, vitest.config.*, webpack.config.*, workspace.json, xo.config.*, yarn*", + "shims.d.ts": "*.d.ts", + "svelte.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, cssnano.config.*, cypress.json, env.d.ts, htmlnanorc.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, mdsvex.config.js, playwright.config.*, postcss.config.*, puppeteer.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, unocss.config.*, vitest.config.*, webpack.config.*, windi.config.*", + "vite.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, cssnano.config.*, cypress.json, env.d.ts, htmlnanorc.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, playwright.config.*, postcss.config.*, puppeteer.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, unocss.config.*, vitest.config.*, webpack.config.*, windi.config.*", + "vue.config.*": "*.env, .babelrc*, .codecov, .cssnanorc*, .env.*, .envrc, .htmlnanorc*, .lighthouserc.*, .mocha*, .postcssrc*, .terserrc*, api-extractor.json, ava.config.*, babel.config.*, cssnano.config.*, cypress.json, env.d.ts, htmlnanorc.*, jasmine.*, jest.config.*, jsconfig.*, karma*, lighthouserc.*, playwright.config.*, postcss.config.*, puppeteer.config.*, svgo.config.*, tailwind.config.*, tsconfig.*, tsdoc.*, unocss.config.*, vitest.config.*, webpack.config.*, windi.config.*" + } + } +}