@interactive-inc/docs-client 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -228
- package/build/index.d.ts +1921 -42
- package/build/index.js +4617 -39
- package/build/models.d.ts +34 -32
- package/build/models.js +219 -275
- package/package.json +4 -4
- package/tsup.config.ts +10 -0
- package/build/doc-client.d.ts +0 -59
- package/build/doc-client.d.ts.map +0 -1
- package/build/doc-client.js +0 -95
- package/build/doc-client.test.d.ts +0 -2
- package/build/doc-client.test.d.ts.map +0 -1
- package/build/doc-client.test.js +0 -38
- package/build/doc-directory-reference.d.ts +0 -65
- package/build/doc-directory-reference.d.ts.map +0 -1
- package/build/doc-directory-reference.js +0 -292
- package/build/doc-directory-reference.test.d.ts +0 -2
- package/build/doc-directory-reference.test.d.ts.map +0 -1
- package/build/doc-directory-reference.test.js +0 -100
- package/build/doc-file-index-reference.d.ts +0 -72
- package/build/doc-file-index-reference.d.ts.map +0 -1
- package/build/doc-file-index-reference.js +0 -191
- package/build/doc-file-index-reference.test.d.ts +0 -2
- package/build/doc-file-index-reference.test.d.ts.map +0 -1
- package/build/doc-file-index-reference.test.js +0 -77
- package/build/doc-file-md-reference.d.ts +0 -97
- package/build/doc-file-md-reference.d.ts.map +0 -1
- package/build/doc-file-md-reference.js +0 -297
- package/build/doc-file-md-reference.test.d.ts +0 -2
- package/build/doc-file-md-reference.test.d.ts.map +0 -1
- package/build/doc-file-md-reference.test.js +0 -465
- package/build/doc-file-relation-reference.d.ts +0 -54
- package/build/doc-file-relation-reference.d.ts.map +0 -1
- package/build/doc-file-relation-reference.js +0 -109
- package/build/doc-file-system-debug.d.ts +0 -81
- package/build/doc-file-system-debug.d.ts.map +0 -1
- package/build/doc-file-system-debug.js +0 -317
- package/build/doc-file-system.d.ts +0 -100
- package/build/doc-file-system.d.ts.map +0 -1
- package/build/doc-file-system.js +0 -210
- package/build/doc-file-tree-system.d.ts +0 -38
- package/build/doc-file-tree-system.d.ts.map +0 -1
- package/build/doc-file-tree-system.js +0 -153
- package/build/doc-file-tree-system.test.d.ts +0 -2
- package/build/doc-file-tree-system.test.d.ts.map +0 -1
- package/build/doc-file-tree-system.test.js +0 -105
- package/build/doc-file-unknown-reference.d.ts +0 -80
- package/build/doc-file-unknown-reference.d.ts.map +0 -1
- package/build/doc-file-unknown-reference.js +0 -181
- package/build/doc-file-unknown-reference.test.d.ts +0 -2
- package/build/doc-file-unknown-reference.test.d.ts.map +0 -1
- package/build/doc-file-unknown-reference.test.js +0 -73
- package/build/doc-markdown-system.d.ts +0 -44
- package/build/doc-markdown-system.d.ts.map +0 -1
- package/build/doc-markdown-system.js +0 -153
- package/build/doc-markdown-system.test.d.ts +0 -2
- package/build/doc-markdown-system.test.d.ts.map +0 -1
- package/build/doc-markdown-system.test.js +0 -124
- package/build/doc-path-system.d.ts +0 -43
- package/build/doc-path-system.d.ts.map +0 -1
- package/build/doc-path-system.js +0 -148
- package/build/doc-path-system.test.d.ts +0 -2
- package/build/doc-path-system.test.d.ts.map +0 -1
- package/build/doc-path-system.test.js +0 -67
- package/build/entities/doc-file-entity.d.ts +0 -5
- package/build/entities/doc-file-entity.d.ts.map +0 -1
- package/build/entities/doc-file-entity.js +0 -1
- package/build/entities/doc-file-index-entity.d.ts +0 -30
- package/build/entities/doc-file-index-entity.d.ts.map +0 -1
- package/build/entities/doc-file-index-entity.js +0 -49
- package/build/entities/doc-file-index-entity.test.d.ts +0 -2
- package/build/entities/doc-file-index-entity.test.d.ts.map +0 -1
- package/build/entities/doc-file-index-entity.test.js +0 -195
- package/build/entities/doc-file-md-entity.d.ts +0 -30
- package/build/entities/doc-file-md-entity.d.ts.map +0 -1
- package/build/entities/doc-file-md-entity.js +0 -49
- package/build/entities/doc-file-md-entity.test.d.ts +0 -2
- package/build/entities/doc-file-md-entity.test.d.ts.map +0 -1
- package/build/entities/doc-file-md-entity.test.js +0 -178
- package/build/entities/doc-file-unknown-entity.d.ts +0 -26
- package/build/entities/doc-file-unknown-entity.d.ts.map +0 -1
- package/build/entities/doc-file-unknown-entity.js +0 -45
- package/build/entities/doc-file-unknown-entity.test.d.ts +0 -2
- package/build/entities/doc-file-unknown-entity.test.d.ts.map +0 -1
- package/build/entities/doc-file-unknown-entity.test.js +0 -131
- package/build/index.d.ts.map +0 -1
- package/build/models.d.ts.map +0 -1
- package/build/types.d.ts +0 -154
- package/build/types.d.ts.map +0 -1
- package/build/types.js +0 -1
- package/build/values/doc-content-md-front-matter-value.d.ts +0 -49
- package/build/values/doc-content-md-front-matter-value.d.ts.map +0 -1
- package/build/values/doc-content-md-front-matter-value.js +0 -94
- package/build/values/doc-content-md-front-matter-value.test.d.ts +0 -2
- package/build/values/doc-content-md-front-matter-value.test.d.ts.map +0 -1
- package/build/values/doc-content-md-front-matter-value.test.js +0 -73
- package/build/values/doc-content-md-value.d.ts +0 -66
- package/build/values/doc-content-md-value.d.ts.map +0 -1
- package/build/values/doc-content-md-value.js +0 -218
- package/build/values/doc-content-md-value.test.d.ts +0 -2
- package/build/values/doc-content-md-value.test.d.ts.map +0 -1
- package/build/values/doc-content-md-value.test.js +0 -179
- package/build/values/doc-directory-path-value.d.ts +0 -89
- package/build/values/doc-directory-path-value.d.ts.map +0 -1
- package/build/values/doc-directory-path-value.js +0 -145
- package/build/values/doc-directory-path-value.test.d.ts +0 -2
- package/build/values/doc-directory-path-value.test.d.ts.map +0 -1
- package/build/values/doc-directory-path-value.test.js +0 -68
- package/build/values/doc-file-content-index-value.d.ts +0 -62
- package/build/values/doc-file-content-index-value.d.ts.map +0 -1
- package/build/values/doc-file-content-index-value.js +0 -134
- package/build/values/doc-file-content-index-value.test.d.ts +0 -2
- package/build/values/doc-file-content-index-value.test.d.ts.map +0 -1
- package/build/values/doc-file-content-index-value.test.js +0 -203
- package/build/values/doc-file-content-md-value.d.ts +0 -62
- package/build/values/doc-file-content-md-value.d.ts.map +0 -1
- package/build/values/doc-file-content-md-value.js +0 -139
- package/build/values/doc-file-content-md-value.test.d.ts +0 -2
- package/build/values/doc-file-content-md-value.test.d.ts.map +0 -1
- package/build/values/doc-file-content-md-value.test.js +0 -160
- package/build/values/doc-file-path-value.d.ts +0 -47
- package/build/values/doc-file-path-value.d.ts.map +0 -1
- package/build/values/doc-file-path-value.js +0 -83
- package/build/values/doc-file-path-value.test.d.ts +0 -2
- package/build/values/doc-file-path-value.test.d.ts.map +0 -1
- package/build/values/doc-file-path-value.test.js +0 -84
- package/build/values/doc-front-matter-index-value.d.ts +0 -66
- package/build/values/doc-front-matter-index-value.d.ts.map +0 -1
- package/build/values/doc-front-matter-index-value.js +0 -185
- package/build/values/doc-front-matter-index-value.test.d.ts +0 -2
- package/build/values/doc-front-matter-index-value.test.d.ts.map +0 -1
- package/build/values/doc-front-matter-index-value.test.js +0 -98
- package/build/values/doc-front-matter-md-value-accessor.test.d.ts +0 -2
- package/build/values/doc-front-matter-md-value-accessor.test.d.ts.map +0 -1
- package/build/values/doc-front-matter-md-value-accessor.test.js +0 -226
- package/build/values/doc-front-matter-md-value.d.ts +0 -80
- package/build/values/doc-front-matter-md-value.d.ts.map +0 -1
- package/build/values/doc-front-matter-md-value.js +0 -257
- package/build/values/doc-front-matter-md-value.test.d.ts +0 -2
- package/build/values/doc-front-matter-md-value.test.d.ts.map +0 -1
- package/build/values/doc-front-matter-md-value.test.js +0 -198
- package/build/values/doc-relation-field-value.d.ts +0 -57
- package/build/values/doc-relation-field-value.d.ts.map +0 -1
- package/build/values/doc-relation-field-value.js +0 -85
- package/build/values/doc-relation-field-value.test.d.ts +0 -2
- package/build/values/doc-relation-field-value.test.d.ts.map +0 -1
- package/build/values/doc-relation-field-value.test.js +0 -115
- package/build/values/doc-relation-file-value.d.ts +0 -33
- package/build/values/doc-relation-file-value.d.ts.map +0 -1
- package/build/values/doc-relation-file-value.js +0 -55
- package/build/values/doc-relation-file-value.test.d.ts +0 -2
- package/build/values/doc-relation-file-value.test.d.ts.map +0 -1
- package/build/values/doc-relation-file-value.test.js +0 -77
- package/build/values/doc-relation-value.d.ts +0 -34
- package/build/values/doc-relation-value.d.ts.map +0 -1
- package/build/values/doc-relation-value.js +0 -56
- package/build/values/doc-relation-value.test.d.ts +0 -2
- package/build/values/doc-relation-value.test.d.ts.map +0 -1
- package/build/values/doc-relation-value.test.js +0 -89
- package/build/values/doc-schema-field-boolean-multiple-value.d.ts +0 -23
- package/build/values/doc-schema-field-boolean-multiple-value.d.ts.map +0 -1
- package/build/values/doc-schema-field-boolean-multiple-value.js +0 -43
- package/build/values/doc-schema-field-boolean-multiple-value.test.d.ts +0 -2
- package/build/values/doc-schema-field-boolean-multiple-value.test.d.ts.map +0 -1
- package/build/values/doc-schema-field-boolean-multiple-value.test.js +0 -76
- package/build/values/doc-schema-field-boolean-single-value.d.ts +0 -23
- package/build/values/doc-schema-field-boolean-single-value.d.ts.map +0 -1
- package/build/values/doc-schema-field-boolean-single-value.js +0 -39
- package/build/values/doc-schema-field-boolean-single-value.test.d.ts +0 -2
- package/build/values/doc-schema-field-boolean-single-value.test.d.ts.map +0 -1
- package/build/values/doc-schema-field-boolean-single-value.test.js +0 -73
- package/build/values/doc-schema-field-factory.d.ts +0 -37
- package/build/values/doc-schema-field-factory.d.ts.map +0 -1
- package/build/values/doc-schema-field-factory.js +0 -151
- package/build/values/doc-schema-field-factory.test.d.ts +0 -2
- package/build/values/doc-schema-field-factory.test.d.ts.map +0 -1
- package/build/values/doc-schema-field-factory.test.js +0 -215
- package/build/values/doc-schema-field-number-multiple-value.d.ts +0 -23
- package/build/values/doc-schema-field-number-multiple-value.d.ts.map +0 -1
- package/build/values/doc-schema-field-number-multiple-value.js +0 -43
- package/build/values/doc-schema-field-number-multiple-value.test.d.ts +0 -2
- package/build/values/doc-schema-field-number-multiple-value.test.d.ts.map +0 -1
- package/build/values/doc-schema-field-number-multiple-value.test.js +0 -79
- package/build/values/doc-schema-field-number-single-value.d.ts +0 -23
- package/build/values/doc-schema-field-number-single-value.d.ts.map +0 -1
- package/build/values/doc-schema-field-number-single-value.js +0 -39
- package/build/values/doc-schema-field-number-single-value.test.d.ts +0 -2
- package/build/values/doc-schema-field-number-single-value.test.d.ts.map +0 -1
- package/build/values/doc-schema-field-number-single-value.test.js +0 -77
- package/build/values/doc-schema-field-relation-multiple-value.d.ts +0 -24
- package/build/values/doc-schema-field-relation-multiple-value.d.ts.map +0 -1
- package/build/values/doc-schema-field-relation-multiple-value.js +0 -46
- package/build/values/doc-schema-field-relation-multiple-value.test.d.ts +0 -2
- package/build/values/doc-schema-field-relation-multiple-value.test.d.ts.map +0 -1
- package/build/values/doc-schema-field-relation-multiple-value.test.js +0 -83
- package/build/values/doc-schema-field-relation-single-value.d.ts +0 -24
- package/build/values/doc-schema-field-relation-single-value.d.ts.map +0 -1
- package/build/values/doc-schema-field-relation-single-value.js +0 -42
- package/build/values/doc-schema-field-relation-single-value.test.d.ts +0 -2
- package/build/values/doc-schema-field-relation-single-value.test.d.ts.map +0 -1
- package/build/values/doc-schema-field-relation-single-value.test.js +0 -83
- package/build/values/doc-schema-field-select-number-multiple-value.d.ts +0 -25
- package/build/values/doc-schema-field-select-number-multiple-value.d.ts.map +0 -1
- package/build/values/doc-schema-field-select-number-multiple-value.js +0 -48
- package/build/values/doc-schema-field-select-number-multiple-value.test.d.ts +0 -2
- package/build/values/doc-schema-field-select-number-multiple-value.test.d.ts.map +0 -1
- package/build/values/doc-schema-field-select-number-multiple-value.test.js +0 -84
- package/build/values/doc-schema-field-select-number-single-value.d.ts +0 -25
- package/build/values/doc-schema-field-select-number-single-value.d.ts.map +0 -1
- package/build/values/doc-schema-field-select-number-single-value.js +0 -45
- package/build/values/doc-schema-field-select-number-single-value.test.d.ts +0 -2
- package/build/values/doc-schema-field-select-number-single-value.test.d.ts.map +0 -1
- package/build/values/doc-schema-field-select-number-single-value.test.js +0 -96
- package/build/values/doc-schema-field-select-text-multiple-value.d.ts +0 -25
- package/build/values/doc-schema-field-select-text-multiple-value.d.ts.map +0 -1
- package/build/values/doc-schema-field-select-text-multiple-value.js +0 -48
- package/build/values/doc-schema-field-select-text-multiple-value.test.d.ts +0 -2
- package/build/values/doc-schema-field-select-text-multiple-value.test.d.ts.map +0 -1
- package/build/values/doc-schema-field-select-text-multiple-value.test.js +0 -84
- package/build/values/doc-schema-field-select-text-single-value.d.ts +0 -25
- package/build/values/doc-schema-field-select-text-single-value.d.ts.map +0 -1
- package/build/values/doc-schema-field-select-text-single-value.js +0 -47
- package/build/values/doc-schema-field-select-text-single-value.test.d.ts +0 -2
- package/build/values/doc-schema-field-select-text-single-value.test.d.ts.map +0 -1
- package/build/values/doc-schema-field-select-text-single-value.test.js +0 -96
- package/build/values/doc-schema-field-text-multiple-value.d.ts +0 -23
- package/build/values/doc-schema-field-text-multiple-value.d.ts.map +0 -1
- package/build/values/doc-schema-field-text-multiple-value.js +0 -43
- package/build/values/doc-schema-field-text-multiple-value.test.d.ts +0 -2
- package/build/values/doc-schema-field-text-multiple-value.test.d.ts.map +0 -1
- package/build/values/doc-schema-field-text-multiple-value.test.js +0 -78
- package/build/values/doc-schema-field-text-single-value.d.ts +0 -23
- package/build/values/doc-schema-field-text-single-value.d.ts.map +0 -1
- package/build/values/doc-schema-field-text-single-value.js +0 -39
- package/build/values/doc-schema-field-text-single-value.test.d.ts +0 -2
- package/build/values/doc-schema-field-text-single-value.test.d.ts.map +0 -1
- package/build/values/doc-schema-field-text-single-value.test.js +0 -76
- package/build/values/doc-schema-field-type-value.d.ts +0 -61
- package/build/values/doc-schema-field-type-value.d.ts.map +0 -1
- package/build/values/doc-schema-field-type-value.js +0 -134
- package/build/values/doc-schema-field-type-value.test.d.ts +0 -2
- package/build/values/doc-schema-field-type-value.test.d.ts.map +0 -1
- package/build/values/doc-schema-field-type-value.test.js +0 -101
- package/build/values/doc-schema-field-value.d.ts +0 -45
- package/build/values/doc-schema-field-value.d.ts.map +0 -1
- package/build/values/doc-schema-field-value.js +0 -1
- package/build/values/doc-schema-value.d.ts +0 -99
- package/build/values/doc-schema-value.d.ts.map +0 -1
- package/build/values/doc-schema-value.js +0 -269
- package/build/values/doc-schema-value.test.d.ts +0 -2
- package/build/values/doc-schema-value.test.d.ts.map +0 -1
- package/build/values/doc-schema-value.test.js +0 -301
- package/build/values/doc-tree-directory-node-value.d.ts +0 -36
- package/build/values/doc-tree-directory-node-value.d.ts.map +0 -1
- package/build/values/doc-tree-directory-node-value.js +0 -71
- package/build/values/doc-tree-directory-node-value.test.d.ts +0 -2
- package/build/values/doc-tree-directory-node-value.test.d.ts.map +0 -1
- package/build/values/doc-tree-directory-node-value.test.js +0 -162
- package/build/values/doc-tree-file-node-value.d.ts +0 -33
- package/build/values/doc-tree-file-node-value.d.ts.map +0 -1
- package/build/values/doc-tree-file-node-value.js +0 -56
- package/build/values/doc-tree-file-node-value.test.d.ts +0 -2
- package/build/values/doc-tree-file-node-value.test.d.ts.map +0 -1
- package/build/values/doc-tree-file-node-value.test.js +0 -113
- package/debug/debug.ts +0 -108
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
import { expect, test } from "bun:test";
|
|
2
|
-
import { DocFrontMatterMdValue } from "./doc-front-matter-md-value";
|
|
3
|
-
test("text メソッドは文字列型の値のみを返す", () => {
|
|
4
|
-
const frontMatter = new DocFrontMatterMdValue({
|
|
5
|
-
title: "正しいタイトル",
|
|
6
|
-
count: 123,
|
|
7
|
-
flag: true,
|
|
8
|
-
list: ["item1", "item2"],
|
|
9
|
-
obj: { key: "value" },
|
|
10
|
-
nullable: null,
|
|
11
|
-
});
|
|
12
|
-
// 文字列型は正しく取得
|
|
13
|
-
expect(frontMatter.text("title")).toBe("正しいタイトル");
|
|
14
|
-
// 他の型はnullを返す
|
|
15
|
-
expect(frontMatter.text("count")).toBeNull();
|
|
16
|
-
expect(frontMatter.text("flag")).toBeNull();
|
|
17
|
-
expect(frontMatter.text("list")).toBeNull();
|
|
18
|
-
expect(frontMatter.text("obj")).toBeNull();
|
|
19
|
-
expect(frontMatter.text("nullable")).toBeNull();
|
|
20
|
-
expect(frontMatter.text("missing")).toBeNull();
|
|
21
|
-
});
|
|
22
|
-
test("number メソッドは数値型の値のみを返す", () => {
|
|
23
|
-
const frontMatter = new DocFrontMatterMdValue({
|
|
24
|
-
count: 42,
|
|
25
|
-
price: 99.99,
|
|
26
|
-
title: "文字列",
|
|
27
|
-
flag: false,
|
|
28
|
-
list: [1, 2, 3],
|
|
29
|
-
});
|
|
30
|
-
// 数値型は正しく取得
|
|
31
|
-
expect(frontMatter.number("count")).toBe(42);
|
|
32
|
-
expect(frontMatter.number("price")).toBe(99.99);
|
|
33
|
-
// 他の型はnullを返す
|
|
34
|
-
expect(frontMatter.number("title")).toBeNull();
|
|
35
|
-
expect(frontMatter.number("flag")).toBeNull();
|
|
36
|
-
expect(frontMatter.number("list")).toBeNull();
|
|
37
|
-
});
|
|
38
|
-
test("boolean メソッドは真偽値型の値のみを返す", () => {
|
|
39
|
-
const frontMatter = new DocFrontMatterMdValue({
|
|
40
|
-
published: true,
|
|
41
|
-
draft: false,
|
|
42
|
-
title: "文字列",
|
|
43
|
-
count: 0,
|
|
44
|
-
zero: 0,
|
|
45
|
-
empty: "",
|
|
46
|
-
});
|
|
47
|
-
// 真偽値型は正しく取得
|
|
48
|
-
expect(frontMatter.boolean("published")).toBe(true);
|
|
49
|
-
expect(frontMatter.boolean("draft")).toBe(false);
|
|
50
|
-
// 他の型はnullを返す(0や空文字列も)
|
|
51
|
-
expect(frontMatter.boolean("title")).toBeNull();
|
|
52
|
-
expect(frontMatter.boolean("count")).toBeNull();
|
|
53
|
-
expect(frontMatter.boolean("zero")).toBeNull();
|
|
54
|
-
expect(frontMatter.boolean("empty")).toBeNull();
|
|
55
|
-
});
|
|
56
|
-
test("relation メソッドは文字列型の値を返す(単一リレーション)", () => {
|
|
57
|
-
const frontMatter = new DocFrontMatterMdValue({
|
|
58
|
-
author: "user-123",
|
|
59
|
-
category: "tech-blog",
|
|
60
|
-
tags: ["tag1", "tag2"],
|
|
61
|
-
count: 123,
|
|
62
|
-
});
|
|
63
|
-
// 文字列型のリレーションは正しく取得
|
|
64
|
-
expect(frontMatter.relation("author")).toBe("user-123");
|
|
65
|
-
expect(frontMatter.relation("category")).toBe("tech-blog");
|
|
66
|
-
// 配列や他の型はnullを返す
|
|
67
|
-
expect(frontMatter.relation("tags")).toBeNull();
|
|
68
|
-
expect(frontMatter.relation("count")).toBeNull();
|
|
69
|
-
});
|
|
70
|
-
test("multiRelation メソッドは文字列配列のみを返す", () => {
|
|
71
|
-
const frontMatter = new DocFrontMatterMdValue({
|
|
72
|
-
features: ["login", "logout", "signup"],
|
|
73
|
-
tags: ["tech", "tutorial", "beginner"],
|
|
74
|
-
emptyArray: [],
|
|
75
|
-
singleString: "not-array",
|
|
76
|
-
numberArray: [1, 2, 3],
|
|
77
|
-
});
|
|
78
|
-
// 文字列配列は正しく取得
|
|
79
|
-
expect(frontMatter.multiRelation("features")).toEqual([
|
|
80
|
-
"login",
|
|
81
|
-
"logout",
|
|
82
|
-
"signup",
|
|
83
|
-
]);
|
|
84
|
-
expect(frontMatter.multiRelation("tags")).toEqual([
|
|
85
|
-
"tech",
|
|
86
|
-
"tutorial",
|
|
87
|
-
"beginner",
|
|
88
|
-
]);
|
|
89
|
-
expect(frontMatter.multiRelation("emptyArray")).toEqual([]);
|
|
90
|
-
// 単一値や数値配列は空配列を返す
|
|
91
|
-
expect(frontMatter.multiRelation("singleString")).toEqual([]);
|
|
92
|
-
expect(frontMatter.multiRelation("numberArray")).toEqual([]);
|
|
93
|
-
expect(frontMatter.multiRelation("missing")).toEqual([]);
|
|
94
|
-
});
|
|
95
|
-
test("multiText メソッドは文字列配列を返す", () => {
|
|
96
|
-
const frontMatter = new DocFrontMatterMdValue({
|
|
97
|
-
keywords: ["typescript", "javascript", "nodejs"],
|
|
98
|
-
authors: ["alice", "bob", "charlie"],
|
|
99
|
-
empty: [],
|
|
100
|
-
notArray: "single-value",
|
|
101
|
-
});
|
|
102
|
-
// 文字列配列は正しく取得
|
|
103
|
-
expect(frontMatter.multiText("keywords")).toEqual([
|
|
104
|
-
"typescript",
|
|
105
|
-
"javascript",
|
|
106
|
-
"nodejs",
|
|
107
|
-
]);
|
|
108
|
-
expect(frontMatter.multiText("authors")).toEqual(["alice", "bob", "charlie"]);
|
|
109
|
-
expect(frontMatter.multiText("empty")).toEqual([]);
|
|
110
|
-
// 非配列は空配列を返す
|
|
111
|
-
expect(frontMatter.multiText("notArray")).toEqual([]);
|
|
112
|
-
expect(frontMatter.multiText("missing")).toEqual([]);
|
|
113
|
-
});
|
|
114
|
-
test("multiNumber メソッドは数値配列のみを返す", () => {
|
|
115
|
-
const frontMatter = new DocFrontMatterMdValue({
|
|
116
|
-
scores: [85, 90, 78],
|
|
117
|
-
prices: [19.99, 29.99, 39.99],
|
|
118
|
-
empty: [],
|
|
119
|
-
stringArray: ["1", "2", "3"],
|
|
120
|
-
singleNumber: 42,
|
|
121
|
-
});
|
|
122
|
-
// 数値配列は正しく取得
|
|
123
|
-
expect(frontMatter.multiNumber("scores")).toEqual([85, 90, 78]);
|
|
124
|
-
expect(frontMatter.multiNumber("prices")).toEqual([19.99, 29.99, 39.99]);
|
|
125
|
-
expect(frontMatter.multiNumber("empty")).toEqual([]);
|
|
126
|
-
// 文字列配列や単一値は空配列を返す
|
|
127
|
-
expect(frontMatter.multiNumber("stringArray")).toEqual([]);
|
|
128
|
-
expect(frontMatter.multiNumber("singleNumber")).toEqual([]);
|
|
129
|
-
expect(frontMatter.multiNumber("missing")).toEqual([]);
|
|
130
|
-
});
|
|
131
|
-
test("multiBoolean メソッドは真偽値配列のみを返す", () => {
|
|
132
|
-
const frontMatter = new DocFrontMatterMdValue({
|
|
133
|
-
flags: [true, false, true, true],
|
|
134
|
-
permissions: [false, false],
|
|
135
|
-
empty: [],
|
|
136
|
-
stringArray: ["true", "false"],
|
|
137
|
-
singleBool: true,
|
|
138
|
-
});
|
|
139
|
-
// 真偽値配列は正しく取得
|
|
140
|
-
expect(frontMatter.multiBoolean("flags")).toEqual([true, false, true, true]);
|
|
141
|
-
expect(frontMatter.multiBoolean("permissions")).toEqual([false, false]);
|
|
142
|
-
expect(frontMatter.multiBoolean("empty")).toEqual([]);
|
|
143
|
-
// 文字列配列や単一値は空配列を返す
|
|
144
|
-
expect(frontMatter.multiBoolean("stringArray")).toEqual([]);
|
|
145
|
-
expect(frontMatter.multiBoolean("singleBool")).toEqual([]);
|
|
146
|
-
expect(frontMatter.multiBoolean("missing")).toEqual([]);
|
|
147
|
-
});
|
|
148
|
-
test("has メソッドはプロパティの存在を正しく判定", () => {
|
|
149
|
-
const frontMatter = new DocFrontMatterMdValue({
|
|
150
|
-
title: "タイトル",
|
|
151
|
-
count: 0,
|
|
152
|
-
flag: false,
|
|
153
|
-
empty: "",
|
|
154
|
-
nullable: null,
|
|
155
|
-
list: [],
|
|
156
|
-
});
|
|
157
|
-
// 値が存在すればtrueを返す(falsy値でも)
|
|
158
|
-
expect(frontMatter.has("title")).toBe(true);
|
|
159
|
-
expect(frontMatter.has("count")).toBe(true);
|
|
160
|
-
expect(frontMatter.has("flag")).toBe(true);
|
|
161
|
-
expect(frontMatter.has("empty")).toBe(true);
|
|
162
|
-
expect(frontMatter.has("nullable")).toBe(true);
|
|
163
|
-
expect(frontMatter.has("list")).toBe(true);
|
|
164
|
-
// 存在しないキーはfalse
|
|
165
|
-
expect(frontMatter.has("missing")).toBe(false);
|
|
166
|
-
expect(frontMatter.has("notDefined")).toBe(false);
|
|
167
|
-
});
|
|
168
|
-
test("keys ゲッターはすべてのキーを返す", () => {
|
|
169
|
-
const frontMatter = new DocFrontMatterMdValue({
|
|
170
|
-
title: "テスト",
|
|
171
|
-
version: 1.0,
|
|
172
|
-
published: true,
|
|
173
|
-
tags: ["tag1", "tag2"],
|
|
174
|
-
});
|
|
175
|
-
const keys = frontMatter.keys;
|
|
176
|
-
expect(keys).toHaveLength(4);
|
|
177
|
-
expect(keys).toContain("title");
|
|
178
|
-
expect(keys).toContain("version");
|
|
179
|
-
expect(keys).toContain("published");
|
|
180
|
-
expect(keys).toContain("tags");
|
|
181
|
-
// 順序は保証されないので、セットで比較
|
|
182
|
-
expect(new Set(keys)).toEqual(new Set(["title", "version", "published", "tags"]));
|
|
183
|
-
});
|
|
184
|
-
test("特殊なケース:存在しないキーへのアクセス", () => {
|
|
185
|
-
const frontMatter = new DocFrontMatterMdValue({
|
|
186
|
-
title: "テスト",
|
|
187
|
-
});
|
|
188
|
-
expect(frontMatter.has("title")).toBe(true);
|
|
189
|
-
expect(frontMatter.has("undefinedValue")).toBe(false);
|
|
190
|
-
expect(frontMatter.text("undefinedValue")).toBeNull();
|
|
191
|
-
});
|
|
192
|
-
test("型の厳密な検証:文字列の数値は数値として扱われない", () => {
|
|
193
|
-
const frontMatter = new DocFrontMatterMdValue({
|
|
194
|
-
stringNumber: "123",
|
|
195
|
-
stringBool: "true",
|
|
196
|
-
actualNumber: 123,
|
|
197
|
-
actualBool: true,
|
|
198
|
-
});
|
|
199
|
-
// 文字列の"123"は数値として取得できない
|
|
200
|
-
expect(frontMatter.number("stringNumber")).toBeNull();
|
|
201
|
-
expect(frontMatter.text("stringNumber")).toBe("123");
|
|
202
|
-
// 文字列の"true"は真偽値として取得できない
|
|
203
|
-
expect(frontMatter.boolean("stringBool")).toBeNull();
|
|
204
|
-
expect(frontMatter.text("stringBool")).toBe("true");
|
|
205
|
-
// 実際の数値と真偽値は正しく取得
|
|
206
|
-
expect(frontMatter.number("actualNumber")).toBe(123);
|
|
207
|
-
expect(frontMatter.boolean("actualBool")).toBe(true);
|
|
208
|
-
});
|
|
209
|
-
test("ネストしたオブジェクトは適切に扱われる", () => {
|
|
210
|
-
const frontMatter = new DocFrontMatterMdValue({
|
|
211
|
-
meta: {
|
|
212
|
-
author: "John",
|
|
213
|
-
version: 1.0,
|
|
214
|
-
},
|
|
215
|
-
config: {
|
|
216
|
-
enabled: true,
|
|
217
|
-
settings: ["a", "b"],
|
|
218
|
-
},
|
|
219
|
-
});
|
|
220
|
-
// ネストしたオブジェクトは文字列や他の型として取得できない
|
|
221
|
-
expect(frontMatter.text("meta")).toBeNull();
|
|
222
|
-
expect(frontMatter.text("config")).toBeNull();
|
|
223
|
-
// ただし、存在はする
|
|
224
|
-
expect(frontMatter.has("meta")).toBe(true);
|
|
225
|
-
expect(frontMatter.has("config")).toBe(true);
|
|
226
|
-
});
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import type { DocFileMdFrontMatter } from "../types";
|
|
2
|
-
import type { DocSchemaValue } from "./doc-schema-value";
|
|
3
|
-
/**
|
|
4
|
-
* FrontMatter
|
|
5
|
-
*/
|
|
6
|
-
export declare class DocFrontMatterMdValue {
|
|
7
|
-
readonly value: DocFileMdFrontMatter;
|
|
8
|
-
constructor(value: DocFileMdFrontMatter);
|
|
9
|
-
toJson(): DocFileMdFrontMatter;
|
|
10
|
-
toYaml(): string;
|
|
11
|
-
/**
|
|
12
|
-
* Markdownテキストから生成
|
|
13
|
-
*/
|
|
14
|
-
static from(markdownText: string): DocFrontMatterMdValue;
|
|
15
|
-
/**
|
|
16
|
-
* 空のFrontMatterを生成
|
|
17
|
-
*/
|
|
18
|
-
static empty(): DocFrontMatterMdValue;
|
|
19
|
-
/**
|
|
20
|
-
* データから直接生成
|
|
21
|
-
*/
|
|
22
|
-
static fromData(data: unknown): DocFrontMatterMdValue;
|
|
23
|
-
/**
|
|
24
|
-
* スキーマフィールドに基づいてデフォルト値を生成する
|
|
25
|
-
*/
|
|
26
|
-
static generateDefaultValueFromSchemaField(fieldDef: {
|
|
27
|
-
type: string;
|
|
28
|
-
default?: unknown;
|
|
29
|
-
}): unknown;
|
|
30
|
-
/**
|
|
31
|
-
* 単一のプロパティを更新した新しいインスタンスを返す
|
|
32
|
-
* スキーマに基づいて型を検証し、スキーマのフィールドのみを含む新しいインスタンスを生成
|
|
33
|
-
*/
|
|
34
|
-
withProperty(key: string, value: unknown, schema: DocSchemaValue): DocFrontMatterMdValue;
|
|
35
|
-
/**
|
|
36
|
-
* フィールド値の検証
|
|
37
|
-
*/
|
|
38
|
-
private validateFieldValue;
|
|
39
|
-
/**
|
|
40
|
-
* テキスト型のプロパティを取得
|
|
41
|
-
*/
|
|
42
|
-
text(key: string): string | null;
|
|
43
|
-
/**
|
|
44
|
-
* 数値型のプロパティを取得
|
|
45
|
-
*/
|
|
46
|
-
number(key: string): number | null;
|
|
47
|
-
/**
|
|
48
|
-
* 真偽値型のプロパティを取得
|
|
49
|
-
*/
|
|
50
|
-
boolean(key: string): boolean | null;
|
|
51
|
-
/**
|
|
52
|
-
* 単一リレーション型のプロパティを取得
|
|
53
|
-
*/
|
|
54
|
-
relation(key: string): string | null;
|
|
55
|
-
/**
|
|
56
|
-
* 複数リレーション型のプロパティを取得
|
|
57
|
-
*/
|
|
58
|
-
multiRelation(key: string): string[];
|
|
59
|
-
/**
|
|
60
|
-
* 複数テキスト型のプロパティを取得
|
|
61
|
-
*/
|
|
62
|
-
multiText(key: string): string[];
|
|
63
|
-
/**
|
|
64
|
-
* 複数数値型のプロパティを取得
|
|
65
|
-
*/
|
|
66
|
-
multiNumber(key: string): number[];
|
|
67
|
-
/**
|
|
68
|
-
* 複数真偽値型のプロパティを取得
|
|
69
|
-
*/
|
|
70
|
-
multiBoolean(key: string): boolean[];
|
|
71
|
-
/**
|
|
72
|
-
* プロパティが存在するかチェック
|
|
73
|
-
*/
|
|
74
|
-
has(key: string): boolean;
|
|
75
|
-
/**
|
|
76
|
-
* すべてのキーを取得
|
|
77
|
-
*/
|
|
78
|
-
get keys(): string[];
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=doc-front-matter-md-value.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"doc-front-matter-md-value.d.ts","sourceRoot":"","sources":["../../lib/values/doc-front-matter-md-value.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAIV,oBAAoB,EAIrB,MAAM,UAAU,CAAA;AAUjB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD;;GAEG;AACH,qBAAa,qBAAqB;IACpB,QAAQ,CAAC,KAAK,EAAE,oBAAoB;IAAhD,YAAqB,KAAK,EAAE,oBAAoB,EAG/C;IAED,MAAM,IAAI,oBAAoB,CAE7B;IAED,MAAM,IAAI,MAAM,CAEf;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,qBAAqB,CAQvD;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,qBAAqB,CAEpC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,qBAAqB,CAGpD;IAED;;OAEG;IACH,MAAM,CAAC,mCAAmC,CAAC,QAAQ,EAAE;QACnD,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB,GAAG,OAAO,CAsBV;IAED;;;OAGG;IACH,YAAY,CACV,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,cAAc,GACrB,qBAAqB,CA4CvB;IAED;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAc1B;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU/B;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUjC;IAED;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAYnC;IAED;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWnC;IAED;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAYnC;IAED;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAY/B;IAED;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAYjC;IAED;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,CAYnC;IAED;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAExB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,EAAE,CAEnB;CACF"}
|
|
@@ -1,257 +0,0 @@
|
|
|
1
|
-
import { stringify } from "yaml";
|
|
2
|
-
import { zDocFileMdFrontMatter } from "../models";
|
|
3
|
-
import { DocContentMdValue } from "./doc-content-md-value";
|
|
4
|
-
import { DocSchemaFieldBooleanMultipleValue } from "./doc-schema-field-boolean-multiple-value";
|
|
5
|
-
import { DocSchemaFieldBooleanSingleValue } from "./doc-schema-field-boolean-single-value";
|
|
6
|
-
import { DocSchemaFieldFactory } from "./doc-schema-field-factory";
|
|
7
|
-
import { DocSchemaFieldNumberMultipleValue } from "./doc-schema-field-number-multiple-value";
|
|
8
|
-
import { DocSchemaFieldNumberSingleValue } from "./doc-schema-field-number-single-value";
|
|
9
|
-
import { DocSchemaFieldTextMultipleValue } from "./doc-schema-field-text-multiple-value";
|
|
10
|
-
import { DocSchemaFieldTextSingleValue } from "./doc-schema-field-text-single-value";
|
|
11
|
-
/**
|
|
12
|
-
* FrontMatter
|
|
13
|
-
*/
|
|
14
|
-
export class DocFrontMatterMdValue {
|
|
15
|
-
value;
|
|
16
|
-
constructor(value) {
|
|
17
|
-
this.value = value;
|
|
18
|
-
zDocFileMdFrontMatter.parse(value);
|
|
19
|
-
Object.freeze(this);
|
|
20
|
-
}
|
|
21
|
-
toJson() {
|
|
22
|
-
return this.value;
|
|
23
|
-
}
|
|
24
|
-
toYaml() {
|
|
25
|
-
return stringify(this.value).trim();
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Markdownテキストから生成
|
|
29
|
-
*/
|
|
30
|
-
static from(markdownText) {
|
|
31
|
-
const openMarkdown = new DocContentMdValue(markdownText);
|
|
32
|
-
const rawData = openMarkdown.frontMatter.data || {};
|
|
33
|
-
const data = zDocFileMdFrontMatter.parse(rawData);
|
|
34
|
-
return new DocFrontMatterMdValue(data);
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* 空のFrontMatterを生成
|
|
38
|
-
*/
|
|
39
|
-
static empty() {
|
|
40
|
-
return new DocFrontMatterMdValue({});
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* データから直接生成
|
|
44
|
-
*/
|
|
45
|
-
static fromData(data) {
|
|
46
|
-
const validatedData = zDocFileMdFrontMatter.parse(data);
|
|
47
|
-
return new DocFrontMatterMdValue(validatedData);
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* スキーマフィールドに基づいてデフォルト値を生成する
|
|
51
|
-
*/
|
|
52
|
-
static generateDefaultValueFromSchemaField(fieldDef) {
|
|
53
|
-
if (fieldDef.type === "text") {
|
|
54
|
-
return fieldDef.default ?? "";
|
|
55
|
-
}
|
|
56
|
-
if (fieldDef.type === "boolean") {
|
|
57
|
-
return fieldDef.default ?? false;
|
|
58
|
-
}
|
|
59
|
-
if (fieldDef.type === "number") {
|
|
60
|
-
return fieldDef.default ?? 0;
|
|
61
|
-
}
|
|
62
|
-
if (fieldDef.type === "multi-text" ||
|
|
63
|
-
fieldDef.type === "multi-number" ||
|
|
64
|
-
fieldDef.type === "multi-boolean" ||
|
|
65
|
-
fieldDef.type === "multi-relation") {
|
|
66
|
-
return fieldDef.default ?? [];
|
|
67
|
-
}
|
|
68
|
-
if (fieldDef.type === "relation") {
|
|
69
|
-
return fieldDef.default ?? null;
|
|
70
|
-
}
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* 単一のプロパティを更新した新しいインスタンスを返す
|
|
75
|
-
* スキーマに基づいて型を検証し、スキーマのフィールドのみを含む新しいインスタンスを生成
|
|
76
|
-
*/
|
|
77
|
-
withProperty(key, value, schema) {
|
|
78
|
-
const currentData = this.toJson();
|
|
79
|
-
const fieldValue = schema.field(key);
|
|
80
|
-
if (fieldValue === null) {
|
|
81
|
-
return this;
|
|
82
|
-
}
|
|
83
|
-
if (!this.validateFieldValue(key, value, fieldValue)) {
|
|
84
|
-
return this;
|
|
85
|
-
}
|
|
86
|
-
// スキーマを元にFrontMatterを再構築
|
|
87
|
-
const draft = {};
|
|
88
|
-
for (const field of schema.fields) {
|
|
89
|
-
const fieldKey = field.key;
|
|
90
|
-
if (fieldKey === key) {
|
|
91
|
-
// 更新対象のフィールドは新しい値を使用
|
|
92
|
-
// valueは事前にvalidateFieldValueで検証済み
|
|
93
|
-
draft[fieldKey] = value;
|
|
94
|
-
}
|
|
95
|
-
else if (fieldKey in currentData) {
|
|
96
|
-
// 既存の値があればそれを使用
|
|
97
|
-
const value = currentData[fieldKey];
|
|
98
|
-
if (value !== undefined) {
|
|
99
|
-
draft[fieldKey] = value;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
// 値がない場合はデフォルト値を使用
|
|
104
|
-
draft[fieldKey] = field.toJson().default;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
return new DocFrontMatterMdValue(draft);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* フィールド値の検証
|
|
111
|
-
*/
|
|
112
|
-
validateFieldValue(key, value, fieldDef) {
|
|
113
|
-
try {
|
|
114
|
-
const factory = new DocSchemaFieldFactory();
|
|
115
|
-
const schemaField = factory.fromSchemaEntry(key, fieldDef);
|
|
116
|
-
return schemaField.validate(value);
|
|
117
|
-
}
|
|
118
|
-
catch {
|
|
119
|
-
return false;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* テキスト型のプロパティを取得
|
|
124
|
-
*/
|
|
125
|
-
text(key) {
|
|
126
|
-
const value = this.value[key];
|
|
127
|
-
const validator = new DocSchemaFieldTextSingleValue(key, {
|
|
128
|
-
type: "text",
|
|
129
|
-
required: false,
|
|
130
|
-
title: null,
|
|
131
|
-
description: null,
|
|
132
|
-
default: null,
|
|
133
|
-
});
|
|
134
|
-
return validator.validate(value) && typeof value === "string" ? value : null;
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* 数値型のプロパティを取得
|
|
138
|
-
*/
|
|
139
|
-
number(key) {
|
|
140
|
-
const value = this.value[key];
|
|
141
|
-
const validator = new DocSchemaFieldNumberSingleValue(key, {
|
|
142
|
-
type: "number",
|
|
143
|
-
required: false,
|
|
144
|
-
title: null,
|
|
145
|
-
description: null,
|
|
146
|
-
default: null,
|
|
147
|
-
});
|
|
148
|
-
return validator.validate(value) && typeof value === "number" ? value : null;
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* 真偽値型のプロパティを取得
|
|
152
|
-
*/
|
|
153
|
-
boolean(key) {
|
|
154
|
-
const value = this.value[key];
|
|
155
|
-
const validator = new DocSchemaFieldBooleanSingleValue(key, {
|
|
156
|
-
type: "boolean",
|
|
157
|
-
required: false,
|
|
158
|
-
title: null,
|
|
159
|
-
description: null,
|
|
160
|
-
default: null,
|
|
161
|
-
});
|
|
162
|
-
return validator.validate(value) && typeof value === "boolean"
|
|
163
|
-
? value
|
|
164
|
-
: null;
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* 単一リレーション型のプロパティを取得
|
|
168
|
-
*/
|
|
169
|
-
relation(key) {
|
|
170
|
-
const value = this.value[key];
|
|
171
|
-
// リレーションもテキスト型と同じバリデーション
|
|
172
|
-
const validator = new DocSchemaFieldTextSingleValue(key, {
|
|
173
|
-
type: "text",
|
|
174
|
-
required: false,
|
|
175
|
-
title: null,
|
|
176
|
-
description: null,
|
|
177
|
-
default: null,
|
|
178
|
-
});
|
|
179
|
-
return validator.validate(value) && typeof value === "string" ? value : null;
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* 複数リレーション型のプロパティを取得
|
|
183
|
-
*/
|
|
184
|
-
multiRelation(key) {
|
|
185
|
-
const value = this.value[key];
|
|
186
|
-
const validator = new DocSchemaFieldTextMultipleValue(key, {
|
|
187
|
-
type: "multi-text",
|
|
188
|
-
required: false,
|
|
189
|
-
title: null,
|
|
190
|
-
description: null,
|
|
191
|
-
default: null,
|
|
192
|
-
});
|
|
193
|
-
return validator.validate(value) && Array.isArray(value)
|
|
194
|
-
? value
|
|
195
|
-
: [];
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* 複数テキスト型のプロパティを取得
|
|
199
|
-
*/
|
|
200
|
-
multiText(key) {
|
|
201
|
-
const value = this.value[key];
|
|
202
|
-
const validator = new DocSchemaFieldTextMultipleValue(key, {
|
|
203
|
-
type: "multi-text",
|
|
204
|
-
required: false,
|
|
205
|
-
title: null,
|
|
206
|
-
description: null,
|
|
207
|
-
default: null,
|
|
208
|
-
});
|
|
209
|
-
return validator.validate(value) && Array.isArray(value)
|
|
210
|
-
? value
|
|
211
|
-
: [];
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* 複数数値型のプロパティを取得
|
|
215
|
-
*/
|
|
216
|
-
multiNumber(key) {
|
|
217
|
-
const value = this.value[key];
|
|
218
|
-
const validator = new DocSchemaFieldNumberMultipleValue(key, {
|
|
219
|
-
type: "multi-number",
|
|
220
|
-
required: false,
|
|
221
|
-
title: null,
|
|
222
|
-
description: null,
|
|
223
|
-
default: null,
|
|
224
|
-
});
|
|
225
|
-
return validator.validate(value) && Array.isArray(value)
|
|
226
|
-
? value
|
|
227
|
-
: [];
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* 複数真偽値型のプロパティを取得
|
|
231
|
-
*/
|
|
232
|
-
multiBoolean(key) {
|
|
233
|
-
const value = this.value[key];
|
|
234
|
-
const validator = new DocSchemaFieldBooleanMultipleValue(key, {
|
|
235
|
-
type: "multi-boolean",
|
|
236
|
-
required: false,
|
|
237
|
-
title: null,
|
|
238
|
-
description: null,
|
|
239
|
-
default: null,
|
|
240
|
-
});
|
|
241
|
-
return validator.validate(value) && Array.isArray(value)
|
|
242
|
-
? value
|
|
243
|
-
: [];
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* プロパティが存在するかチェック
|
|
247
|
-
*/
|
|
248
|
-
has(key) {
|
|
249
|
-
return key in this.value && this.value[key] !== undefined;
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
* すべてのキーを取得
|
|
253
|
-
*/
|
|
254
|
-
get keys() {
|
|
255
|
-
return Object.keys(this.value);
|
|
256
|
-
}
|
|
257
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"doc-front-matter-md-value.test.d.ts","sourceRoot":"","sources":["../../lib/values/doc-front-matter-md-value.test.ts"],"names":[],"mappings":""}
|