diff --git a/.eslintrc b/.eslintrc index 0f6a27cf72..ca9c0acf70 100644 --- a/.eslintrc +++ b/.eslintrc @@ -16,6 +16,16 @@ "import/no-unresolved": 0, "import/no-named-as-default": 0, "import/no-named-as-default-member": 0, + "import/extensions": [ // override airbnb setting to allow imports of js, jsx, ts, and tsx files to auto-resolve instead of error + "error", + "ignorePackages", + { + "js": "never", + "jsx": "never", + "ts": "never", + "tsx": "never" + } + ], "comma-dangle": 0, // not sure why airbnb turned this on. gross! "indent": 0, "no-console": 0, @@ -72,6 +82,11 @@ ], "settings": { "import/parser": "@babel/eslint-parser", + "import/resolver": { + "node": { + "extensions": [".js", ".jsx", ".ts", ".tsx"] + } + }, "import/resolve": { "moduleDirectory": ["node_modules"] } diff --git a/client/utils/__mocks__/generateRandomName.js b/client/utils/__mocks__/generateRandomName.ts similarity index 100% rename from client/utils/__mocks__/generateRandomName.js rename to client/utils/__mocks__/generateRandomName.ts diff --git a/client/utils/generateRandomName.js b/client/utils/generateRandomName.ts similarity index 53% rename from client/utils/generateRandomName.js rename to client/utils/generateRandomName.ts index 70da438fc7..453f768c05 100644 --- a/client/utils/generateRandomName.js +++ b/client/utils/generateRandomName.ts @@ -1,6 +1,11 @@ import friendlyWords from 'friendly-words'; -export function generateProjectName() { +/** + * Generates a random friendly project name composed of an adjective and an object. + * @example + * generateProjectName(); // "brave mountain" + */ +export function generateProjectName(): string { const adj = friendlyWords.predicates[ Math.floor(Math.random() * friendlyWords.predicates.length) @@ -12,7 +17,12 @@ export function generateProjectName() { return `${adj} ${obj}`; } -export function generateCollectionName() { +/** + * Generates a random friendly collection name using an adjective. + * @example + * generateCollectionName(); // "My clever collection" + */ +export function generateCollectionName(): string { const adj = friendlyWords.predicates[ Math.floor(Math.random() * friendlyWords.predicates.length) diff --git a/client/utils/isSecurePage.js b/client/utils/isSecurePage.js deleted file mode 100644 index e9e54ebe71..0000000000 --- a/client/utils/isSecurePage.js +++ /dev/null @@ -1,3 +0,0 @@ -const isSecurePage = () => window.location.protocol === 'https:'; - -export default isSecurePage; diff --git a/package-lock.json b/package-lock.json index 1694babb22..748d5c56d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -153,6 +153,7 @@ "@svgr/webpack": "^6.2.1", "@testing-library/jest-dom": "^5.15.0", "@testing-library/react": "^12.1.2", + "@types/friendly-words": "^1.2.2", "@types/jest": "^29.5.14", "@types/node": "^16.18.126", "@types/react": "^16.14.0", @@ -14473,6 +14474,12 @@ "integrity": "sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==", "dev": true }, + "node_modules/@types/friendly-words": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/friendly-words/-/friendly-words-1.2.2.tgz", + "integrity": "sha512-8Gr82MHnVM0CAf8r0iXBI5r3OSZydew3tzNCB6TaeEXmWUED8gkInwHh4+IWdyG5JwQBPfEsQmNvTSxbjM3deQ==", + "dev": true + }, "node_modules/@types/graceful-fs": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", @@ -50716,6 +50723,12 @@ "integrity": "sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==", "dev": true }, + "@types/friendly-words": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/friendly-words/-/friendly-words-1.2.2.tgz", + "integrity": "sha512-8Gr82MHnVM0CAf8r0iXBI5r3OSZydew3tzNCB6TaeEXmWUED8gkInwHh4+IWdyG5JwQBPfEsQmNvTSxbjM3deQ==", + "dev": true + }, "@types/graceful-fs": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", diff --git a/package.json b/package.json index e3083fd0e2..23fbff9b18 100644 --- a/package.json +++ b/package.json @@ -49,12 +49,16 @@ "/server/jest.setup.js" ], "testMatch": [ - "/server/**/*.test.(js|jsx)" + "/server/**/*.test.(js|jsx|ts|tsx)" ] }, { "displayName": "client", "testEnvironment": "jsdom", + "transform": { + "^.+\\.[jt]sx?$": "babel-jest" + }, + "moduleFileExtensions": ["ts", "tsx", "js", "jsx", "json", "node"], "setupFilesAfterEnv": [ "/client/jest.setup.js" ], @@ -63,7 +67,7 @@ "\\.(css|less|scss)$": "/client/__mocks__/styleMock.js" }, "testMatch": [ - "/client/**/*.test.(js|jsx)" + "/client/**/*.test.(js|jsx|ts|tsx)" ] } ] @@ -114,6 +118,7 @@ "@svgr/webpack": "^6.2.1", "@testing-library/jest-dom": "^5.15.0", "@testing-library/react": "^12.1.2", + "@types/friendly-words": "^1.2.2", "@types/jest": "^29.5.14", "@types/node": "^16.18.126", "@types/react": "^16.14.0",