From ed5ed7994cf74ecc95bc3af6195e95ead208d755 Mon Sep 17 00:00:00 2001 From: David LJ Date: Mon, 15 Jan 2024 15:52:03 +0100 Subject: [PATCH] perf: remove composable meta property class --- projects/ngx-meta/src/core/public-api.ts | 2 +- .../src/core/src/composable-meta-property.ts | 25 ------------------- .../core/src/make-composed-meta-property.ts | 19 ++++++++++++++ .../src/make-open-graph-meta-property.ts | 10 ++++---- .../src/make-twitter-card-meta-property.ts | 10 ++++---- 5 files changed, 30 insertions(+), 36 deletions(-) delete mode 100644 projects/ngx-meta/src/core/src/composable-meta-property.ts create mode 100644 projects/ngx-meta/src/core/src/make-composed-meta-property.ts diff --git a/projects/ngx-meta/src/core/public-api.ts b/projects/ngx-meta/src/core/public-api.ts index a771dd51..8fd903d3 100644 --- a/projects/ngx-meta/src/core/public-api.ts +++ b/projects/ngx-meta/src/core/public-api.ts @@ -6,10 +6,10 @@ export { provideCore as provideNgxMetaCore, withDefaults as withNgxMetaDefaults, } from './src/provide-core' -export * from './src/composable-meta-property' export * from './src/global-metadata' export * from './src/global-metadata-image' export * from './src/global-metadata-key' +export * from './src/make-composed-meta-property' export * from './src/make-global-metadata' export * from './src/make-metadata' export * from './src/meta-content' diff --git a/projects/ngx-meta/src/core/src/composable-meta-property.ts b/projects/ngx-meta/src/core/src/composable-meta-property.ts deleted file mode 100644 index f3ed5769..00000000 --- a/projects/ngx-meta/src/core/src/composable-meta-property.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { MetaProperty } from './meta-property' - -export class ComposableMetaProperty extends MetaProperty { - public readonly separator: string - - constructor( - { - separator = ':', - keyAttr, - valAttr, - }: { - separator?: string - keyAttr: string - valAttr?: string - }, - ...names: ReadonlyArray - ) { - super({ - keyAttr: keyAttr, - keyName: names.join(separator), - valAttr: valAttr, - }) - this.separator = separator - } -} diff --git a/projects/ngx-meta/src/core/src/make-composed-meta-property.ts b/projects/ngx-meta/src/core/src/make-composed-meta-property.ts new file mode 100644 index 00000000..3124c594 --- /dev/null +++ b/projects/ngx-meta/src/core/src/make-composed-meta-property.ts @@ -0,0 +1,19 @@ +import { MetaProperty } from './meta-property' + +type MetaPropertyOpts = ConstructorParameters[0] +type ComposedMetaPropertyOpts = Omit & { + separator?: string +} + +export const makeComposedMetaProperty = ( + opts: ComposedMetaPropertyOpts, + names: ReadonlyArray, +) => + new MetaProperty({ + ...opts, + keyName: names.join( + opts.separator ?? DEFAULT_COMPOSED_META_PROPERTY_SEPARATOR, + ), + }) + +export const DEFAULT_COMPOSED_META_PROPERTY_SEPARATOR = ':' diff --git a/projects/ngx-meta/src/open-graph/src/make-open-graph-meta-property.ts b/projects/ngx-meta/src/open-graph/src/make-open-graph-meta-property.ts index b4af6ad9..be6838d9 100644 --- a/projects/ngx-meta/src/open-graph/src/make-open-graph-meta-property.ts +++ b/projects/ngx-meta/src/open-graph/src/make-open-graph-meta-property.ts @@ -1,10 +1,10 @@ import { - ComposableMetaProperty, KEY_ATTRIBUTE_PROPERTY, + makeComposedMetaProperty, } from '@davidlj95/ngx-meta/core' export const makeOpenGraphMetaProperty = (...names: string[]) => - new ComposableMetaProperty( - { keyAttr: KEY_ATTRIBUTE_PROPERTY }, - ...['og', ...names], - ) + makeComposedMetaProperty({ keyAttr: KEY_ATTRIBUTE_PROPERTY }, [ + 'og', + ...names, + ]) diff --git a/projects/ngx-meta/src/twitter-card/src/make-twitter-card-meta-property.ts b/projects/ngx-meta/src/twitter-card/src/make-twitter-card-meta-property.ts index 32683a84..247cd478 100644 --- a/projects/ngx-meta/src/twitter-card/src/make-twitter-card-meta-property.ts +++ b/projects/ngx-meta/src/twitter-card/src/make-twitter-card-meta-property.ts @@ -1,10 +1,10 @@ import { - ComposableMetaProperty, KEY_ATTRIBUTE_PROPERTY, + makeComposedMetaProperty, } from '@davidlj95/ngx-meta/core' export const makeTwitterCardMetaProperty = (...names: string[]) => - new ComposableMetaProperty( - { keyAttr: KEY_ATTRIBUTE_PROPERTY }, - ...['twitter', ...names], - ) + makeComposedMetaProperty({ keyAttr: KEY_ATTRIBUTE_PROPERTY }, [ + 'twitter', + ...names, + ])