From 4fd6f33fe9d6e5e160409ed8a975f3efb5d815cf Mon Sep 17 00:00:00 2001 From: Ayo Date: Fri, 21 Oct 2022 14:05:23 +0200 Subject: [PATCH] core: common directory for packages (#114) --- package-lock.json | 29 ++++++++- package.json | 3 +- packages/{ => common}/configs/.eslintrc.cjs | 0 packages/common/package.json | 20 ++++++ .../types/control.types.ts} | 2 +- packages/common/types/index.ts | 1 + packages/form/.eslintrc.cjs | 2 +- packages/form/Form.astro | 64 ++++++++++--------- packages/form/core/form-control.ts | 2 +- packages/form/core/form-group.ts | 2 +- packages/form/core/index.ts | 1 - packages/form/package.json | 3 + packages/validator/.eslintrc.cjs | 2 +- 13 files changed, 92 insertions(+), 39 deletions(-) rename packages/{ => common}/configs/.eslintrc.cjs (100%) create mode 100644 packages/common/package.json rename packages/{form/core/form-control-types.ts => common/types/control.types.ts} (95%) create mode 100644 packages/common/types/index.ts diff --git a/package-lock.json b/package-lock.json index fc3477e..8ca7daa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,8 @@ "packages/validator", "apps/demo", "apps/docs", - "apps/landing-page" + "apps/landing-page", + "packages/common" ] }, "apps/demo": { @@ -2821,6 +2822,10 @@ "node": ">= 10" } }, + "node_modules/common": { + "resolved": "packages/common", + "link": true + }, "node_modules/common-ancestor-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", @@ -10466,10 +10471,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "packages/common": { + "version": "0.0.0", + "license": "MIT", + "devDependencies": {} + }, "packages/form": { "name": "@astro-reactive/form", "version": "0.4.6", "license": "MIT", + "dependencies": { + "common": "file:packages/common" + }, "devDependencies": { "@types/chai": "^4.3.3", "@types/eslint": "^8.4.6", @@ -10493,6 +10506,11 @@ "astro": "^1.5.0" } }, + "packages/form/node_modules/common": { + "resolved": "packages/form/packages/common", + "link": true + }, + "packages/form/packages/common": {}, "packages/validator": { "name": "@astro-reactive/validator", "version": "0.0.5", @@ -10716,6 +10734,7 @@ "astro": "^1.5.0", "astro-component-tester": "^0.6.0", "chai": "^4.3.6", + "common": "file:packages/common", "eslint": "^8.23.1", "eslint-config-prettier": "^8.5.0", "eslint-plugin-prettier": "^4.2.1", @@ -10723,6 +10742,11 @@ "prettier": "^2.7.1", "prettier-plugin-astro": "^0.5.4", "typescript": "^4.8.3" + }, + "dependencies": { + "common": { + "version": "file:packages/form/packages/common" + } } }, "@astro-reactive/validator": { @@ -12640,6 +12664,9 @@ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true }, + "common": { + "version": "file:packages/common" + }, "common-ancestor-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", diff --git a/package.json b/package.json index 3a045da..eda924c 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "packages/validator", "apps/demo", "apps/docs", - "apps/landing-page" + "apps/landing-page", + "packages/common" ] } diff --git a/packages/configs/.eslintrc.cjs b/packages/common/configs/.eslintrc.cjs similarity index 100% rename from packages/configs/.eslintrc.cjs rename to packages/common/configs/.eslintrc.cjs diff --git a/packages/common/package.json b/packages/common/package.json new file mode 100644 index 0000000..205ffe0 --- /dev/null +++ b/packages/common/package.json @@ -0,0 +1,20 @@ +{ + "name": "common", + "version": "0.0.0", + "description": "Common code for Astro Reactive Packages", + "main": "index.js", + "devDependencies": {}, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ayoayco/astro-reactive-library.git" + }, + "author": "Ayo Ayco", + "license": "MIT", + "bugs": { + "url": "https://github.com/ayoayco/astro-reactive-library/issues" + }, + "homepage": "https://github.com/ayoayco/astro-reactive-library#readme" +} diff --git a/packages/form/core/form-control-types.ts b/packages/common/types/control.types.ts similarity index 95% rename from packages/form/core/form-control-types.ts rename to packages/common/types/control.types.ts index 3c8eeb0..060eefe 100644 --- a/packages/form/core/form-control-types.ts +++ b/packages/common/types/control.types.ts @@ -1,5 +1,5 @@ /** - * ControlType - determines the type of form control + * `ControlType` determines the type of form control * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#input_types */ export type ControlType = diff --git a/packages/common/types/index.ts b/packages/common/types/index.ts new file mode 100644 index 0000000..6a15a0e --- /dev/null +++ b/packages/common/types/index.ts @@ -0,0 +1 @@ +export * from "./control.types"; diff --git a/packages/form/.eslintrc.cjs b/packages/form/.eslintrc.cjs index 8116530..79b0480 100644 --- a/packages/form/.eslintrc.cjs +++ b/packages/form/.eslintrc.cjs @@ -1,4 +1,4 @@ /** @type {import("@types/eslint").Linter.Config} */ module.exports = { - extends: '../configs/.eslintrc.cjs', + extends: '../common/configs/.eslintrc.cjs', }; diff --git a/packages/form/Form.astro b/packages/form/Form.astro index 9402cd5..b939734 100644 --- a/packages/form/Form.astro +++ b/packages/form/Form.astro @@ -20,38 +20,40 @@ const formName = Array.isArray(form) ? null : form?.name || null; { Array.isArray(form) ? form?.map((group) =>
) - : form?.controls.map((control) => ( - control.type === "radio" ? - ( - [ - (), - ...(control as Radio)?.value?.map((v: string | RadioOption) => ( + : form?.controls.map((control) => + control.type === 'radio' ? ( + [ - )) - ] - ) : - ( - - ) - )) + showValidationHints={showValidationHints} + control={control} + showOnlyLabel={true} + />, + ...(control as Radio)?.value?.map((v: string | RadioOption) => ( + + )), + ] + ) : ( + + ) + ) } { submitControl && ( diff --git a/packages/form/core/form-control.ts b/packages/form/core/form-control.ts index 250e06e..83d3539 100644 --- a/packages/form/core/form-control.ts +++ b/packages/form/core/form-control.ts @@ -1,4 +1,4 @@ -import type { ControlConfig, ControlType, RadioOption } from './form-control-types'; +import type { ControlConfig, ControlType, RadioOption } from 'common/types'; export class FormControl { private _name = ''; diff --git a/packages/form/core/form-group.ts b/packages/form/core/form-group.ts index 0f64fdf..3a76cbd 100644 --- a/packages/form/core/form-group.ts +++ b/packages/form/core/form-group.ts @@ -1,4 +1,4 @@ -import type { ControlConfig } from './form-control-types'; +import type { ControlConfig } from 'common/types'; import { FormControl } from './form-control'; export class FormGroup { diff --git a/packages/form/core/index.ts b/packages/form/core/index.ts index 3a0aa87..cb076a1 100644 --- a/packages/form/core/index.ts +++ b/packages/form/core/index.ts @@ -1,3 +1,2 @@ export * from './form-control'; export * from './form-group'; -export * from './form-control-types'; diff --git a/packages/form/package.json b/packages/form/package.json index 766b08c..dac5c19 100644 --- a/packages/form/package.json +++ b/packages/form/package.json @@ -54,5 +54,8 @@ "peerDependencies": { "astro": "^1.5.0" }, + "dependencies": { + "common": "file:packages/common" + }, "license": "MIT" } diff --git a/packages/validator/.eslintrc.cjs b/packages/validator/.eslintrc.cjs index 8116530..79b0480 100644 --- a/packages/validator/.eslintrc.cjs +++ b/packages/validator/.eslintrc.cjs @@ -1,4 +1,4 @@ /** @type {import("@types/eslint").Linter.Config} */ module.exports = { - extends: '../configs/.eslintrc.cjs', + extends: '../common/configs/.eslintrc.cjs', };