Skip to content

Commit 1879305

Browse files
committed
Embed object key change to _embedded_items
1 parent 734dcb9 commit 1879305

File tree

6 files changed

+19
-22
lines changed

6 files changed

+19
-22
lines changed

src/Models/embedded-object.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
export interface EmbeddedObject {
22
uid: string;
3+
_content_type_uid: string;
34
[propName: string]: any;
45
}
56

67
export interface EmbedModel<T> {
78
[path: string]: T[]
89
}
910

10-
export interface EmbeddedContentTypeUid extends EmbeddedObject {
11-
_content_type_uid: string;
12-
}
13-
14-
export interface EntryEmbedable extends EmbeddedObject {
15-
_embedded_assets?: EmbedModel<EmbeddedObject>;
16-
_embedded_entries?: EmbedModel<EmbeddedContentTypeUid>;
11+
export interface EntryEmbedable {
12+
uid: string;
13+
_embedded_items?: EmbedModel<EmbeddedObject>
14+
[propName: string]: any;
1715
}

src/Models/metadata-model.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export interface Attributes {
1212
type: 'entry' | 'asset',
1313
class: string,
1414
[key: string]: any,
15-
'sys-style-type': StyleType
15+
'sys-style-type': string
1616
}
1717

1818
export interface EntryAttributes extends Attributes {
@@ -32,7 +32,7 @@ export function createMetadata(attribute: Attributes): Metadata {
3232
text: attribute['#text'],
3333
itemUid: attribute["data-sys-entry-uid"] || attribute["data-sys-asset-uid"],
3434
itemType: attribute.type,
35-
styleType: attribute["sys-style-type"],
35+
styleType: attribute["sys-style-type"] as StyleType,
3636
attributes: attribute,
3737
contentTypeUid: attribute["data-sys-content-type-uid"]
3838
}

src/helper/find-embeded-object.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { EmbeddedContentTypeUid, EntryEmbedable, EmbeddedObject } from '../Models/embedded-object';
1+
import { EntryEmbedable, EmbeddedObject } from '../Models/embedded-object';
22
import { RenderOption, RenderObject, RenderContentType } from '../options/index';
33
import { AssetAttributes, EntryAttributes, Metadata } from '../Models/metadata-model';
44
import { defaultOptions } from '../options/default-options';
@@ -7,9 +7,9 @@ import { defaultOptions } from '../options/default-options';
77
export function findEmbeddedEntry(
88
uid: string,
99
contentTypeUid: string,
10-
embeddedEntries: EmbeddedContentTypeUid[] = [],
11-
): EmbeddedContentTypeUid[] {
12-
return embeddedEntries.filter((entry) => {
10+
embeddeditems: EmbeddedObject[] = [],
11+
): EmbeddedObject[] {
12+
return embeddeditems.filter((entry) => {
1313
if (entry.uid === uid && entry._content_type_uid === contentTypeUid) {
1414
return entry;
1515
}
@@ -24,26 +24,26 @@ export function findEmbeddedAsset(uid: string, embeddedAssets: EmbeddedObject[]
2424
});
2525
}
2626

27-
export function findEmbeddedObjects(object: Metadata, entry: EntryEmbedable): (EmbeddedContentTypeUid | EmbeddedObject)[] {
27+
export function findEmbeddedObjects(object: Metadata, entry: EntryEmbedable): (EmbeddedObject)[] {
2828
if (object && object !== undefined && entry && entry !== undefined) {
2929
if (object.itemType === 'entry') {
3030
const embeddedEntry = object.attributes as EntryAttributes;
3131
return findEmbeddedEntry(
3232
object.itemUid,
3333
object.contentTypeUid,
34-
Object.values(entry._embedded_entries || []).reduce((accumulator, value) => accumulator.concat(value), []),
34+
Object.values(entry._embedded_items || []).reduce((accumulator, value) => accumulator.concat(value), []),
3535
);
3636
} else {
3737
const embeddedAsset = object.attributes as AssetAttributes;
38-
return findEmbeddedAsset(object.itemUid, Object.values(entry._embedded_assets || []).reduce((accumulator, value) => accumulator.concat(value), []),);
38+
return findEmbeddedAsset(object.itemUid, Object.values(entry._embedded_items|| []).reduce((accumulator, value) => accumulator.concat(value), []),);
3939
}
4040
}
4141
return [];
4242
}
4343

4444
export function findRenderString(
4545
metadata: Metadata,
46-
renderModel: EmbeddedContentTypeUid | EmbeddedObject,
46+
renderModel: EmbeddedObject,
4747
renderOptions?: RenderOption,
4848
): string {
4949
if ((!renderModel && renderModel === undefined) || (!metadata && metadata === undefined)) {

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export { Option, RenderContentType, RenderOption, RenderObject } from './options/index';
2-
export { EntryEmbedable, EmbeddedObject as EntryModel, EmbeddedContentTypeUid as ContentTypeEntry } from './Models/embedded-object';
2+
export { EntryEmbedable, EmbeddedObject as EntryModel } from './Models/embedded-object';
33
export { Metadata } from './Models/metadata-model';
44
export { default as StyleType } from './embedded-types/style-type';
55
export { render, renderContent } from './render-embedded-objects';

src/options/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { EntryEmbedable, EmbeddedContentTypeUid, EmbeddedObject } from '../Models/embedded-object';
1+
import { EntryEmbedable, EmbeddedObject } from '../Models/embedded-object';
22
import { Metadata } from '../Models/metadata-model';
33

4-
export type RenderObject = (object: EmbeddedContentTypeUid | EmbeddedObject, metadata: Metadata) => string;
4+
export type RenderObject = (object: EmbeddedObject, metadata: Metadata) => string;
55

66
export interface RenderOption {
77
[embedType: string]: RenderObject | RenderContentType;

src/render-embedded-objects.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ export function render(option: {
2525
function findAndRender (entry: EntryEmbedable) {
2626
if (!option.paths || option.paths.length === 0) {
2727
Object.keys({
28-
...entry._embedded_assets,
29-
...entry._embedded_entries
28+
...entry._embedded_items,
3029
}).forEach((path) => {
3130
findContent(path, entry)
3231
})

0 commit comments

Comments
 (0)