deadhead-space-freight-tycoon/eslint.config.js

38 lines
1.1 KiB
JavaScript

import js from "@eslint/js";
import prettier from "eslint-config-prettier";
import globals from "globals";
import tseslint from "typescript-eslint";
// packages/sim and packages/content must stay pure: time and randomness are
// always passed in as arguments (implementation plan rule 0.1.4).
const impureMessage = "Not allowed in pure packages; pass time and seeds in as arguments.";
export default tseslint.config(
{ ignores: ["**/node_modules/**", "**/dist/**", "**/coverage/**"] },
js.configs.recommended,
...tseslint.configs.recommended,
{
languageOptions: {
globals: { ...globals.node },
},
},
{
files: ["packages/sim/**/*.ts", "packages/content/**/*.ts"],
rules: {
"no-restricted-properties": [
"error",
{ object: "Math", property: "random", message: impureMessage },
{ object: "Date", property: "now", message: impureMessage },
],
"no-restricted-syntax": [
"error",
{
selector: "NewExpression[callee.name='Date'][arguments.length=0]",
message: impureMessage,
},
],
},
},
prettier,
);