Skip to content

Commit 4f922ab

Browse files
authored
refactor: remove global md key, stringkeyof (#200)
* refactor: remove global md key, stringkeyof * chore: add readonly to metadata provider set
1 parent 9b0ab10 commit 4f922ab

12 files changed

+33
-52
lines changed

projects/ngx-meta/src/core/public-api.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ export {
88
} from './src/provide-core'
99
export * from './src/global-metadata'
1010
export * from './src/global-metadata-image'
11-
export * from './src/global-metadata-key'
1211
export * from './src/head-element-upsert-or-remove'
1312
export * from './src/make-composed-meta-property'
1413
export * from './src/make-metadata'
@@ -17,8 +16,6 @@ export * from './src/meta-property'
1716
export * from './src/meta.service'
1817
export * from './src/metadata'
1918
export * from './src/metadata-provider'
20-
export * from './src/metadata-setter'
2119
export * from './src/metadata-values'
2220
export * from './src/metadata.service'
2321
export * from './src/provide-metadata-factory'
24-
export * from './src/string-key-of'
Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
1-
import { MetadataProvider } from '../metadata-provider'
21
import { makeMetadata } from '../make-metadata'
32

4-
export function makeMetadataProvider<T, Id extends string>(
3+
export function makeMetadataProvider<Id extends string>(
54
opts: {
65
id?: Id
76
spyName?: string
87
} = {},
98
) {
10-
const id = opts.id ?? 'dummy'
11-
const metadata: MetadataProvider<T> = {
12-
metadata: makeMetadata([id]),
13-
set: jasmine.createSpy(opts.spyName ?? id),
9+
return {
10+
metadata: makeMetadata([opts.id ?? 'dummy']),
11+
set: jasmine.createSpy(opts.spyName ?? opts.id ?? 'dummy'),
1412
}
15-
return metadata
1613
}

projects/ngx-meta/src/core/src/global-metadata-key.ts

Lines changed: 0 additions & 4 deletions
This file was deleted.

projects/ngx-meta/src/core/src/global-metadata.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { GlobalMetadataImage } from './global-metadata-image'
2-
import { GlobalMetadataKey } from './global-metadata-key'
32

43
export interface GlobalMetadata {
54
/**
@@ -72,11 +71,12 @@ export interface GlobalMetadata {
7271
readonly image?: GlobalMetadataImage | null
7372
}
7473

75-
export const GLOBAL_TITLE = 'title' satisfies GlobalMetadataKey
76-
export const GLOBAL_DESCRIPTION = 'description' satisfies GlobalMetadataKey
74+
export const GLOBAL_TITLE = 'title' satisfies keyof GlobalMetadata
75+
export const GLOBAL_DESCRIPTION = 'description' satisfies keyof GlobalMetadata
7776
export const GLOBAL_APPLICATION_NAME =
78-
'applicationName' satisfies GlobalMetadataKey
77+
'applicationName' satisfies keyof GlobalMetadata
7978

80-
export const GLOBAL_CANONICAL_URL = 'canonicalUrl' satisfies GlobalMetadataKey
81-
export const GLOBAL_LOCALE = 'locale' satisfies GlobalMetadataKey
82-
export const GLOBAL_IMAGE = 'image' satisfies GlobalMetadataKey
79+
export const GLOBAL_CANONICAL_URL =
80+
'canonicalUrl' satisfies keyof GlobalMetadata
81+
export const GLOBAL_LOCALE = 'locale' satisfies keyof GlobalMetadata
82+
export const GLOBAL_IMAGE = 'image' satisfies keyof GlobalMetadata
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { Metadata } from './metadata'
22

3+
export type MetadataSetter<T> = (value: T) => void
4+
35
export abstract class MetadataProvider<Value, Global extends string = string> {
46
abstract readonly metadata: Metadata<Global>
5-
abstract set(value: Value | null): void
7+
abstract readonly set: MetadataSetter<Value>
68
}

projects/ngx-meta/src/core/src/metadata-setter.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,11 @@
1-
import { MetadataProvider } from './metadata-provider'
1+
import { MetadataProvider, MetadataSetter } from './metadata-provider'
22
import { FactoryProvider } from '@angular/core'
33
import { Metadata } from './metadata'
4-
import { MetadataSetter } from './metadata-setter'
54

65
export type MetadataSetterFactory<T> = (
76
...deps: Exclude<FactoryProvider['deps'], undefined>
87
) => MetadataSetter<T>
98

10-
const makeMetadataProvider = <T>(
11-
metadata: Metadata,
12-
set: MetadataSetter<T>,
13-
): MetadataProvider<T> => ({
14-
metadata,
15-
set,
16-
})
17-
189
export function provideMetadataFactory<T>(
1910
definition: Metadata,
2011
setterFactory: MetadataSetterFactory<T>,
@@ -28,3 +19,11 @@ export function provideMetadataFactory<T>(
2819
deps,
2920
}
3021
}
22+
23+
const makeMetadataProvider = <T>(
24+
metadata: Metadata,
25+
set: MetadataSetter<T>,
26+
): MetadataProvider<T> => ({
27+
metadata,
28+
set,
29+
})

projects/ngx-meta/src/core/src/string-key-of.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

projects/ngx-meta/src/open-graph/src/make-open-graph-metadata-provider.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import {
2-
GlobalMetadataKey,
2+
GlobalMetadata,
33
makeMetadata,
44
MetadataSetterFactory,
55
MetaService,
66
provideMetadataFactory,
7-
StringKeyOf,
87
} from '@davidlj95/ngx-meta/core'
98
import { OpenGraph } from './open-graph'
109
import { FactoryProvider } from '@angular/core'
@@ -13,15 +12,13 @@ import { makeOpenGraphMetaProperty } from './make-open-graph-meta-property'
1312

1413
export const OPEN_GRAPH_KEY: keyof OpenGraphMetadata = 'openGraph'
1514

16-
export const makeOpenGraphMetadataProvider = <
17-
Key extends StringKeyOf<OpenGraph>,
18-
>(
15+
export const makeOpenGraphMetadataProvider = <Key extends keyof OpenGraph>(
1916
key: Key,
2017
opts: {
2118
// Open Graph property name. Defaults to key
2219
p?: string
2320
// Global key. Defaults to nothing
24-
g?: GlobalMetadataKey
21+
g?: keyof GlobalMetadata
2522
// Setter factory. Defaults to setting the property to the given value.
2623
s?: MetadataSetterFactory<OpenGraph[typeof key]>
2724
} = {},

projects/ngx-meta/src/open-graph/src/make-open-graph-profile-metadata-provider.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import {
22
makeMetadata,
33
MetaService,
44
provideMetadataFactory,
5-
StringKeyOf,
65
} from '@davidlj95/ngx-meta/core'
76
import { FactoryProvider } from '@angular/core'
87
import { OpenGraphProfile } from './open-graph-profile'
@@ -13,7 +12,7 @@ import { OpenGraph } from './open-graph'
1312
export const OPEN_GRAPH_PROFILE_KEY: keyof OpenGraph = 'profile'
1413

1514
export const makeOpenGraphProfileMetadataProvider = <
16-
Key extends StringKeyOf<OpenGraphProfile>,
15+
Key extends keyof OpenGraphProfile,
1716
>(
1817
key: Key,
1918
opts: {

projects/ngx-meta/src/standard/src/make-standard-metadata-provider.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import {
2-
GlobalMetadataKey,
2+
GlobalMetadata,
33
makeMetadata,
44
MetadataSetterFactory,
55
MetaService,
66
provideMetadataFactory,
7-
StringKeyOf,
87
} from '@davidlj95/ngx-meta/core'
98
import { FactoryProvider } from '@angular/core'
109
import { Standard } from './standard'
@@ -13,13 +12,13 @@ import { makeStandardMetaProperty } from './make-standard-meta-property'
1312

1413
const STANDARD_KEY: keyof StandardMetadata = 'standard'
1514

16-
export const makeStandardMetadataProvider = <Key extends StringKeyOf<Standard>>(
15+
export const makeStandardMetadataProvider = <Key extends keyof Standard>(
1716
key: Key,
1817
opts: {
1918
// Standard metadata name. Defaults to key
2019
n?: string
2120
// Global key. Defaults to nothing
22-
g?: GlobalMetadataKey
21+
g?: keyof GlobalMetadata
2322
// Setter factory. Defaults to setting the meta name to the given value.
2423
s?: MetadataSetterFactory<Standard[typeof key]>
2524
// Deps for the setter factory

projects/ngx-meta/src/twitter-card/src/make-twitter-card-metadata-provider.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import {
2-
GlobalMetadataKey,
2+
GlobalMetadata,
33
makeMetadata,
44
MetadataSetterFactory,
55
MetaService,
66
provideMetadataFactory,
7-
StringKeyOf,
87
} from '@davidlj95/ngx-meta/core'
98
import { FactoryProvider } from '@angular/core'
109
import { TwitterCard } from './twitter-card'
@@ -13,15 +12,13 @@ import { makeTwitterCardMetaProperty } from './make-twitter-card-meta-property'
1312

1413
const TWITTER_KEY: keyof TwitterCardMetadata = `twitterCard`
1514

16-
export const makeTwitterCardMetadataProvider = <
17-
Key extends StringKeyOf<TwitterCard>,
18-
>(
15+
export const makeTwitterCardMetadataProvider = <Key extends keyof TwitterCard>(
1916
key: Key,
2017
opts: {
2118
// Twitter card property name. Defaults to key
2219
p?: string
2320
// Global key. Defaults to nothing
24-
g?: GlobalMetadataKey
21+
g?: keyof GlobalMetadata
2522
// Setter factory. Defaults to setting the property to the given value.
2623
s?: MetadataSetterFactory<TwitterCard[typeof key]>
2724
} = {},

0 commit comments

Comments
 (0)