mirror of
				https://github.com/keanuplayz/TravBot-v3.git
				synced 2024-08-15 02:33:12 +00:00 
			
		
		
		
	Tinkered with pre-commit, jest, and tsconfig
This commit is contained in:
		
							parent
							
								
									5ed9d79715
								
							
						
					
					
						commit
						1fd8634ef1
					
				
					 9 changed files with 4629 additions and 553 deletions
				
			
		
							
								
								
									
										7
									
								
								jest.config.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								jest.config.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,7 @@ | |||
| module.exports = { | ||||
|     roots: ["<rootDir>/src"], | ||||
|     testMatch: ["**/*.test.+(ts|tsx)"], | ||||
|     transform: { | ||||
|         "^.+\\.(ts|tsx)$": "ts-jest" | ||||
|     } | ||||
| }; | ||||
							
								
								
									
										5077
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										5077
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										23
									
								
								package.json
									
										
									
									
									
								
							
							
						
						
									
										23
									
								
								package.json
									
										
									
									
									
								
							|  | @ -17,24 +17,31 @@ | |||
|     "devDependencies": { | ||||
|         "@types/glob": "^7.1.3", | ||||
|         "@types/inquirer": "^6.5.0", | ||||
|         "@types/mocha": "^8.2.0", | ||||
|         "@types/jest": "^26.0.20", | ||||
|         "@types/ms": "^0.7.31", | ||||
|         "@types/node": "^14.14.20", | ||||
|         "@types/ws": "^7.4.0", | ||||
|         "mocha": "^8.2.1", | ||||
|         "jest": "^26.6.3", | ||||
|         "pre-commit": "^1.2.2", | ||||
|         "prettier": "2.1.2", | ||||
|         "ts-node": "^9.1.1", | ||||
|         "ts-jest": "^26.4.4", | ||||
|         "tsc-watch": "^4.2.9", | ||||
|         "typescript": "^3.9.7" | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "build": "tsc && npm prune --production", | ||||
|         "start": "node dist/index.js", | ||||
|         "build": "tsc --project tsconfig.prod.json && npm prune --production", | ||||
|         "start": "node .", | ||||
|         "once": "tsc && npm start", | ||||
|         "dev": "tsc-watch --onSuccess \"node dist/index.js dev\"", | ||||
|         "test": "mocha --require ts-node/register --extension ts --recursive", | ||||
|         "format": "prettier --write **/*" | ||||
|         "dev": "tsc-watch --onSuccess \"node . dev\"", | ||||
|         "test": "jest", | ||||
|         "format": "prettier --write **/*", | ||||
|         "precommit-message": "echo \"Running pre-commit formatting and testing...\"" | ||||
|     }, | ||||
|     "pre-commit": [ | ||||
|         "precommit-message", | ||||
|         "test", | ||||
|         "format" | ||||
|     ], | ||||
|     "keywords": [ | ||||
|         "discord.js", | ||||
|         "bot" | ||||
|  |  | |||
|  | @ -148,7 +148,7 @@ export default new Command({ | |||
|                     if (typeof evaled !== "string") evaled = require("util").inspect(evaled); | ||||
|                     channel.send(clean(evaled), {code: "js", split: true}); | ||||
|                 } catch (err) { | ||||
|                     channel.send(`\`ERROR\` \`\`\`js\n${clean(err)}\n\`\`\``); | ||||
|                     channel.send(clean(err), {code: "js", split: true}); | ||||
|                 } | ||||
|             } | ||||
|         }), | ||||
|  |  | |||
|  | @ -1,6 +1,4 @@ | |||
| import {MessageEmbed, version as djsversion} from "discord.js"; | ||||
| /// @ts-ignore
 | ||||
| import {version} from "../../package.json"; | ||||
| import ms from "ms"; | ||||
| import os from "os"; | ||||
| import Command from "../core/command"; | ||||
|  | @ -53,7 +51,7 @@ export default new Command({ | |||
|                         `**❯ Channels:** ${$.client.channels.cache.size.toLocaleString()}`, | ||||
|                         `**❯ Creation Date:** ${utc($.client.user?.createdTimestamp).format("Do MMMM YYYY HH:mm:ss")}`, | ||||
|                         `**❯ Node.JS:** ${process.version}`, | ||||
|                         `**❯ Version:** v${version}`, | ||||
|                         `**❯ Version:** v${process.env.npm_package_version}`, | ||||
|                         `**❯ Discord.JS:** ${djsversion}`, | ||||
|                         "\u200b" | ||||
|                     ]) | ||||
|  | @ -183,10 +181,10 @@ export default new Command({ | |||
|                     `**❯ Server Join Date:** ${moment(member.joinedAt).format("LL LTS")}`, | ||||
|                     `**❯ Hoist Role:** ${member.roles.hoist ? member.roles.hoist.name : "None"}`, | ||||
|                     `**❯ Roles:** [${roles.length}]: ${ | ||||
|                         roles.length < 10 | ||||
|                         roles.length < 10 && roles.length > 0 | ||||
|                             ? roles.join(", ") | ||||
|                             : roles.length > 10 | ||||
|                             ? this.client.utils.trimArray(roles) | ||||
|                             : roles.length >= 10 | ||||
|                             ? roles.slice(0, 10) | ||||
|                             : "None" | ||||
|                     }` | ||||
|                 ]); | ||||
|  |  | |||
|  | @ -47,11 +47,7 @@ export interface CommonLibrary { | |||
|         timeout?: number | ||||
|     ) => void; | ||||
|     askYesOrNo: (message: Message, senderID: string, timeout?: number) => Promise<boolean>; | ||||
|     askMultipleChoice: ( | ||||
|         message: Message, | ||||
|         senderID: string, | ||||
|         callbackStack: (() => void)[] | ((choice: number) => void) | ||||
|     ) => void; | ||||
|     askMultipleChoice: (message: Message, senderID: string, callbackStack: (() => void)[], timeout?: number) => void; | ||||
| 
 | ||||
|     // Dynamic Properties //
 | ||||
|     args: any[]; | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| import {strict as assert} from "assert"; | ||||
| import {NumberWrapper, StringWrapper, ArrayWrapper} from "../src/core/wrappers"; | ||||
| import {NumberWrapper, StringWrapper, ArrayWrapper} from "./wrappers"; | ||||
| 
 | ||||
| // I can't figure out a way to run the test suite while running the bot.
 | ||||
| describe("Wrappers", () => { | ||||
|  | @ -1,18 +1,35 @@ | |||
| // Reference: https://www.typescriptlang.org/tsconfig | ||||
| { | ||||
|     "include": ["src/**/*"], // This makes it so that the compiler won't compile anything outside of "src". | ||||
|     //"exclude": ["src/**/*.test.ts"], // Exclude .test.ts files since they're for Jest only. | ||||
|     "compilerOptions": { | ||||
|         "rootDir": "src", | ||||
|         "outDir": "dist", | ||||
|         "target": "ES6", | ||||
|         "module": "CommonJS", | ||||
|         "moduleResolution": "node", | ||||
|         "esModuleInterop": true, | ||||
|         "noImplicitAny": true, | ||||
|         "noImplicitReturns": true, | ||||
|         "strictNullChecks": true, | ||||
|         "strictFunctionTypes": true, | ||||
|         "strictPropertyInitialization": true, | ||||
|         "removeComments": true, | ||||
|         "sourceMap": true | ||||
|     }, | ||||
|     "exclude": ["test"] | ||||
|         // Project Structure // | ||||
|         "rootDir": "src", // rootDir only affects the STRUCTURE of the folders, not what gets compiled. For extra measure, make sure the structure conforms to "src". | ||||
|         "outDir": "dist", // Likewise, outDir only chooses which folder to compile to. Prevent the compiler from creating JS files right next to source files. | ||||
|         "moduleResolution": "node", // Specify how the compiler resolves modules, like going for node_modules first then searching elsewhere. The official docs just say to use this instead of classic. | ||||
| 
 | ||||
|         // Type Settings // | ||||
|         "strict": true, // Enables all strict checks possible. | ||||
|         "noImplicitReturns": true, // Makes sure you don't accidentally return something + undefined. | ||||
|         "noFallthroughCasesInSwitch": true, // Prevents accidentally forgetting to break every switch case. Of course, if you know what you're doing, feel free to add a @ts-ignore, which also signals that it's not a mistake. | ||||
|         "forceConsistentCasingInFileNames": true, // Make import paths case-sensitive. "./tEst" is no longer the same as "./test". | ||||
|         "esModuleInterop": true, // Enables compatibility with Node.js' module system since the entire export can be whatever you want. allowSyntheticDefaultImports doesn't address runtime issues and is made redundant by this setting. | ||||
|         "resolveJsonModule": true, // Allows you to import JSON files just like how you can require() them. Do note that if you're accessing any JSON files outside of src, it'll mess up dist. | ||||
|         "lib": ["ES2020"], // Specifies what common libraries you have access to. If you're working in Node.js, you'll want to leave out the DOM library. But do make sure to include "@types/node" because otherwise, variables like "console" won't be defined. | ||||
| 
 | ||||
|         // Output // | ||||
|         "module": "CommonJS", // Compiles ES6 imports to require() syntax. | ||||
|         "removeComments": false, | ||||
|         "sourceMap": true, // Used for displaying the original source when debugging in webpack. Allows you to set breakpoints directly on TypeScript code for VSCode's debugger. | ||||
| 
 | ||||
|         // Library Building // | ||||
|         "declaration": false, // Exports declaration files in addition, used for exporting a module. | ||||
|         "declarationMap": false, // Allows the user to go to the source file when hitting a go-to-implementation key like F12 in VSCode for example. | ||||
|         //"declarationDir": "typings", // declarationDir allows you to separate the compiled code from the declaration files, used in conjunction with package.json's "types" property. | ||||
| 
 | ||||
|         // Web Compatibility // | ||||
|         "target": "ES2020", // ES2017 supports async/await, reducing the amount of compiled code, especially for async-heavy projects. ES2020 is from the Node 14 base (https://github.com/tsconfig/bases/blob/master/bases/node14.json) | ||||
|         "downlevelIteration": false, // This flag adds extra support when targeting ES3, but adds extra bloat otherwise. | ||||
|         "importHelpers": false // Reduce the amount of bloat that comes from downlevelIteration (when polyfills are redeclared). | ||||
|     } | ||||
| } | ||||
|  |  | |||
							
								
								
									
										8
									
								
								tsconfig.prod.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								tsconfig.prod.json
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,8 @@ | |||
| { | ||||
|     "extends": "./tsconfig.json", | ||||
|     "exclude": ["src/**/*.test.ts", "src/**/template.ts"], | ||||
|     "compilerOptions": { | ||||
|         "removeComments": true, | ||||
|         "sourceMap": false | ||||
|     } | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue