Skip to content

Commit

Permalink
refactor!: migrate to TypeScript (#694)
Browse files Browse the repository at this point in the history
BREAKING CHANGE: removed `cron.job()` method in favor of `new CronJob(...args)` /
`CronJob.from(argsObject)`
BREAKING CHANGE: removed `cron.time()` method in favor of `new CronTime()`
BREAKING CHANGE: `CronJob`: constructor no longer accepts an object as its first and
only params. Use `CronJob.from(argsObject)` instead.
BREAKING CHANGE: `CronJob`: callbacks are now called in the order they were registered
  • Loading branch information
sheerlox committed Sep 26, 2023
1 parent 1407f1f commit 5fdfbee
Show file tree
Hide file tree
Showing 45 changed files with 2,587 additions and 4,197 deletions.
71 changes: 53 additions & 18 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -1,25 +1,60 @@
{
"extends": [
"standard",
"plugin:jest/recommended",
"plugin:import/recommended",
"plugin:n/recommended",
"plugin:prettier/recommended",
"plugin:promise/recommended"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 2018
},
"globals": {
"define": "readonly"
"project": "tsconfig.json",
"sourceType": "module"
},
"plugins": ["@typescript-eslint/eslint-plugin"],
"extends": [
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:@typescript-eslint/strict",
"plugin:prettier/recommended"
],
"root": true,
"env": {
"browser": true,
"es6": true,
"node": true,
"jest/globals": true
"node": true
},
"rules": {
"jest/no-done-callback": "off"
}
"@typescript-eslint/no-unused-vars": [
"warn",
{
"argsIgnorePattern": "^_"
}
],
"@typescript-eslint/naming-convention": [
"warn",
{
"selector": ["typeLike"],
"format": ["PascalCase"]
},
{
"selector": ["variableLike", "function"],
"format": ["camelCase"],
"leadingUnderscore": "allow"
},
{
"selector": ["variable"],
"format": ["camelCase", "UPPER_CASE"]
},
{
"selector": "variable",
"types": ["boolean"],
"format": ["PascalCase"],
"prefix": ["is", "should", "has", "can", "did", "was", "will"]
}
]
},
"overrides": [
{
"files": ["tests/**/*.ts"],
"plugins": ["jest"],
"extends": ["plugin:jest/recommended", "plugin:jest/style"],
"rules": {
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/unbound-method": "off",
"jest/no-done-callback": "off"
}
}
]
}
8 changes: 8 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,41 @@
<!-- Commit types: https://github.com/insurgent-lab/conventional-changelog-preset#commit-types-->

## Description

<!--- Describe your changes in detail -->

## Related Issue

<!--- This project only accepts pull requests related to open issues -->
<!--- If suggesting a new feature or change, please discuss it in an issue first -->
<!--- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!--- Please link to the issue here: -->

## Motivation and Context

<!--- Why is this change required? What problem does it solve? -->

## How Has This Been Tested?

<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran to -->
<!--- see how your change affects other areas of the code, etc. -->

## Screenshots (if appropriate):

## Types of changes

<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)

## Checklist:

<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->

- [ ] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:

runs-on: ubuntu-latest
env:
node-version: 18.x
node-version: 20.x

steps:
- name: Checkout project
Expand All @@ -30,6 +30,8 @@ jobs:
node-version: ${{ env.node-version }}
- name: Install packages
run: npm ci
- name: Build project
run: npm run build
- name: Run Semantic Release
run: npm run release
env:
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
node: [14.x, 16.x, 18.x]
node: [16.x, 18.x, 20.x]
os: [ubuntu-latest, windows-latest, macos-latest]

steps:
Expand All @@ -23,11 +23,12 @@ jobs:
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
cache: 'npm'
- name: Install packages
run: npm ci
- name: Build project
run: npm run build
- name: Check codestyle compliance
run: npm run lint
- name: Check TS types
run: npm run test:types
- name: Run tests
run: npm run test
133 changes: 130 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,130 @@
*.sw[a-z]
node_modules
coverage
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Snowpack dependency directory (https://snowpack.dev/)
web_modules/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional stylelint cache
.stylelintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local

# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache

# Next.js build output
.next
out

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# vuepress v2.x temp and cache directory
.temp
.cache

# Docusaurus cache and generated files
.docusaurus

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Stores VSCode versions used for testing VSCode extensions
.vscode-test

# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
3 changes: 3 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
CHANGELOG.md
dist/
coverage/
17 changes: 17 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"version": "1.0.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Jest Debug",
"env": { "NODE_ENV": "test" },
"program": "${workspaceFolder}/node_modules/.bin/jest",
"args": [],
"console": "integratedTerminal",
"windows": {
"program": "${workspaceFolder}/node_modules/jest/bin/jest"
}
}
]
}
Loading

0 comments on commit 5fdfbee

Please sign in to comment.