{"_id":"@a-mehrabi/aranode-scheduler","_rev":"1-4a11a4bf423fc47fd580fbb38d79664f","name":"@a-mehrabi/aranode-scheduler","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@a-mehrabi/aranode-scheduler","version":"1.0.0","license":"MIT","main":"dist/index.js","types":"dist/index.d.ts","publishConfig":{"access":"public"},"scripts":{"build":"tsc --build","build:prod":"tsc --build","test":"jest lib/*","release":"semantic-release"},"dependencies":{"@a-mehrabi/aranode-types":"workspace:*","@types/node-schedule":"^1.3.2","class-transformer":"^0.4.0","class-validator":"^0.13.1","node-schedule":"^2.0.0"},"devDependencies":{"@types/jest":"^27.0.3","jest":"^27.4.3","jest-junit":"12.0.0","jest-mock-extended":"1.0.14","semantic-release":"^18.0.1","semantic-release-monorepo":"^7.0.5","ts-jest":"^27.1.1","typescript":"4.2.3"},"aranode":{"version":"^0.5.0-beta"},"gitHead":"e88a63821bb3f25a024cd786b7eb6198166bd825","description":"Scheduler implementation for aranode flow engine.","_id":"@a-mehrabi/aranode-scheduler@1.0.0","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-NaDWWWSJU789Zi7C9nIli9FAVIY+kAfyOppIB7mdPCoBQ1Y/37yGtYRgG8Z9V1G1X7XC1RZvC+LBqQrrTi2z3g==","shasum":"b793ad2c243ea116100a30f5f178eb763ec481bf","tarball":"https://registry.npmjs.org/@a-mehrabi/aranode-scheduler/-/aranode-scheduler-1.0.0.tgz","fileCount":29,"unpackedSize":18220,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhzGMNCRA9TVsSAnZWagAAeogP/3RTdGBQD44GEDhVQzHb\nTY5L56rBtiajcGncxNMVGF91p5Nt0I91uFzP4y4UsOt6o4biA6XWJiMBzYWd\nINgdQChrjLhVCb/woQaceDedaL8YejaCFwSHUpn9tg7IpBUohXsBTF1bAElh\n3j2jVZtnlYqH65hQ4kwOglIriVJ+PHcQNSupKheTcqBIcGSh/IEXeYCNM5o3\nqw9VlHVwkjzhhFeBFlINHZJ16xXuB+O0JvD48HMWbtlFP4pq0jqFvOV/GpzH\nAYxz5ED+3jBfaUiTxYKed/ejx/HWfJY/b35VYlemi6bx8d40LIpYu9Z6AcBo\ncLlQG7kQwRJdateilH/mK1QFv5MOy2Tbo8ZiM1FYhPvzbBHbvtDSDUGK4QAy\nA9sPL8ZZq5k4eOwYexGEUg3AnpPG6QQdhvcOFMxu5eZt+UNqRfMlvDUZDK0N\nNyHyx89t3SB9beCrYND7Oy9n451b0+LmXdkZddl7rZWzSoden2DYtxmGD/l2\nTuhjkJETnBTsymulu7qNFrn/5PiNuEx2mIYYKB2tSWrY4euvIsI0tZBqxREi\n8qaU5NQbbSHgonbk8bgA1I3pZ0uy8U2gmWtIvEkalFdTXnADBsxBV/ys+pWJ\n+X/g0saKLo6yD04m3eglfpsbgS/XT7JWKlirmoaiDp0EeqaLxVqhTbeg81tz\n3Vnz\r\n=PIOI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAYhy0ZTxd2UWaAzoVI9qrTFkPkiDl9Izz3XJrPw+RmmAiEA7Fc78QEidhPeEh5uG5ydJZSUOHDVJS0BBaLZ1CVzF0k="}]},"_npmUser":{"name":"a-mehrabi","email":"a.mehrabi.ae@gmail.com"},"directories":{},"maintainers":[{"name":"a-mehrabi","email":"a.mehrabi.ae@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aranode-scheduler_1.0.0_1640784653516_0.566568961587512"},"_hasShrinkwrap":false}},"time":{"created":"2021-12-29T13:30:53.473Z","1.0.0":"2021-12-29T13:30:53.669Z","modified":"2022-04-04T10:52:23.635Z"},"maintainers":[{"name":"a-mehrabi","email":"a.mehrabi.ae@gmail.com"}],"description":"Scheduler implementation for aranode flow engine.","license":"MIT","readme":"# Scheduler Module\n\nScheduler implementation for aranode flow engine.\n\n## Table of Contents\n\n- [Scheduler Module](#scheduler-module)\n  - [Table of Contents](#table-of-contents)\n  - [Installation](#installation)\n  - [Usage](#usage)\n    - [periodic Scheduler](#periodic-scheduler)\n    - [nonperiodic Scheduler](#nonperiodic-scheduler)\n  - [API](#api)\n    - [periodicScheduler](#periodicscheduler)\n    - [nonperiodicScheduler](#nonperiodicscheduler)\n\n## Installation\n\nTo install this module in your aranode project,\nyou just need to add the package using following command:\n\n```bash\n$ yarn add @a-mehrabi/aranode-scheduler\n```\n\nAfter that, when you want to use it,\nyou must include it in custom modules like the following:\n\n<sub><sup>path: .env</sub></sup>\n\n```env\nARANODE_CUSTOM_MODULES=@a-mehrabi/aranode-scheduler\n```\n\n## Usage\n\nFor using Scheduler, you need three manifests:\n\n1. [Periodic scheduler](#periodic-scheduler) adapter manifest ([periodicScheduler](#periodicscheduler))\n\n2. [Nonperiodic scheduler](#nonperiodic-scheduler) adapter manifest ([nonperiodicScheduler](#nonperiodicscheduler))\n\n### periodic Scheduler\n\nto schedule periodic jobs you have to create a adapter manifest.\n\nflow example:\n\n```yaml\nversion: 1\nkind: flow\nname: flow-name\n\nflow:\n  start:\n    nextNode: scheduled\n\n  scheduled:\n    transform:\n      path: 'dist/input-transformer.js'\n    terminal: true\n```\n\nConfigs example:\n\n<sub><sup>path: adapter.yml</sub></sup>\n\n```yaml\nversion: 1\nkind: adapter\nname: adapter-name\n\nadapter:\n  periodicScheduler:\n    minute:\n      - 57\n```\n\n<sub><sup>path: bind.yml</sub></sup>\n\n```yaml\nversion: 1\nkind: bind\nname: bind-name\n\nbind:\n  flow-name:\n    - type: inbound\n      port: inbound-port-name\n      adapter: adapter-name\n```\n\n### nonperiodic Scheduler\n\nto schedule nonperiodic jobs in a specific date you have to create a adapter manifest.\n\nflow example:\n\n```yaml\nversion: 1\nkind: flow\nname: flow-name\n\nflow:\n  start:\n    nextNode: scheduled\n\n  scheduled:\n    transform:\n      path: 'dist/input-transformer.js'\n    terminal: true\n```\n\nConfigs example:\n\n<sub><sup>path: adapter.yml</sub></sup>\n\n```yaml\nversion: 1\nkind: adapter\nname: adapter-name\n\nadapter:\n  nonperiodicScheduler:\n    year: 2021\n    month: 12\n    day: 14\n    hour: 12\n    mnute: 28\n    second: 10\n```\n\n<sub><sup>path: bind.yml</sub></sup>\n\n```yaml\nversion: 1\nkind: bind\nname: bind-name\n\nbind:\n  flow-name:\n    - type: inbound\n      port: inbound-port-name\n      adapter: adapter-name\n```\n\n## API\n\n### periodicScheduler\n\nType: adapter manifest\n\nOptions:\n\n- **date** (number[]), optional\n\n  (1-31).\n\n- **dayOfWeek** (number[]), optional\n\n  (0-6) Starting with Sunday.\n\n- **hour** (number[]), optional\n\n  (0-23).\n\n- **minute** (number[]), optional\n\n  (0-59).\n\n- **month** (number[]), optional\n\n  (0-11).\n\n- **scond** (number[]), optional\n\n  (0-59).\n\n- **year** (number[]), optional\n\n### nonperiodicScheduler\n\nType: adapter manifest\n\nOptions:\n\n- **year** (number), required\n\n- **month** (number), required\n\n  (0-11).\n\n- **day** (number), required\n\n- **hour** (number), required\n\n  (0-23).\n\n- **minute** (number), required\n\n  (0-59).\n\n- **scond** (number), required\n\n  (0-59).\n","readmeFilename":"README.md"}