diff --git a/package.json b/package.json index 3448d19..b9b7b77 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,8 @@ "@rondo.dev/redux": "file:packages/redux", "@rondo.dev/http-client": "file:packages/http-client", "@rondo.dev/test-utils": "file:packages/test-utils", - "@rondo.dev/http-types": "file:packages/http-types" + "@rondo.dev/http-types": "file:packages/http-types", + "@rondo.dev/validator": "file:packages/validator" }, "devDependencies": { "@types/bcrypt": "^3.0.0", @@ -96,4 +97,4 @@ "watchify": "^3.11.1" }, "name": "node" -} +} \ No newline at end of file diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index e48ffb5..171e65c 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -13,7 +13,6 @@ export * from './router' export * from './routes' export * from './services' export * from './session' -export * from './validator' import * as rpc from './rpc' export {rpc} diff --git a/packages/server/src/middleware/ErrorApiHandler.ts b/packages/server/src/middleware/ErrorApiHandler.ts index f278ac1..90d53f3 100644 --- a/packages/server/src/middleware/ErrorApiHandler.ts +++ b/packages/server/src/middleware/ErrorApiHandler.ts @@ -1,7 +1,7 @@ import {TErrorHandler} from './TErrorHandler' import {ILogger} from '@rondo.dev/logger' import {IMiddleware} from './IMiddleware' -import {ValidationError} from '../validator' +import {ValidationError} from '@rondo.dev/validator' export class ErrorApiHandler implements IMiddleware { constructor(readonly logger: ILogger) {} diff --git a/packages/server/src/rpc/TeamService.ts b/packages/server/src/rpc/TeamService.ts index 2e46c3d..af9e80f 100644 --- a/packages/server/src/rpc/TeamService.ts +++ b/packages/server/src/rpc/TeamService.ts @@ -1,19 +1,11 @@ -import {IDatabase} from '../database/IDatabase' -import {Validator} from '../validator' -import {Team} from '../entities/Team' -import {UserTeam} from '../entities/UserTeam' -import {IUserPermissions} from '../services/IUserPermissions' -import { - trim, - entities as e, - ITeamService, - ITeamCreateParams, - ITeamRemoveParams, - ITeamUpdateParams, - ITeamAddUserParams, -} from '@rondo.dev/common' -import { ensureLoggedIn, IContext, RPC } from './RPC' +import { ITeamAddUserParams, ITeamCreateParams, ITeamRemoveParams, ITeamService, ITeamUpdateParams, trim } from '@rondo.dev/common' import { IUserInTeam } from '@rondo.dev/common/lib/team/IUserInTeam' +import Validator from '@rondo.dev/validator' +import { IDatabase } from '../database/IDatabase' +import { Team } from '../entities/Team' +import { UserTeam } from '../entities/UserTeam' +import { IUserPermissions } from '../services/IUserPermissions' +import { ensureLoggedIn, IContext, RPC } from './RPC' @ensureLoggedIn export class TeamService implements RPC { diff --git a/packages/server/src/services/AuthService.ts b/packages/server/src/services/AuthService.ts index 1406eca..95bc2cf 100644 --- a/packages/server/src/services/AuthService.ts +++ b/packages/server/src/services/AuthService.ts @@ -1,12 +1,12 @@ -import { ICredentials, INewUser, IUser, trim } from '@rondo.dev/common'; -import { compare, hash } from 'bcrypt'; -import { validate as validateEmail } from 'email-validator'; -import createError from 'http-errors'; -import { IDatabase } from '../database/IDatabase'; -import { User } from '../entities/User'; -import { UserEmail } from '../entities/UserEmail'; -import { Validator } from '../validator'; -import { IAuthService } from './IAuthService'; +import { ICredentials, INewUser, IUser, trim } from '@rondo.dev/common' +import Validator from '@rondo.dev/validator' +import { compare, hash } from 'bcrypt' +import { validate as validateEmail } from 'email-validator' +import createError from 'http-errors' +import { IDatabase } from '../database/IDatabase' +import { User } from '../entities/User' +import { UserEmail } from '../entities/UserEmail' +import { IAuthService } from './IAuthService' const SALT_ROUNDS = 10 const MIN_PASSWORD_LENGTH = 10 diff --git a/packages/server/tsconfig.json b/packages/server/tsconfig.json index 5d1062a..807b1c3 100644 --- a/packages/server/tsconfig.json +++ b/packages/server/tsconfig.json @@ -11,6 +11,7 @@ {"path": "../config"}, {"path": "../tasq"}, {"path": "../http-client"}, - {"path": "../http-types"} + {"path": "../http-types"}, + {"path": "../validator"} ] } diff --git a/packages/validator/jest.config.js b/packages/validator/jest.config.js new file mode 100644 index 0000000..737dab0 --- /dev/null +++ b/packages/validator/jest.config.js @@ -0,0 +1,16 @@ +module.exports = { + roots: [ + '/src' + ], + transform: { + '^.+\\.tsx?$': 'ts-jest' + }, + testRegex: '(/__tests__/.*|\\.(test|spec))\\.tsx?$', + moduleFileExtensions: [ + 'ts', + 'tsx', + 'js', + 'jsx' + ], + setupFiles: ['/jest.setup.js'] +} diff --git a/packages/validator/jest.setup.js b/packages/validator/jest.setup.js new file mode 100644 index 0000000..a952c9b --- /dev/null +++ b/packages/validator/jest.setup.js @@ -0,0 +1,4 @@ +if (!process.env.LOG) { + process.env.LOG = 'sql:warn' +} +process.chdir(__dirname) diff --git a/packages/validator/package-lock.json b/packages/validator/package-lock.json new file mode 100644 index 0000000..0a3d3dc --- /dev/null +++ b/packages/validator/package-lock.json @@ -0,0 +1,4 @@ +{ + "name": "@rondo.dev/validator", + "lockfileVersion": 1 +} diff --git a/packages/validator/package.json b/packages/validator/package.json new file mode 100644 index 0000000..e4b8b0e --- /dev/null +++ b/packages/validator/package.json @@ -0,0 +1,14 @@ +{ + "name": "@rondo.dev/validator", + "private": true, + "scripts": { + "test": "jest", + "lint": "tslint --project .", + "compile": "tsc", + "clean": "rm -rf lib/" + }, + "dependencies": {}, + "main": "lib/index.js", + "module": "esm/index.js", + "types": "lib/index.d.ts" +} diff --git a/packages/server/src/validator/IValidationMessage.ts b/packages/validator/src/IValidationMessage.ts similarity index 100% rename from packages/server/src/validator/IValidationMessage.ts rename to packages/validator/src/IValidationMessage.ts diff --git a/packages/server/src/validator/ValidationError.ts b/packages/validator/src/ValidationError.ts similarity index 100% rename from packages/server/src/validator/ValidationError.ts rename to packages/validator/src/ValidationError.ts diff --git a/packages/server/src/validator/Validator.test.ts b/packages/validator/src/Validator.test.ts similarity index 100% rename from packages/server/src/validator/Validator.test.ts rename to packages/validator/src/Validator.test.ts diff --git a/packages/server/src/validator/Validator.ts b/packages/validator/src/Validator.ts similarity index 100% rename from packages/server/src/validator/Validator.ts rename to packages/validator/src/Validator.ts diff --git a/packages/server/src/validator/index.ts b/packages/validator/src/index.ts similarity index 60% rename from packages/server/src/validator/index.ts rename to packages/validator/src/index.ts index 31baf0f..ec3dde1 100644 --- a/packages/server/src/validator/index.ts +++ b/packages/validator/src/index.ts @@ -1,3 +1,6 @@ export * from './IValidationMessage' export * from './ValidationError' export * from './Validator' + +import {Validator} from './Validator' +export default Validator diff --git a/packages/validator/tsconfig.esm.json b/packages/validator/tsconfig.esm.json new file mode 100644 index 0000000..6e2aaa7 --- /dev/null +++ b/packages/validator/tsconfig.esm.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "esm" + }, + "references": [ + ] +} diff --git a/packages/validator/tsconfig.json b/packages/validator/tsconfig.json new file mode 100644 index 0000000..94e864b --- /dev/null +++ b/packages/validator/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../tsconfig.common.json", + "compilerOptions": { + "outDir": "lib", + "rootDir": "src" + }, + "references": [ + ] +} diff --git a/packages/validator/tslint.json b/packages/validator/tslint.json new file mode 100644 index 0000000..1a7ba23 --- /dev/null +++ b/packages/validator/tslint.json @@ -0,0 +1,10 @@ +{ + "extends": [ + "../tslint.json" + ], + "linterOptions": { + "exclude": [ + "src/migrations/*.ts" + ] + } +}