mirror of
https://github.com/Llewellynvdm/nativefier.git
synced 2024-11-16 01:37:07 +00:00
e664bc6af8
This PR allows us to code playwright integration tests that can potentially replace some of our manual tests and allow us automated testing of the app itself. Current technical limitations: * No app level keyboard simulation support (e.g, zoom in, zoom out, etc.) * No code coverage support, so even though we are testing the app, the code coverage does not reflect this fact
137 lines
5.8 KiB
JSON
137 lines
5.8 KiB
JSON
{
|
|
"name": "nativefier",
|
|
"version": "47.0.0",
|
|
"description": "Wrap web apps natively",
|
|
"license": "MIT",
|
|
"author": "Goh Jia Hao",
|
|
"engines_README": "Bumping the minimum required Node version? You must bump: 1. package.json -> engines.node, 2. package.json -> devDependencies.@types/node , 3. tsconfig.json -> {target, lib} , 4. .github/workflows/ci.yml -> node-version",
|
|
"engines_READMEforEnginesNode": "Here in engines.node, we require a version as old as possible, for Nativefier to be easily installable using the stock Node.js shipped by conservative Linux distros. It's a balancing act between this, and our own dependencies requiring more a recent Node; as much as possible, try to keep supporting Debian stable; https://packages.debian.org/search?suite=stable&keywords=nodejs",
|
|
"engines": {
|
|
"node": ">= 12.9.0",
|
|
"npm": ">= 6.9.0"
|
|
},
|
|
"keywords": [
|
|
"desktop",
|
|
"electron",
|
|
"app",
|
|
"native",
|
|
"wrapper"
|
|
],
|
|
"main": "lib/main.js",
|
|
"typings": "lib/main.d.ts",
|
|
"bin": {
|
|
"nativefier": "lib/cli.js"
|
|
},
|
|
"homepage": "https://github.com/nativefier/nativefier",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/nativefier/nativefier.git"
|
|
},
|
|
"bugs": {
|
|
"url": "https://github.com/nativefier/nativefier/issues"
|
|
},
|
|
"scripts": {
|
|
"build-app": "cd app && webpack",
|
|
"build-app-static": "ncp app/src/static/ app/lib/static/ && ncp app/dist/preload.js app/lib/preload.js && ncp app/dist/preload.js.map app/lib/preload.js.map",
|
|
"build": "npm run clean && tsc --build shared src app && npm run build-app && npm run build-app-static",
|
|
"build:watch": "npm run clean && tsc --build shared src app --watch",
|
|
"changelog": "./.github/generate-changelog",
|
|
"clean": "rimraf coverage/ lib/ app/lib/ app/dist/ shared/lib",
|
|
"clean:full": "npm run clean && rimraf app/node_modules/ node_modules/",
|
|
"lint:fix": "cd src && eslint . --ext .ts --fix && cd ../shared && eslint src --ext .ts --fix && cd ../app && eslint src --ext .ts --fix",
|
|
"lint:format": "prettier --write 'src/**/*.ts' 'app/src/**/*.ts' 'shared/src/**/*.ts'",
|
|
"lint": "eslint shared app src --ext .ts",
|
|
"list-outdated-deps": "npm out; cd app && npm out; true",
|
|
"prepare": "cd app && npm ci && cd .. && npm run build",
|
|
"relock": "rm -rf ./node_modules/ ./app/node_modules/ ./npm-shrinkwrap.json ./app/npm-shrinkwrap.json && npm install --ignore-scripts --package-lock && mv package-lock.json npm-shrinkwrap.json && npm out; cd app && npm install --ignore-scripts --package-lock && mv package-lock.json npm-shrinkwrap.json && npm out",
|
|
"test:integration": "jest --testRegex '.*integration-test.js'",
|
|
"test:manual": "npm run build && bash .github/manual-test",
|
|
"test:playwright": "jest --testRegex '.*playwright-test.js'",
|
|
"test:unit": "jest",
|
|
"test:watch": "echo 'Remember to run npm run build:watch for the test watcher to work!' && jest --watchAll --collectCoverage=false",
|
|
"test:withlog": "LOGLEVEL=trace npm run test",
|
|
"test": "jest --testRegex '[-.]test\\.js$'",
|
|
"watch": "npx concurrently \"npm:*:watch\""
|
|
},
|
|
"dependencies": {
|
|
"@electron/universal": "^1.2.1",
|
|
"axios": "^0.26.0",
|
|
"electron-packager": "^15.2.0",
|
|
"fs-extra": "^10.0.0",
|
|
"gitcloud": "^0.2.3",
|
|
"hasbin": "^1.2.3",
|
|
"loglevel": "^1.7.1",
|
|
"ncp": "^2.0.0",
|
|
"page-icon": "^0.4.0",
|
|
"sanitize-filename": "^1.6.3",
|
|
"source-map-support": "^0.5.19",
|
|
"tmp": "^0.2.1",
|
|
"yargs": "^17.1.1"
|
|
},
|
|
"devDependencies": {
|
|
"@types/debug": "^4.1.6",
|
|
"@types/fs-extra": "^9.0.13",
|
|
"@types/hasbin": "^1.2.0",
|
|
"@types/jest": "^27.0.1",
|
|
"@types/ncp": "^2.0.5",
|
|
"@types/node": "14.14.20",
|
|
"@types/page-icon": "^0.3.4",
|
|
"@types/tmp": "^0.2.1",
|
|
"@typescript-eslint/eslint-plugin": "^5.3.0",
|
|
"@typescript-eslint/parser": "^5.3.0",
|
|
"electron": "^18.0.3",
|
|
"eslint": "^8.1.0",
|
|
"eslint-config-prettier": "^8.3.0",
|
|
"eslint-plugin-prettier": "^4.0.0",
|
|
"jest": "^27.0.6",
|
|
"playwright": "^1.20.1",
|
|
"prettier": "^2.3.2",
|
|
"rimraf": "^3.0.2",
|
|
"ts-loader": "^9.2.3",
|
|
"typescript": "^4.3.5",
|
|
"webpack": "^5.45.1",
|
|
"webpack-cli": "^4.7.2"
|
|
},
|
|
"jest_COMMENTS": {
|
|
"testPathIgnorePatterns": "See https://jestjs.io/docs/configuration#testpathignorepatterns-arraystring . We set it to 1. ignore coverage for deps, and 2. be sure we test the compiled JS, which is in `lib`, not `src` or `dist`",
|
|
"watchPathIgnorePatterns": "See https://jestjs.io/docs/configuration#watchpathignorepatterns-arraystring . We set it for `jest --watch` (a.k.a. `npm run test:watch`) to trigger only after `tsc --watch` (a.k.a. `npm run build:watch`) completes its incremental compilation. Else, jest will pick up immediately on changes in `src` when TSC is barely running, hence testing not-recompiled-yet code and being super confusing, as 1. your changes won't be taken during this first run, and 2. the *next* run (e.g. after a second 'Save' in your editor) will actually have the new code :D"
|
|
},
|
|
"jest": {
|
|
"collectCoverage": true,
|
|
"collectCoverageFrom": [
|
|
"./app/dist/**/*.js",
|
|
"./lib/**/*.js",
|
|
"./shared/lib/**/*.js"
|
|
],
|
|
"coveragePathIgnorePatterns": [
|
|
"[.-]test.js$"
|
|
],
|
|
"moduleNameMapper": {
|
|
"^electron$": "<rootDir>/app/dist/mocks/electron.js"
|
|
},
|
|
"setupFiles": [
|
|
"./lib/jestSetupFiles"
|
|
],
|
|
"testEnvironment": "node",
|
|
"testPathIgnorePatterns": [
|
|
"<rootDir>/app/node_modules.*",
|
|
"<rootDir>/app/src.*",
|
|
"<rootDir>/app/lib.*",
|
|
"<rootDir>/src.*"
|
|
],
|
|
"watchPathIgnorePatterns": [
|
|
"<rootDir>/app/lib.*",
|
|
"<rootDir>/app/src.*",
|
|
"<rootDir>/app/tsconfig.json",
|
|
"<rootDir>/shared/tsconfig.json",
|
|
"<rootDir>/src.*",
|
|
"<rootDir>/tsconfig-base.json"
|
|
]
|
|
},
|
|
"prettier": {
|
|
"arrowParens": "always",
|
|
"singleQuote": true,
|
|
"trailingComma": "all"
|
|
}
|
|
}
|