-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpackage.json
More file actions
76 lines (76 loc) · 5.38 KB
/
package.json
File metadata and controls
76 lines (76 loc) · 5.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
{
"name": "tinyeffect",
"version": "0.3.4",
"private": true,
"description": "A tiny TypeScript library for handling side effects in a unified way using algebraic effects, offering a type-safe approach for async operations, error handling, dependency injection, and more.",
"keywords": [
"type safe",
"effect",
"side effect",
"algebraic effect",
"asynchronous",
"exception",
"dependency injection"
],
"homepage": "https://github.com/Snowflyt/tinyeffect",
"bugs": {
"url": "https://github.com/Snowflyt/tinyeffect/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/Snowflyt/tinyeffect"
},
"license": "MIT",
"author": "Ge Gao (Snowflyt) <gaoge011022@gmail.com>",
"type": "module",
"main": "./index.js",
"module": "./index.js",
"types": "./index.d.ts",
"scripts": {
"bench": "vitest bench --run",
"bench:watch": "vitest bench",
"prebuild": "npm run clean && npm run test-types && npm run test",
"build": "npm run compile && cpy package.json dist && json -I -f dist/package.json -e \"delete this.private; delete this.scripts; delete this.devDependencies\" && cpy README.md dist && cpy LICENSE dist && node -e \"import { replaceInFileSync } from 'replace-in-file'; import packageJSON from './dist/package.json' with { type: 'json' }; replaceInFileSync({ files: 'dist/README.md', from: './screenshot.svg', to: 'https://raw.githubusercontent.com/Snowflyt/tinyeffect/v' + packageJSON['version'] + '/screenshot.svg' })\"",
"clean": "rimraf dist",
"compile": "tsc --emitDeclarationOnly --composite false -p tsconfig.build.json && cpy src/**/*.ts dist && rimraf -g dist/**/*.{proof,spec,bench}.ts dist/types.d.ts && node -e \"import path from 'node:path'; import fs from 'node:fs'; import tsBlankSpace from 'ts-blank-space'; fs.readdirSync('dist', { recursive: true }).map((file) => path.join('dist', file)).filter((file) => file.endsWith('.ts') && !file.endsWith('.d.ts') && fs.statSync(file).isFile()).forEach((file) => { fs.writeFileSync(file.substring(0, file.lastIndexOf('.')) + '.js', tsBlankSpace(fs.readFileSync(file, 'utf-8'))); fs.rmSync(file); })\" && cpy src/**/*.{js,d.ts} dist && tsc-alias -p tsconfig.build.json && replace-in-file \"/^\\s*\\/\\/ prettier-ignore$/mg\" \"\" dist/**/*.js --isRegex && replace-in-file \"/^\\s*\\/\\/ eslint-disable-next-line .+$/mg\" \"\" dist/**/*.js --isRegex && replace-in-file \"/^\\s*\\/\\/ @ts-.+$/mg\" \"\" dist/**/*.js --isRegex && replace-in-file \"/^\\s*\\/\\/ Generated .+$/mg\" \"\" dist/**/*.js --isRegex && replace-in-file \"/^\\s*\\/\\/ \\* \\d+$/mg\" \"\" dist/**/*.js --isRegex && prettier --log-level=silent --print-width 80 --write dist/**/* --ignore-path !dist/**/* && node -e \"import { replaceInFileSync } from 'replace-in-file'; replaceInFileSync({ files: 'dist/**/*.js', from: /^\\s*\\*\\/\\n\\n/mg, to: '*/\\n' })\" && prettier --log-level=silent --print-width 80 --write dist/**/* --ignore-path !dist/**/*",
"format": "prettier --no-error-on-unmatched-pattern --write **/*.{js,ts,json,md} *.{cjs,mjs,cts,mts}",
"lint": "eslint **/*.{js,ts} *.{cjs,mjs,cts,mts} --no-error-on-unmatched-pattern --report-unused-disable-directives-severity error --max-warnings 0",
"lint:fix": "eslint --fix **/*.{js,ts} *.{cjs,mjs,cts,mts} --no-error-on-unmatched-pattern --report-unused-disable-directives-severity error --max-warnings 0",
"prepare": "node -e \"import fs from 'fs'; import path from 'path'; const hooksDir = path.join(process.cwd(), '.githooks'); const gitHooksDir = path.join(process.cwd(), '.git/hooks'); if (!fs.existsSync(gitHooksDir)) { console.error('Git hooks directory not found, please run this in a git repository.'); process.exit(1); } fs.readdirSync(hooksDir).forEach(file => { const srcFile = path.join(hooksDir, file); const destFile = path.join(gitHooksDir, file); fs.copyFileSync(srcFile, destFile); if (process.platform !== 'win32' && !file.endsWith('.cmd')) { fs.chmodSync(destFile, 0o755); } })\"",
"test": "vitest run",
"test-types": "typroof",
"test:cov": "vitest run --coverage --coverage.reporter=text --coverage.reporter=lcov --coverage.include \"src/**/!(*.proof).{js,ts}\"",
"test:ui": "vitest --ui --coverage.enabled=true --coverage.include \"src/**/!(*.proof).{js,ts}\"",
"test:watch": "vitest",
"test:watch-cov": "vitest --coverage --coverage.reporter=text --coverage.reporter=lcov --coverage.include \"src/**/!(*.proof).{js,ts}\"",
"typecheck": "tsc --noEmit --composite false -p tsconfig.build.json && tsc --noEmit --composite false -p tsconfig.test.json"
},
"devDependencies": {
"@commitlint/cli": "^19.8.0",
"@typescript-eslint/parser": "^8.28.0",
"@vitest/coverage-v8": "^3.0.9",
"@vitest/ui": "^3.0.9",
"cpy-cli": "^5.0.0",
"effect": "^3.14.2",
"eslint": "^9.23.0",
"eslint-config-prettier": "^10.1.1",
"eslint-import-resolver-typescript": "^4.2.7",
"eslint-plugin-import-x": "^4.9.3",
"eslint-plugin-jsdoc": "^50.6.9",
"eslint-plugin-prettier": "^5.2.5",
"eslint-plugin-sonarjs": "^3.0.2",
"eslint-plugin-sort-destructure-keys": "^2.0.0",
"globals": "^16.0.0",
"json": "^11.0.0",
"prettier": "^3.5.3",
"prettier-plugin-packagejson": "^2.5.10",
"replace-in-file": "^8.3.0",
"rimraf": "^6.0.1",
"ts-blank-space": "^0.6.1",
"tsc-alias": "^1.8.12",
"typescript": "^5.8.2",
"typescript-eslint": "^8.28.0",
"typroof": "^0.5.1",
"vitest": "^3.0.9"
}
}