From df21c1d2a575d793f4df8eb8e9937a50227ee410 Mon Sep 17 00:00:00 2001 From: marcus-sa Date: Mon, 11 Sep 2023 14:16:49 +0200 Subject: [PATCH] build(workflow): migrate to nx --- packages/workflow/.eslintrc.json | 28 +++++++++++ packages/workflow/.npmignore | 1 - packages/workflow/dist/.gitkeep | 0 packages/workflow/dist/esm/package.json | 1 - packages/workflow/index.ts | 1 - packages/workflow/jest.config.ts | 12 +++++ packages/workflow/package.json | 34 +------------- packages/workflow/project.json | 51 +++++++++++++++++++++ packages/workflow/src/index.ts | 1 + packages/workflow/src/{ => lib}/workflow.ts | 0 packages/workflow/tests/workflow.spec.ts | 2 +- packages/workflow/tsconfig.esm.json | 24 ---------- packages/workflow/tsconfig.json | 41 +++-------------- packages/workflow/tsconfig.lib.json | 11 +++++ packages/workflow/tsconfig.spec.json | 15 ++++++ tsconfig.base.json | 3 +- 16 files changed, 129 insertions(+), 96 deletions(-) create mode 100644 packages/workflow/.eslintrc.json delete mode 100644 packages/workflow/.npmignore delete mode 100644 packages/workflow/dist/.gitkeep delete mode 100644 packages/workflow/dist/esm/package.json delete mode 100644 packages/workflow/index.ts create mode 100644 packages/workflow/jest.config.ts create mode 100644 packages/workflow/project.json create mode 100644 packages/workflow/src/index.ts rename packages/workflow/src/{ => lib}/workflow.ts (100%) delete mode 100644 packages/workflow/tsconfig.esm.json create mode 100644 packages/workflow/tsconfig.lib.json create mode 100644 packages/workflow/tsconfig.spec.json diff --git a/packages/workflow/.eslintrc.json b/packages/workflow/.eslintrc.json new file mode 100644 index 000000000..8a155d563 --- /dev/null +++ b/packages/workflow/.eslintrc.json @@ -0,0 +1,28 @@ +{ + "extends": ["../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "parserOptions": { + "project": ["packages/workflow/tsconfig.*?.json"] + }, + "rules": {} + }, + { + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.json"], + "parser": "jsonc-eslint-parser", + "rules": { + "@nx/dependency-checks": "error" + } + } + ] +} diff --git a/packages/workflow/.npmignore b/packages/workflow/.npmignore deleted file mode 100644 index 2b29f2764..000000000 --- a/packages/workflow/.npmignore +++ /dev/null @@ -1 +0,0 @@ -tests diff --git a/packages/workflow/dist/.gitkeep b/packages/workflow/dist/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/workflow/dist/esm/package.json b/packages/workflow/dist/esm/package.json deleted file mode 100644 index 6990891ff..000000000 --- a/packages/workflow/dist/esm/package.json +++ /dev/null @@ -1 +0,0 @@ -{"type": "module"} diff --git a/packages/workflow/index.ts b/packages/workflow/index.ts deleted file mode 100644 index d7a0e7aab..000000000 --- a/packages/workflow/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './src/workflow.js'; diff --git a/packages/workflow/jest.config.ts b/packages/workflow/jest.config.ts new file mode 100644 index 000000000..476b78131 --- /dev/null +++ b/packages/workflow/jest.config.ts @@ -0,0 +1,12 @@ +import type { Config } from 'jest'; + +export default { + displayName: 'workflow', + preset: '../../jest.preset.js', + testEnvironment: 'node', + transform: { + '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }], + }, + moduleFileExtensions: ['ts', 'js', 'html'], + coverageDirectory: '../../coverage/packages/workflow', +} as Config; diff --git a/packages/workflow/package.json b/packages/workflow/package.json index fa6c7c3b2..e8772a658 100644 --- a/packages/workflow/package.json +++ b/packages/workflow/package.json @@ -2,26 +2,12 @@ "name": "@deepkit/workflow", "version": "1.0.1-alpha.97", "description": "Deepkit workflow engine / finite state machine", - "type": "commonjs", - "main": "./dist/cjs/index.js", - "module": "./dist/esm/index.js", - "types": "./dist/cjs/index.d.ts", - "exports": { - ".": { - "types": "./dist/cjs/index.d.ts", - "require": "./dist/cjs/index.js", - "default": "./dist/esm/index.js" - } - }, "repository": "https://github.com/deepkit/deepkit-framework", "author": "Marc J. Schmidt ", "license": "MIT", "publishConfig": { "access": "public" }, - "scripts": { - "build": "echo '{\"type\": \"module\"}' > ./dist/esm/package.json" - }, "peerDependencies": { "@deepkit/core": "^1.0.1-alpha.13", "@deepkit/event": "^1.0.1-alpha.13", @@ -29,23 +15,5 @@ "@deepkit/stopwatch": "^1.0.1-alpha.13", "@deepkit/type": "^1.0.1-alpha.13" }, - "devDependencies": { - "@deepkit/core": "^1.0.1-alpha.97", - "@deepkit/event": "^1.0.1-alpha.97", - "@deepkit/injector": "^1.0.1-alpha.97", - "@deepkit/stopwatch": "^1.0.1-alpha.97", - "@deepkit/type": "^1.0.1-alpha.97" - }, - "jest": { - "transform": { - "^.+\\.(ts|tsx)$": "ts-jest" - }, - "moduleNameMapper": { - "(.+)\\.js": "$1" - }, - "testMatch": [ - "**/tests/**/*.spec.ts" - ] - }, - "gitHead": "56081823b559bb68b77a8781957af5d9c2e019a7" + "types": "./src/index.d.ts" } diff --git a/packages/workflow/project.json b/packages/workflow/project.json new file mode 100644 index 000000000..dcc48e0a4 --- /dev/null +++ b/packages/workflow/project.json @@ -0,0 +1,51 @@ +{ + "name": "workflow", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "packages/workflow/src", + "projectType": "library", + "targets": { + "build": { + "executor": "@nx/rollup:rollup", + "outputs": ["{options.outputPath}"], + "options": { + "outputPath": "dist/{projectRoot}", + "main": "{projectRoot}/src/index.ts", + "tsConfig": "{projectRoot}/tsconfig.lib.json", + "rollupConfig": "packages/rollup.config.js", + "project": "{projectRoot}/package.json", + "format": ["esm", "cjs"], + "generateExportsField": true, + "external": "all", + "compiler": "tsc" + } + }, + "release": { + "command": "release-it --config={projectRoot}/.release-it.json" + }, + "lint": { + "executor": "@nx/linter:eslint", + "outputs": ["{options.outputFile}"], + "options": { + "lintFilePatterns": [ + "packages/workflow/**/*.ts", + "packages/workflow/package.json" + ] + } + }, + "test": { + "executor": "@nx/jest:jest", + "outputs": ["{workspaceRoot}/coverage/{projectRoot}"], + "options": { + "jestConfig": "packages/workflow/jest.config.ts", + "passWithNoTests": true + }, + "configurations": { + "ci": { + "ci": true, + "codeCoverage": true + } + } + } + }, + "tags": ["workflow"] +} diff --git a/packages/workflow/src/index.ts b/packages/workflow/src/index.ts new file mode 100644 index 000000000..6f67dac61 --- /dev/null +++ b/packages/workflow/src/index.ts @@ -0,0 +1 @@ +export * from './lib/workflow.js'; diff --git a/packages/workflow/src/workflow.ts b/packages/workflow/src/lib/workflow.ts similarity index 100% rename from packages/workflow/src/workflow.ts rename to packages/workflow/src/lib/workflow.ts diff --git a/packages/workflow/tests/workflow.spec.ts b/packages/workflow/tests/workflow.spec.ts index 7915206c9..7e329db58 100644 --- a/packages/workflow/tests/workflow.spec.ts +++ b/packages/workflow/tests/workflow.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from '@jest/globals'; -import { createWorkflow, WorkflowEvent } from '../src/workflow.js'; +import { createWorkflow, WorkflowEvent } from '../src/lib/workflow.js'; import { eventDispatcher, EventDispatcher, EventToken } from '@deepkit/event'; import { InjectorContext, InjectorModule } from '@deepkit/injector'; diff --git a/packages/workflow/tsconfig.esm.json b/packages/workflow/tsconfig.esm.json deleted file mode 100644 index 51aa344a9..000000000 --- a/packages/workflow/tsconfig.esm.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "./dist/esm", - "module": "ES2020" - }, - "references": [ - { - "path": "../core/tsconfig.esm.json" - }, - { - "path": "../event/tsconfig.esm.json" - }, - { - "path": "../injector/tsconfig.esm.json" - }, - { - "path": "../stopwatch/tsconfig.esm.json" - }, - { - "path": "../type/tsconfig.esm.json" - } - ] -} \ No newline at end of file diff --git a/packages/workflow/tsconfig.json b/packages/workflow/tsconfig.json index d6ce35cea..23332504d 100644 --- a/packages/workflow/tsconfig.json +++ b/packages/workflow/tsconfig.json @@ -1,41 +1,14 @@ { - "compilerOptions": { - "forceConsistentCasingInFileNames": true, - "strict": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "sourceMap": true, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "moduleResolution": "node", - "target": "es2018", - "module": "CommonJS", - "esModuleInterop": true, - "outDir": "./dist/cjs", - "declaration": true, - "composite": true - }, - "reflection": true, - "include": [ - "src", - "tests", - "index.ts" - ], + "extends": "../../tsconfig.base.json", + "files": [], + "include": [], "references": [ { - "path": "../core/tsconfig.json" - }, - { - "path": "../event/tsconfig.json" - }, - { - "path": "../injector/tsconfig.json" - }, - { - "path": "../stopwatch/tsconfig.json" + "path": "./tsconfig.lib.json" }, { - "path": "../type/tsconfig.json" + "path": "./tsconfig.spec.json" } - ] + ], + "reflection": true } diff --git a/packages/workflow/tsconfig.lib.json b/packages/workflow/tsconfig.lib.json new file mode 100644 index 000000000..3b8173e63 --- /dev/null +++ b/packages/workflow/tsconfig.lib.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "declaration": true, + "types": ["node"] + }, + "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"], + "include": ["src/**/*.ts"], + "reflection": true +} diff --git a/packages/workflow/tsconfig.spec.json b/packages/workflow/tsconfig.spec.json new file mode 100644 index 000000000..0a3e02d10 --- /dev/null +++ b/packages/workflow/tsconfig.spec.json @@ -0,0 +1,15 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "module": "commonjs", + "types": ["jest", "node"] + }, + "include": [ + "jest.config.ts", + "src/**/*.test.ts", + "src/**/*.spec.ts", + "src/**/*.d.ts" + ], + "reflection": true +} diff --git a/tsconfig.base.json b/tsconfig.base.json index 87f0e5e9d..44bf98ee1 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -61,7 +61,8 @@ "@deepkit/type-compiler": ["packages/type-compiler/src/index.ts"], "@deepkit/type-spec": ["packages/type-spec/src/index.ts"], "@deepkit/ui-library": ["packages/ui-library/src/index.ts"], - "@deepkit/vite": ["packages/vite/src/index.ts"] + "@deepkit/vite": ["packages/vite/src/index.ts"], + "@deepkit/workflow": ["packages/workflow/src/index.ts"] } }, "exclude": ["node_modules", "tmp"]