Skip to content

Commit

Permalink
chore(lint): add node/prefer-global/* linting rules (#1482)
Browse files Browse the repository at this point in the history
  • Loading branch information
ehmicky authored Oct 28, 2020
1 parent e5e9ffd commit 3d8f179
Show file tree
Hide file tree
Showing 61 changed files with 101 additions and 9 deletions.
17 changes: 11 additions & 6 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,17 @@ module.exports = {
'node/no-mixed-requires': 2,
// Browser globals should not use `require()`. Non-browser globals should
'node/prefer-global/console': 2,
'node/prefer-global/text-decoder': 2,
'node/prefer-global/text-encoder': 2,
'node/prefer-global/buffer': [2, 'never'],
'node/prefer-global/process': [2, 'never'],
// TODO: enable after dropping support for Node <10.0.0
'node/prefer-global/url-search-params': 0,
'node/prefer-global/url': 0,
// TODO: enable after dropping support for Node <11.0.0
'node/prefer-global/text-decoder': 0,
'node/prefer-global/text-encoder': 0,
// TODO: enable after dropping support for Node <11.4.0
'node/prefer-promises/fs': 0,
'node/prefer-promises/dns': 0,
// This does not work well in a monorepo
'node/shebang': 0,

Expand All @@ -20,10 +29,6 @@ module.exports = {
// 'node/no-sync': 2,
// 'node/callback-return': 2,
// 'node/global-require': 2,
// 'node/prefer-global/url-search-params': 2,
// 'node/prefer-global/url': 2,
// 'node/prefer-global/buffer': [2, 'never'],
// 'node/prefer-global/process': [2, 'never'],

// TODO: harmonize with filename snake_case in other Netlify Dev projects
'unicorn/filename-case': [2, { case: 'kebabCase', ignore: ['.*.md'] }],
Expand Down
4 changes: 2 additions & 2 deletions scripts/run-on-error.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#!/usr/bin/env node
const { argv } = require('process')
const process = require('process')

const execa = require('execa')

const [, , npmScript, npmScriptOnError] = argv
const [, , npmScript, npmScriptOnError] = process.argv

// Run a npm script. If that script fails, another npm script is run.
// We use this for example with ESLint and Prettier to be able to fail if
Expand Down
1 change: 1 addition & 0 deletions site/scripts/docs.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const path = require('path')
const process = require('process')

const markdownMagic = require('markdown-magic')
const stripAnsi = require('strip-ansi')
Expand Down
2 changes: 2 additions & 0 deletions src/commands/build/index.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
const process = require('process')

const { flags } = require('@oclif/command')

const { getBuildOptions, runBuild } = require('../../lib/build')
Expand Down
1 change: 1 addition & 0 deletions src/commands/deploy.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const path = require('path')
const process = require('process')

const { flags: flagsLib } = require('@oclif/command')
const chalk = require('chalk')
Expand Down
1 change: 1 addition & 0 deletions src/commands/dev/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
const childProcess = require('child_process')
const path = require('path')
const process = require('process')

const { flags: flagsLib } = require('@oclif/command')
const boxen = require('boxen')
Expand Down
1 change: 1 addition & 0 deletions src/commands/functions/build.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const fs = require('fs')
const process = require('process')

const { zipFunctions } = require('@netlify/zip-it-and-ship-it')
const { flags: flagsLib } = require('@oclif/command')
Expand Down
1 change: 1 addition & 0 deletions src/commands/functions/create.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const cp = require('child_process')
const fs = require('fs')
const path = require('path')
const process = require('process')

const { flags: flagsLib } = require('@oclif/command')
const chalk = require('chalk')
Expand Down
1 change: 1 addition & 0 deletions src/commands/functions/invoke.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
const fs = require('fs')
const path = require('path')
const process = require('process')

const { flags: flagsLib } = require('@oclif/command')
const chalk = require('chalk')
Expand Down
2 changes: 2 additions & 0 deletions src/commands/functions/list.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
const process = require('process')

const { flags: flagsLib } = require('@oclif/command')
const AsciiTable = require('ascii-table')

Expand Down
1 change: 1 addition & 0 deletions src/commands/link.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const path = require('path')
const process = require('process')

const { flags: flagsLib } = require('@oclif/command')
const chalk = require('chalk')
Expand Down
1 change: 1 addition & 0 deletions src/functions-templates/js/fauna-crud/create-schema.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env node
const process = require('process')

/* bootstrap database in your FaunaDB account - use with `netlify dev:exec <path-to-this-file>` */
const { query, Client } = require('faunadb')
Expand Down
2 changes: 2 additions & 0 deletions src/functions-templates/js/fauna-crud/create.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
const process = require('process')

const { query, Client } = require('faunadb')

/* configure faunaDB Client with our secret */
Expand Down
2 changes: 2 additions & 0 deletions src/functions-templates/js/fauna-crud/delete.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/* Import faunaDB sdk */
const process = require('process')

const { query, Client } = require('faunadb')

const client = new Client({
Expand Down
2 changes: 2 additions & 0 deletions src/functions-templates/js/fauna-crud/read-all.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/* Import faunaDB sdk */
const process = require('process')

const { query, Client } = require('faunadb')

const client = new Client({
Expand Down
2 changes: 2 additions & 0 deletions src/functions-templates/js/fauna-crud/read.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/* Import faunaDB sdk */
const process = require('process')

const { query, Client } = require('faunadb')

const client = new Client({
Expand Down
2 changes: 2 additions & 0 deletions src/functions-templates/js/fauna-crud/update.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/* Import faunaDB sdk */
const process = require('process')

const { query, Client } = require('faunadb')

const client = new Client({
Expand Down
3 changes: 3 additions & 0 deletions src/functions-templates/js/fauna-graphql/fauna-graphql.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
const { Buffer } = require('buffer')
const process = require('process')

const { createHttpLink } = require('apollo-link-http')
const { ApolloServer } = require('apollo-server-lambda')
const { introspectSchema, makeRemoteExecutableSchema } = require('graphql-tools')
Expand Down
2 changes: 2 additions & 0 deletions src/functions-templates/js/fauna-graphql/sync-schema.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#!/usr/bin/env node
const { Buffer } = require('buffer')
const process = require('process')

/* sync GraphQL schema to your FaunaDB account - use with `netlify dev:exec <path-to-this-file>` */
const createFaunaGraphQL = function () {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
*
* Of course, feel free to modify this gateway to suit your needs.
*/
const process = require('process')

const { createHttpLink } = require('apollo-link-http')
const { ApolloServer } = require('apollo-server-lambda')
Expand Down
2 changes: 2 additions & 0 deletions src/functions-templates/js/oauth-passport/utils/config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// lambda/utils/config.js
// Circumvent problem with Netlify CLI.
// https://github.com/netlify/netlify-dev-plugin/issues/147
const process = require('process')

const BASE_URL = process.env.NODE_ENV === 'development' ? 'http://localhost:8888' : process.env.BASE_URL

const COOKIE_SECURE = process.env.NODE_ENV !== 'development'
Expand Down
2 changes: 2 additions & 0 deletions src/functions-templates/js/sanity-create/sanity-create.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
const process = require('process')

const sanityClient = require('@sanity/client')

// You will need to configure environment variables for Sanity.io project id,
Expand Down
2 changes: 2 additions & 0 deletions src/functions-templates/js/sanity-groq/sanity-groq.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
const process = require('process')

const sanityClient = require('@sanity/client')

// You will need to configure environment variables for Sanity.io project id
Expand Down
2 changes: 2 additions & 0 deletions src/functions-templates/js/send-email/send-email.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
// with thanks to https://github.com/Urigo/graphql-modules/blob/8cb2fd7d9938a856f83e4eee2081384533771904/website/lambda/contact.js
const process = require('process')

const sendMail = require('sendmail')()

const { validateEmail, validateLength } = require('./validations')
Expand Down
2 changes: 2 additions & 0 deletions src/functions-templates/js/serverless-ssr/app/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/* Express App */
const process = require('process')

const bodyParser = require('body-parser')
const compression = require('compression')
const cors = require('cors')
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// code walkthrough: https://www.netlify.com/blog/2018/03/29/jamstack-architecture-on-netlify-how-identity-and-functions-work-together/#updating-user-data-with-the-identity-api
// demo repo: https://github.com/biilmann/testing-slack-tutorial/tree/v3-one-message-an-hour
// note: requires SLACK_WEBHOOK_URL environment variable
const process = require('process')

const slackURL = process.env.SLACK_WEBHOOK_URL
const fetch = require('node-fetch')

Expand Down
1 change: 1 addition & 0 deletions src/functions-templates/js/stripe-charge/stripe-charge.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// with thanks https://github.com/alexmacarthur/netlify-lambda-function-example/blob/68a0cdc05e201d68fe80b0926b0af7ff88f15802/lambda-src/purchase.js
const process = require('process')

const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// with thanks https://github.com/LukeMwila/stripe-subscriptions-backend/blob/master/stripe-api/index.ts
const process = require('process')

const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
// require('dotenv').config()

// // details in https://css-tricks.com/using-netlify-forms-and-netlify-functions-to-build-an-email-sign-up-widget
const process = require('process')

const fetch = require('node-fetch')
const { EMAIL_TOKEN } = process.env
const handler = async (event) => {
Expand Down
2 changes: 2 additions & 0 deletions src/functions-templates/js/token-hider/token-hider.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
const process = require('process')

const axios = require('axios')
const qs = require('qs')

Expand Down
1 change: 1 addition & 0 deletions src/functions-templates/js/url-shortener/generate-route.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
'use strict'
const process = require('process')

const Hashids = require('hashids')
const request = require('request')
Expand Down
1 change: 1 addition & 0 deletions src/functions-templates/js/url-shortener/get-route.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
'use strict'
const process = require('process')

const request = require('request')

Expand Down
2 changes: 2 additions & 0 deletions src/hooks/init.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
const process = require('process')

const envinfo = require('envinfo')

const globalConfig = require('../utils/global-config')
Expand Down
1 change: 1 addition & 0 deletions src/lib/exec-fetcher.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const path = require('path')
const process = require('process')

const execa = require('execa')
const { fetchVersion, fetchLatest, updateAvailable, newerVersion } = require('gh-release-fetch')
Expand Down
1 change: 1 addition & 0 deletions src/lib/exec-fetcher.test.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const path = require('path')
const process = require('process')

const test = require('ava')
const tempDirectory = require('temp-dir')
Expand Down
1 change: 1 addition & 0 deletions src/lib/http-agent.test.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const http = require('http')
const process = require('process')

const test = require('ava')
const { createProxyServer } = require('http-proxy')
Expand Down
1 change: 1 addition & 0 deletions src/utils/command.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
const process = require('process')
const { URL } = require('url')
const { format, inspect } = require('util')

Expand Down
2 changes: 2 additions & 0 deletions src/utils/create-stream-promise.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
const { Buffer } = require('buffer')

const createStreamPromise = function (stream, timeoutSeconds, bytesLimit = DEFAULT_BYTES_LIMIT) {
return new Promise(function streamPromiseFunc(resolve, reject) {
let data = []
Expand Down
1 change: 1 addition & 0 deletions src/utils/detect-server.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
const fs = require('fs')
const path = require('path')
const process = require('process')

const chalk = require('chalk')
const fuzzy = require('fuzzy')
Expand Down
1 change: 1 addition & 0 deletions src/utils/detect-server.test.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const path = require('path')
const process = require('process')

const test = require('ava')
const getPort = require('get-port')
Expand Down
2 changes: 2 additions & 0 deletions src/utils/dev.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
// reusable code for netlify dev
// bit of a hasty abstraction but recommended by oclif
const process = require('process')

const chalk = require('chalk')

const {
Expand Down
2 changes: 1 addition & 1 deletion src/utils/env.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// dotenv loading similar to create-react-app / react-scripts or dotenv-load

const path = require('path')
const process = require('process')

const dotenv = require('dotenv')
const filterObject = require('filter-obj')
Expand Down
2 changes: 2 additions & 0 deletions src/utils/env.test.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
const process = require('process')

const test = require('ava')
const sinon = require('sinon')

Expand Down
1 change: 1 addition & 0 deletions src/utils/get-repo-data.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const path = require('path')
const process = require('process')
const util = require('util')

const findUp = require('find-up')
Expand Down
1 change: 1 addition & 0 deletions src/utils/gh-auth.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// A simple ghauth inspired library for getting a personal access token
const http = require('http')
const process = require('process')
const querystring = require('querystring')

const { Octokit } = require('@octokit/rest')
Expand Down
2 changes: 2 additions & 0 deletions src/utils/live-tunnel.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
const process = require('process')

const chalk = require('chalk')
const execa = require('execa')
const fetch = require('node-fetch')
Expand Down
2 changes: 2 additions & 0 deletions src/utils/open-browser.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
const process = require('process')

const chalk = require('chalk')
const isDockerContainer = require('is-docker')
const open = require('open')
Expand Down
1 change: 1 addition & 0 deletions src/utils/proxy.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
const { Buffer } = require('buffer')
const http = require('http')
const path = require('path')
const { URL, URLSearchParams } = require('url')
Expand Down
1 change: 1 addition & 0 deletions src/utils/serve-functions.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
const { Buffer } = require('buffer')
const querystring = require('querystring')
const { Readable } = require('stream')
const { URL } = require('url')
Expand Down
1 change: 1 addition & 0 deletions src/utils/state-config.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
const fs = require('fs')
const path = require('path')
const process = require('process')

const dotProp = require('dot-prop')
const findUp = require('find-up')
Expand Down
1 change: 1 addition & 0 deletions src/utils/telemetry/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
const { spawn } = require('child_process')
const path = require('path')
const process = require('process')

const ci = require('ci-info')

Expand Down
2 changes: 2 additions & 0 deletions src/utils/telemetry/request.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
// Spawn a detached process
const process = require('process')

const fetch = require('node-fetch')
const options = JSON.parse(process.argv[2])

Expand Down
1 change: 1 addition & 0 deletions src/utils/traffic-mesh.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const path = require('path')
const process = require('process')

const execa = require('execa')
const waitPort = require('wait-port')
Expand Down
2 changes: 2 additions & 0 deletions tests/command.addons.test.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
const process = require('process')

const test = require('ava')

const callCli = require('./utils/call-cli')
Expand Down
2 changes: 2 additions & 0 deletions tests/command.deploy.test.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
const process = require('process')

const test = require('ava')
const fetch = require('node-fetch')
const omit = require('omit.js').default
Expand Down
2 changes: 2 additions & 0 deletions tests/command.dev.exec.test.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
const process = require('process')

const test = require('ava')

const callCli = require('./utils/call-cli')
Expand Down
Loading

0 comments on commit 3d8f179

Please sign in to comment.