@interactive-inc/docs-client 0.0.4 → 0.0.6
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 +228 -0
- package/build/doc-client.d.ts +59 -0
- package/build/doc-client.d.ts.map +1 -0
- package/build/doc-client.js +95 -0
- package/build/doc-client.test.d.ts +2 -0
- package/build/doc-client.test.d.ts.map +1 -0
- package/build/doc-client.test.js +38 -0
- package/build/doc-directory-reference.d.ts +65 -0
- package/build/doc-directory-reference.d.ts.map +1 -0
- package/build/doc-directory-reference.js +292 -0
- package/build/doc-directory-reference.test.d.ts +2 -0
- package/build/doc-directory-reference.test.d.ts.map +1 -0
- package/build/doc-directory-reference.test.js +100 -0
- package/build/doc-file-index-reference.d.ts +72 -0
- package/build/doc-file-index-reference.d.ts.map +1 -0
- package/build/doc-file-index-reference.js +191 -0
- package/build/doc-file-index-reference.test.d.ts +2 -0
- package/build/doc-file-index-reference.test.d.ts.map +1 -0
- package/build/doc-file-index-reference.test.js +77 -0
- package/build/doc-file-md-reference.d.ts +97 -0
- package/build/doc-file-md-reference.d.ts.map +1 -0
- package/build/doc-file-md-reference.js +297 -0
- package/build/doc-file-md-reference.test.d.ts +2 -0
- package/build/doc-file-md-reference.test.d.ts.map +1 -0
- package/build/doc-file-md-reference.test.js +465 -0
- package/build/doc-file-relation-reference.d.ts +54 -0
- package/build/doc-file-relation-reference.d.ts.map +1 -0
- package/build/doc-file-relation-reference.js +109 -0
- package/build/doc-file-system-debug.d.ts +81 -0
- package/build/doc-file-system-debug.d.ts.map +1 -0
- package/build/doc-file-system-debug.js +317 -0
- package/build/doc-file-system.d.ts +100 -0
- package/build/doc-file-system.d.ts.map +1 -0
- package/build/doc-file-system.js +210 -0
- package/build/doc-file-tree-system.d.ts +38 -0
- package/build/doc-file-tree-system.d.ts.map +1 -0
- package/build/doc-file-tree-system.js +153 -0
- package/build/doc-file-tree-system.test.d.ts +2 -0
- package/build/doc-file-tree-system.test.d.ts.map +1 -0
- package/build/doc-file-tree-system.test.js +105 -0
- package/build/doc-file-unknown-reference.d.ts +80 -0
- package/build/doc-file-unknown-reference.d.ts.map +1 -0
- package/build/doc-file-unknown-reference.js +181 -0
- package/build/doc-file-unknown-reference.test.d.ts +2 -0
- package/build/doc-file-unknown-reference.test.d.ts.map +1 -0
- package/build/doc-file-unknown-reference.test.js +73 -0
- package/build/doc-markdown-system.d.ts +44 -0
- package/build/doc-markdown-system.d.ts.map +1 -0
- package/build/doc-markdown-system.js +153 -0
- package/build/doc-markdown-system.test.d.ts +2 -0
- package/build/doc-markdown-system.test.d.ts.map +1 -0
- package/build/doc-markdown-system.test.js +124 -0
- package/build/doc-path-system.d.ts +43 -0
- package/build/doc-path-system.d.ts.map +1 -0
- package/build/doc-path-system.js +148 -0
- package/build/doc-path-system.test.d.ts +2 -0
- package/build/doc-path-system.test.d.ts.map +1 -0
- package/build/doc-path-system.test.js +67 -0
- package/build/entities/doc-file-entity.d.ts +5 -0
- package/build/entities/doc-file-entity.d.ts.map +1 -0
- package/build/entities/doc-file-entity.js +1 -0
- package/build/entities/doc-file-index-entity.d.ts +30 -0
- package/build/entities/doc-file-index-entity.d.ts.map +1 -0
- package/build/entities/doc-file-index-entity.js +49 -0
- package/build/entities/doc-file-index-entity.test.d.ts +2 -0
- package/build/entities/doc-file-index-entity.test.d.ts.map +1 -0
- package/build/entities/doc-file-index-entity.test.js +195 -0
- package/build/entities/doc-file-md-entity.d.ts +30 -0
- package/build/entities/doc-file-md-entity.d.ts.map +1 -0
- package/build/entities/doc-file-md-entity.js +49 -0
- package/build/entities/doc-file-md-entity.test.d.ts +2 -0
- package/build/entities/doc-file-md-entity.test.d.ts.map +1 -0
- package/build/entities/doc-file-md-entity.test.js +178 -0
- package/build/entities/doc-file-unknown-entity.d.ts +26 -0
- package/build/entities/doc-file-unknown-entity.d.ts.map +1 -0
- package/build/entities/doc-file-unknown-entity.js +45 -0
- package/build/entities/doc-file-unknown-entity.test.d.ts +2 -0
- package/build/entities/doc-file-unknown-entity.test.d.ts.map +1 -0
- package/build/entities/doc-file-unknown-entity.test.js +131 -0
- package/build/index.d.ts +42 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +39 -24064
- package/build/models.d.ts +818 -0
- package/build/models.d.ts.map +1 -0
- package/build/models.js +312 -0
- package/build/types.d.ts +154 -0
- package/build/types.d.ts.map +1 -0
- package/build/types.js +1 -0
- package/build/values/doc-content-md-front-matter-value.d.ts +49 -0
- package/build/values/doc-content-md-front-matter-value.d.ts.map +1 -0
- package/build/values/doc-content-md-front-matter-value.js +94 -0
- package/build/values/doc-content-md-front-matter-value.test.d.ts +2 -0
- package/build/values/doc-content-md-front-matter-value.test.d.ts.map +1 -0
- package/build/values/doc-content-md-front-matter-value.test.js +73 -0
- package/build/values/doc-content-md-value.d.ts +66 -0
- package/build/values/doc-content-md-value.d.ts.map +1 -0
- package/build/values/doc-content-md-value.js +218 -0
- package/build/values/doc-content-md-value.test.d.ts +2 -0
- package/build/values/doc-content-md-value.test.d.ts.map +1 -0
- package/build/values/doc-content-md-value.test.js +179 -0
- package/build/values/doc-directory-path-value.d.ts +89 -0
- package/build/values/doc-directory-path-value.d.ts.map +1 -0
- package/build/values/doc-directory-path-value.js +145 -0
- package/build/values/doc-directory-path-value.test.d.ts +2 -0
- package/build/values/doc-directory-path-value.test.d.ts.map +1 -0
- package/build/values/doc-directory-path-value.test.js +68 -0
- package/build/values/doc-file-content-index-value.d.ts +62 -0
- package/build/values/doc-file-content-index-value.d.ts.map +1 -0
- package/build/values/doc-file-content-index-value.js +134 -0
- package/build/values/doc-file-content-index-value.test.d.ts +2 -0
- package/build/values/doc-file-content-index-value.test.d.ts.map +1 -0
- package/build/values/doc-file-content-index-value.test.js +203 -0
- package/build/values/doc-file-content-md-value.d.ts +62 -0
- package/build/values/doc-file-content-md-value.d.ts.map +1 -0
- package/build/values/doc-file-content-md-value.js +139 -0
- package/build/values/doc-file-content-md-value.test.d.ts +2 -0
- package/build/values/doc-file-content-md-value.test.d.ts.map +1 -0
- package/build/values/doc-file-content-md-value.test.js +160 -0
- package/build/values/doc-file-path-value.d.ts +47 -0
- package/build/values/doc-file-path-value.d.ts.map +1 -0
- package/build/values/doc-file-path-value.js +83 -0
- package/build/values/doc-file-path-value.test.d.ts +2 -0
- package/build/values/doc-file-path-value.test.d.ts.map +1 -0
- package/build/values/doc-file-path-value.test.js +84 -0
- package/build/values/doc-front-matter-index-value.d.ts +66 -0
- package/build/values/doc-front-matter-index-value.d.ts.map +1 -0
- package/build/values/doc-front-matter-index-value.js +185 -0
- package/build/values/doc-front-matter-index-value.test.d.ts +2 -0
- package/build/values/doc-front-matter-index-value.test.d.ts.map +1 -0
- package/build/values/doc-front-matter-index-value.test.js +98 -0
- package/build/values/doc-front-matter-md-value-accessor.test.d.ts +2 -0
- package/build/values/doc-front-matter-md-value-accessor.test.d.ts.map +1 -0
- package/build/values/doc-front-matter-md-value-accessor.test.js +226 -0
- package/build/values/doc-front-matter-md-value.d.ts +80 -0
- package/build/values/doc-front-matter-md-value.d.ts.map +1 -0
- package/build/values/doc-front-matter-md-value.js +257 -0
- package/build/values/doc-front-matter-md-value.test.d.ts +2 -0
- package/build/values/doc-front-matter-md-value.test.d.ts.map +1 -0
- package/build/values/doc-front-matter-md-value.test.js +198 -0
- package/build/values/doc-relation-field-value.d.ts +57 -0
- package/build/values/doc-relation-field-value.d.ts.map +1 -0
- package/build/values/doc-relation-field-value.js +85 -0
- package/build/values/doc-relation-field-value.test.d.ts +2 -0
- package/build/values/doc-relation-field-value.test.d.ts.map +1 -0
- package/build/values/doc-relation-field-value.test.js +115 -0
- package/build/values/doc-relation-file-value.d.ts +33 -0
- package/build/values/doc-relation-file-value.d.ts.map +1 -0
- package/build/values/doc-relation-file-value.js +55 -0
- package/build/values/doc-relation-file-value.test.d.ts +2 -0
- package/build/values/doc-relation-file-value.test.d.ts.map +1 -0
- package/build/values/doc-relation-file-value.test.js +77 -0
- package/build/values/doc-relation-value.d.ts +34 -0
- package/build/values/doc-relation-value.d.ts.map +1 -0
- package/build/values/doc-relation-value.js +56 -0
- package/build/values/doc-relation-value.test.d.ts +2 -0
- package/build/values/doc-relation-value.test.d.ts.map +1 -0
- package/build/values/doc-relation-value.test.js +89 -0
- package/build/values/doc-schema-field-boolean-multiple-value.d.ts +23 -0
- package/build/values/doc-schema-field-boolean-multiple-value.d.ts.map +1 -0
- package/build/values/doc-schema-field-boolean-multiple-value.js +43 -0
- package/build/values/doc-schema-field-boolean-multiple-value.test.d.ts +2 -0
- package/build/values/doc-schema-field-boolean-multiple-value.test.d.ts.map +1 -0
- package/build/values/doc-schema-field-boolean-multiple-value.test.js +76 -0
- package/build/values/doc-schema-field-boolean-single-value.d.ts +23 -0
- package/build/values/doc-schema-field-boolean-single-value.d.ts.map +1 -0
- package/build/values/doc-schema-field-boolean-single-value.js +39 -0
- package/build/values/doc-schema-field-boolean-single-value.test.d.ts +2 -0
- package/build/values/doc-schema-field-boolean-single-value.test.d.ts.map +1 -0
- package/build/values/doc-schema-field-boolean-single-value.test.js +73 -0
- package/build/values/doc-schema-field-factory.d.ts +37 -0
- package/build/values/doc-schema-field-factory.d.ts.map +1 -0
- package/build/values/doc-schema-field-factory.js +151 -0
- package/build/values/doc-schema-field-factory.test.d.ts +2 -0
- package/build/values/doc-schema-field-factory.test.d.ts.map +1 -0
- package/build/values/doc-schema-field-factory.test.js +215 -0
- package/build/values/doc-schema-field-number-multiple-value.d.ts +23 -0
- package/build/values/doc-schema-field-number-multiple-value.d.ts.map +1 -0
- package/build/values/doc-schema-field-number-multiple-value.js +43 -0
- package/build/values/doc-schema-field-number-multiple-value.test.d.ts +2 -0
- package/build/values/doc-schema-field-number-multiple-value.test.d.ts.map +1 -0
- package/build/values/doc-schema-field-number-multiple-value.test.js +79 -0
- package/build/values/doc-schema-field-number-single-value.d.ts +23 -0
- package/build/values/doc-schema-field-number-single-value.d.ts.map +1 -0
- package/build/values/doc-schema-field-number-single-value.js +39 -0
- package/build/values/doc-schema-field-number-single-value.test.d.ts +2 -0
- package/build/values/doc-schema-field-number-single-value.test.d.ts.map +1 -0
- package/build/values/doc-schema-field-number-single-value.test.js +77 -0
- package/build/values/doc-schema-field-relation-multiple-value.d.ts +24 -0
- package/build/values/doc-schema-field-relation-multiple-value.d.ts.map +1 -0
- package/build/values/doc-schema-field-relation-multiple-value.js +46 -0
- package/build/values/doc-schema-field-relation-multiple-value.test.d.ts +2 -0
- package/build/values/doc-schema-field-relation-multiple-value.test.d.ts.map +1 -0
- package/build/values/doc-schema-field-relation-multiple-value.test.js +83 -0
- package/build/values/doc-schema-field-relation-single-value.d.ts +24 -0
- package/build/values/doc-schema-field-relation-single-value.d.ts.map +1 -0
- package/build/values/doc-schema-field-relation-single-value.js +42 -0
- package/build/values/doc-schema-field-relation-single-value.test.d.ts +2 -0
- package/build/values/doc-schema-field-relation-single-value.test.d.ts.map +1 -0
- package/build/values/doc-schema-field-relation-single-value.test.js +83 -0
- package/build/values/doc-schema-field-select-number-multiple-value.d.ts +25 -0
- package/build/values/doc-schema-field-select-number-multiple-value.d.ts.map +1 -0
- package/build/values/doc-schema-field-select-number-multiple-value.js +48 -0
- package/build/values/doc-schema-field-select-number-multiple-value.test.d.ts +2 -0
- package/build/values/doc-schema-field-select-number-multiple-value.test.d.ts.map +1 -0
- package/build/values/doc-schema-field-select-number-multiple-value.test.js +84 -0
- package/build/values/doc-schema-field-select-number-single-value.d.ts +25 -0
- package/build/values/doc-schema-field-select-number-single-value.d.ts.map +1 -0
- package/build/values/doc-schema-field-select-number-single-value.js +45 -0
- package/build/values/doc-schema-field-select-number-single-value.test.d.ts +2 -0
- package/build/values/doc-schema-field-select-number-single-value.test.d.ts.map +1 -0
- package/build/values/doc-schema-field-select-number-single-value.test.js +96 -0
- package/build/values/doc-schema-field-select-text-multiple-value.d.ts +25 -0
- package/build/values/doc-schema-field-select-text-multiple-value.d.ts.map +1 -0
- package/build/values/doc-schema-field-select-text-multiple-value.js +48 -0
- package/build/values/doc-schema-field-select-text-multiple-value.test.d.ts +2 -0
- package/build/values/doc-schema-field-select-text-multiple-value.test.d.ts.map +1 -0
- package/build/values/doc-schema-field-select-text-multiple-value.test.js +84 -0
- package/build/values/doc-schema-field-select-text-single-value.d.ts +25 -0
- package/build/values/doc-schema-field-select-text-single-value.d.ts.map +1 -0
- package/build/values/doc-schema-field-select-text-single-value.js +47 -0
- package/build/values/doc-schema-field-select-text-single-value.test.d.ts +2 -0
- package/build/values/doc-schema-field-select-text-single-value.test.d.ts.map +1 -0
- package/build/values/doc-schema-field-select-text-single-value.test.js +96 -0
- package/build/values/doc-schema-field-text-multiple-value.d.ts +23 -0
- package/build/values/doc-schema-field-text-multiple-value.d.ts.map +1 -0
- package/build/values/doc-schema-field-text-multiple-value.js +43 -0
- package/build/values/doc-schema-field-text-multiple-value.test.d.ts +2 -0
- package/build/values/doc-schema-field-text-multiple-value.test.d.ts.map +1 -0
- package/build/values/doc-schema-field-text-multiple-value.test.js +78 -0
- package/build/values/doc-schema-field-text-single-value.d.ts +23 -0
- package/build/values/doc-schema-field-text-single-value.d.ts.map +1 -0
- package/build/values/doc-schema-field-text-single-value.js +39 -0
- package/build/values/doc-schema-field-text-single-value.test.d.ts +2 -0
- package/build/values/doc-schema-field-text-single-value.test.d.ts.map +1 -0
- package/build/values/doc-schema-field-text-single-value.test.js +76 -0
- package/build/values/doc-schema-field-type-value.d.ts +61 -0
- package/build/values/doc-schema-field-type-value.d.ts.map +1 -0
- package/build/values/doc-schema-field-type-value.js +134 -0
- package/build/values/doc-schema-field-type-value.test.d.ts +2 -0
- package/build/values/doc-schema-field-type-value.test.d.ts.map +1 -0
- package/build/values/doc-schema-field-type-value.test.js +101 -0
- package/build/values/doc-schema-field-value.d.ts +45 -0
- package/build/values/doc-schema-field-value.d.ts.map +1 -0
- package/build/values/doc-schema-field-value.js +1 -0
- package/build/values/doc-schema-value.d.ts +99 -0
- package/build/values/doc-schema-value.d.ts.map +1 -0
- package/build/values/doc-schema-value.js +269 -0
- package/build/values/doc-schema-value.test.d.ts +2 -0
- package/build/values/doc-schema-value.test.d.ts.map +1 -0
- package/build/values/doc-schema-value.test.js +301 -0
- package/build/values/doc-tree-directory-node-value.d.ts +36 -0
- package/build/values/doc-tree-directory-node-value.d.ts.map +1 -0
- package/build/values/doc-tree-directory-node-value.js +71 -0
- package/build/values/doc-tree-directory-node-value.test.d.ts +2 -0
- package/build/values/doc-tree-directory-node-value.test.d.ts.map +1 -0
- package/build/values/doc-tree-directory-node-value.test.js +162 -0
- package/build/values/doc-tree-file-node-value.d.ts +33 -0
- package/build/values/doc-tree-file-node-value.d.ts.map +1 -0
- package/build/values/doc-tree-file-node-value.js +56 -0
- package/build/values/doc-tree-file-node-value.test.d.ts +2 -0
- package/build/values/doc-tree-file-node-value.test.d.ts.map +1 -0
- package/build/values/doc-tree-file-node-value.test.js +113 -0
- package/debug/debug.ts +108 -0
- package/package.json +7 -45
- package/bin/docs.js +0 -3
- package/build/assets/index.css +0 -1
- package/build/assets/index.js +0 -298
- package/build/index.html +0 -13
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-file-content-md-value.d.ts","sourceRoot":"","sources":["../../lib/values/doc-file-content-md-value.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAEnE;;GAEG;AACH,qBAAa,qBAAqB;IACpB,QAAQ,CAAC,KAAK,EAAE,gBAAgB;IAA5C,YAAqB,KAAK,EAAE,gBAAgB,EAG3C;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,qBAAqB,CAEvC;IAED;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAY9C;IAED;;OAEG;IACH,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,GACpB,qBAAqB,CAgBvB;IAED;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,CASlD;IAED;;OAEG;IACH,eAAe,CAAC,WAAW,EAAE,qBAAqB,GAAG,qBAAqB,CAQzE;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CAW3D;IAED;;OAEG;IACH,cAAc,IAAI,MAAM,CAEvB;IAED;;OAEG;IACH,MAAM,IAAI,MAAM,CAEf;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAQjD;IAED;;OAEG;IACH,MAAM,IAAI,gBAAgB,CAEzB;CACF"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { DocMarkdownSystem } from "../doc-markdown-system";
|
|
2
|
+
import { zDocFileContentMd } from "../models";
|
|
3
|
+
import { DocFrontMatterMdValue } from "./doc-front-matter-md-value";
|
|
4
|
+
/**
|
|
5
|
+
* Markdownコンテンツ情報の値オブジェクト
|
|
6
|
+
*/
|
|
7
|
+
export class DocFileContentMdValue {
|
|
8
|
+
value;
|
|
9
|
+
constructor(value) {
|
|
10
|
+
this.value = value;
|
|
11
|
+
zDocFileContentMd.parse(value);
|
|
12
|
+
Object.freeze(this);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* コンテンツ本文(frontMatterを含まない)
|
|
16
|
+
*/
|
|
17
|
+
get body() {
|
|
18
|
+
return this.value.body;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* タイトル
|
|
22
|
+
*/
|
|
23
|
+
get title() {
|
|
24
|
+
return this.value.title;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 説明
|
|
28
|
+
*/
|
|
29
|
+
get description() {
|
|
30
|
+
return this.value.description;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* FrontMatter
|
|
34
|
+
*/
|
|
35
|
+
get frontMatter() {
|
|
36
|
+
return new DocFrontMatterMdValue(this.value.frontMatter);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* タイトルを更新
|
|
40
|
+
*/
|
|
41
|
+
withTitle(title) {
|
|
42
|
+
const fullText = this.toText();
|
|
43
|
+
const engine = new DocMarkdownSystem();
|
|
44
|
+
const updatedText = engine.updateTitle(fullText, title);
|
|
45
|
+
const updatedBody = engine.extractBody(updatedText);
|
|
46
|
+
return new DocFileContentMdValue({
|
|
47
|
+
type: "markdown-content",
|
|
48
|
+
body: updatedBody,
|
|
49
|
+
title,
|
|
50
|
+
description: this.description,
|
|
51
|
+
frontMatter: this.value.frontMatter,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 説明を更新
|
|
56
|
+
*/
|
|
57
|
+
withDescription(description, defaultTitle) {
|
|
58
|
+
const fullText = this.toText();
|
|
59
|
+
const engine = new DocMarkdownSystem();
|
|
60
|
+
const updatedText = engine.updateDescription(fullText, description, defaultTitle || this.title);
|
|
61
|
+
const updatedBody = engine.extractBody(updatedText);
|
|
62
|
+
return new DocFileContentMdValue({
|
|
63
|
+
type: "markdown-content",
|
|
64
|
+
body: updatedBody,
|
|
65
|
+
title: this.title,
|
|
66
|
+
description,
|
|
67
|
+
frontMatter: this.value.frontMatter,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* コンテンツを更新
|
|
72
|
+
*/
|
|
73
|
+
withContent(content) {
|
|
74
|
+
const engine = new DocMarkdownSystem();
|
|
75
|
+
return new DocFileContentMdValue({
|
|
76
|
+
type: "markdown-content",
|
|
77
|
+
body: content,
|
|
78
|
+
title: engine.extractTitle(content) || "",
|
|
79
|
+
description: engine.extractDescription(content) || "",
|
|
80
|
+
frontMatter: this.value.frontMatter,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* FrontMatterを更新
|
|
85
|
+
*/
|
|
86
|
+
withFrontMatter(frontMatter) {
|
|
87
|
+
return new DocFileContentMdValue({
|
|
88
|
+
type: "markdown-content",
|
|
89
|
+
body: this.body,
|
|
90
|
+
title: this.title,
|
|
91
|
+
description: this.description,
|
|
92
|
+
frontMatter: frontMatter.value,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Markdownテキストから生成
|
|
97
|
+
*/
|
|
98
|
+
static fromMarkdown(markdown) {
|
|
99
|
+
const engine = new DocMarkdownSystem();
|
|
100
|
+
const frontMatter = DocFrontMatterMdValue.from(markdown);
|
|
101
|
+
return new DocFileContentMdValue({
|
|
102
|
+
type: "markdown-content",
|
|
103
|
+
body: engine.extractBody(markdown),
|
|
104
|
+
title: engine.extractTitle(markdown) || "",
|
|
105
|
+
description: engine.extractDescription(markdown) || "",
|
|
106
|
+
frontMatter: frontMatter.value,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* 完全なMarkdownテキストを生成
|
|
111
|
+
*/
|
|
112
|
+
toMarkdownText() {
|
|
113
|
+
return DocMarkdownSystem.from(this.title, this.description, this.body);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* FrontMatterとbodyを結合した完全なテキストを生成
|
|
117
|
+
*/
|
|
118
|
+
toText() {
|
|
119
|
+
return `---\n${this.frontMatter.toYaml()}\n---\n\n${this.body}`;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* 空のコンテンツを生成
|
|
123
|
+
*/
|
|
124
|
+
static empty(title) {
|
|
125
|
+
return new DocFileContentMdValue({
|
|
126
|
+
type: "markdown-content",
|
|
127
|
+
body: `# ${title}`,
|
|
128
|
+
title,
|
|
129
|
+
description: "",
|
|
130
|
+
frontMatter: {},
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* JSON形式で出力
|
|
135
|
+
*/
|
|
136
|
+
toJson() {
|
|
137
|
+
return this.value;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-file-content-md-value.test.d.ts","sourceRoot":"","sources":["../../lib/values/doc-file-content-md-value.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { expect, test } from "bun:test";
|
|
2
|
+
import { DocFileContentMdValue } from "./doc-file-content-md-value";
|
|
3
|
+
import { DocFrontMatterMdValue } from "./doc-front-matter-md-value";
|
|
4
|
+
test("DocFileContentMdValue - 基本的な作成とプロパティアクセス", () => {
|
|
5
|
+
const value = new DocFileContentMdValue({
|
|
6
|
+
type: "markdown-content",
|
|
7
|
+
body: "# タイトル\n\n説明文\n\n本文",
|
|
8
|
+
title: "タイトル",
|
|
9
|
+
description: "説明文",
|
|
10
|
+
frontMatter: {
|
|
11
|
+
title: "メタタイトル",
|
|
12
|
+
description: "メタ説明",
|
|
13
|
+
tags: ["tag1", "tag2"],
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
expect(value.body).toBe("# タイトル\n\n説明文\n\n本文");
|
|
17
|
+
expect(value.title).toBe("タイトル");
|
|
18
|
+
expect(value.description).toBe("説明文");
|
|
19
|
+
});
|
|
20
|
+
test("DocFileContentMdValue - frontMatter getterが値オブジェクトを返す", () => {
|
|
21
|
+
const value = new DocFileContentMdValue({
|
|
22
|
+
type: "markdown-content",
|
|
23
|
+
body: "",
|
|
24
|
+
title: "",
|
|
25
|
+
description: "",
|
|
26
|
+
frontMatter: {
|
|
27
|
+
author: "作者名",
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
const frontMatter = value.frontMatter;
|
|
31
|
+
expect(frontMatter).toBeInstanceOf(DocFrontMatterMdValue);
|
|
32
|
+
expect(frontMatter.value.author).toBe("作者名");
|
|
33
|
+
});
|
|
34
|
+
test("DocFileContentMdValue - withTitleで新しいインスタンスを作成", () => {
|
|
35
|
+
const value = new DocFileContentMdValue({
|
|
36
|
+
type: "markdown-content",
|
|
37
|
+
body: "# 古いタイトル\n\n説明文",
|
|
38
|
+
title: "古いタイトル",
|
|
39
|
+
description: "説明文",
|
|
40
|
+
frontMatter: {},
|
|
41
|
+
});
|
|
42
|
+
const newValue = value.withTitle("新しいタイトル");
|
|
43
|
+
expect(newValue).not.toBe(value); // 新しいインスタンス
|
|
44
|
+
expect(newValue.title).toBe("新しいタイトル");
|
|
45
|
+
expect(newValue.body).toContain("# 新しいタイトル");
|
|
46
|
+
expect(value.title).toBe("古いタイトル"); // 元は変更されない
|
|
47
|
+
});
|
|
48
|
+
test("DocFileContentMdValue - withDescriptionで新しいインスタンスを作成", () => {
|
|
49
|
+
const value = new DocFileContentMdValue({
|
|
50
|
+
type: "markdown-content",
|
|
51
|
+
body: "# タイトル\n\n古い説明",
|
|
52
|
+
title: "タイトル",
|
|
53
|
+
description: "古い説明",
|
|
54
|
+
frontMatter: {},
|
|
55
|
+
});
|
|
56
|
+
const newValue = value.withDescription("新しい説明");
|
|
57
|
+
expect(newValue).not.toBe(value);
|
|
58
|
+
expect(newValue.description).toBe("新しい説明");
|
|
59
|
+
expect(newValue.body).toContain("新しい説明");
|
|
60
|
+
});
|
|
61
|
+
test("DocFileContentMdValue - withContentで新しいインスタンスを作成", () => {
|
|
62
|
+
const value = new DocFileContentMdValue({
|
|
63
|
+
type: "markdown-content",
|
|
64
|
+
body: "古い内容",
|
|
65
|
+
title: "タイトル",
|
|
66
|
+
description: "説明",
|
|
67
|
+
frontMatter: {},
|
|
68
|
+
});
|
|
69
|
+
const newValue = value.withContent("新しい内容");
|
|
70
|
+
expect(newValue).not.toBe(value);
|
|
71
|
+
expect(newValue.body).toBe("新しい内容");
|
|
72
|
+
// タイトルは新しい内容から解析される
|
|
73
|
+
expect(newValue.title).toBe("");
|
|
74
|
+
expect(newValue.description).toBe("");
|
|
75
|
+
});
|
|
76
|
+
test("DocFileContentMdValue - withFrontMatterで新しいインスタンスを作成", () => {
|
|
77
|
+
const value = new DocFileContentMdValue({
|
|
78
|
+
type: "markdown-content",
|
|
79
|
+
body: "# タイトル",
|
|
80
|
+
title: "タイトル",
|
|
81
|
+
description: "",
|
|
82
|
+
frontMatter: {
|
|
83
|
+
tags: ["old"],
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
const newFrontMatter = new DocFrontMatterMdValue({
|
|
87
|
+
tags: ["new", "tags"],
|
|
88
|
+
author: "新しい作者",
|
|
89
|
+
});
|
|
90
|
+
const newValue = value.withFrontMatter(newFrontMatter);
|
|
91
|
+
expect(newValue).not.toBe(value);
|
|
92
|
+
expect(newValue.frontMatter.value.tags).toEqual(["new", "tags"]);
|
|
93
|
+
expect(newValue.frontMatter.value.author).toBe("新しい作者");
|
|
94
|
+
expect(value.frontMatter.value.tags).toEqual(["old"]); // 元は変更されない
|
|
95
|
+
});
|
|
96
|
+
test("DocFileContentMdValue - fromMarkdownでMarkdownから生成", () => {
|
|
97
|
+
const markdown = `---
|
|
98
|
+
title: "メタタイトル"
|
|
99
|
+
description: "メタ説明"
|
|
100
|
+
tags: ["tag1", "tag2"]
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
# ドキュメントタイトル
|
|
104
|
+
|
|
105
|
+
これは説明文です。
|
|
106
|
+
|
|
107
|
+
本文の内容`;
|
|
108
|
+
const value = DocFileContentMdValue.fromMarkdown(markdown);
|
|
109
|
+
expect(value.title).toBe("ドキュメントタイトル");
|
|
110
|
+
expect(value.description).toBe("これは説明文です。");
|
|
111
|
+
expect(value.body).toContain("# ドキュメントタイトル");
|
|
112
|
+
expect(value.frontMatter.value.tags).toEqual(["tag1", "tag2"]);
|
|
113
|
+
});
|
|
114
|
+
test("DocFileContentMdValue - emptyでデフォルトコンテンツを生成", () => {
|
|
115
|
+
const value = DocFileContentMdValue.empty("テストファイル");
|
|
116
|
+
expect(value.title).toBe("テストファイル");
|
|
117
|
+
expect(value.frontMatter.value).toEqual({});
|
|
118
|
+
expect(value.body).toBe("# テストファイル");
|
|
119
|
+
});
|
|
120
|
+
test("DocFileContentMdValue - toTextでFrontMatter付きテキストを生成", () => {
|
|
121
|
+
const value = new DocFileContentMdValue({
|
|
122
|
+
type: "markdown-content",
|
|
123
|
+
body: "# タイトル\n\n本文",
|
|
124
|
+
title: "タイトル",
|
|
125
|
+
description: "",
|
|
126
|
+
frontMatter: {
|
|
127
|
+
date: "2024-01-01",
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
const text = value.toText();
|
|
131
|
+
expect(text).toContain("---");
|
|
132
|
+
expect(text).toContain("date: ");
|
|
133
|
+
expect(text).toContain("# タイトル");
|
|
134
|
+
expect(text).toContain("本文");
|
|
135
|
+
});
|
|
136
|
+
test("DocFileContentMdValue - toMarkdownTextでbodyのみのテキストを生成", () => {
|
|
137
|
+
const value = new DocFileContentMdValue({
|
|
138
|
+
type: "markdown-content",
|
|
139
|
+
body: "既存の本文",
|
|
140
|
+
title: "タイトル",
|
|
141
|
+
description: "説明",
|
|
142
|
+
frontMatter: {},
|
|
143
|
+
});
|
|
144
|
+
const text = value.toMarkdownText();
|
|
145
|
+
expect(text).toBe("# タイトル\n\n説明\n\n既存の本文");
|
|
146
|
+
expect(text).not.toContain("---"); // FrontMatterは含まない
|
|
147
|
+
});
|
|
148
|
+
test("DocFileContentMdValue - toJsonで元のデータ構造を返す", () => {
|
|
149
|
+
const data = {
|
|
150
|
+
type: "markdown-content",
|
|
151
|
+
body: "# タイトル",
|
|
152
|
+
title: "タイトル",
|
|
153
|
+
description: "説明",
|
|
154
|
+
frontMatter: {
|
|
155
|
+
tags: ["tag1"],
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
const value = new DocFileContentMdValue(data);
|
|
159
|
+
expect(value.toJson()).toEqual(data);
|
|
160
|
+
});
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { DocPathSystem } from "../doc-path-system";
|
|
2
|
+
import type { DocFilePath } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* ファイルパス情報の値オブジェクト
|
|
5
|
+
*/
|
|
6
|
+
export declare class DocFilePathValue {
|
|
7
|
+
readonly value: DocFilePath;
|
|
8
|
+
private readonly pathSystem;
|
|
9
|
+
constructor(value: DocFilePath, pathSystem: DocPathSystem);
|
|
10
|
+
/**
|
|
11
|
+
* ファイル名(拡張子なし)
|
|
12
|
+
*/
|
|
13
|
+
get name(): string;
|
|
14
|
+
/**
|
|
15
|
+
* ファイルパス(相対パス)
|
|
16
|
+
*/
|
|
17
|
+
get path(): string;
|
|
18
|
+
/**
|
|
19
|
+
* ファイル名(拡張子付き)
|
|
20
|
+
*/
|
|
21
|
+
get nameWithExtension(): string;
|
|
22
|
+
/**
|
|
23
|
+
* フルパス(絶対パス)
|
|
24
|
+
*/
|
|
25
|
+
get fullPath(): string;
|
|
26
|
+
/**
|
|
27
|
+
* ディレクトリパス
|
|
28
|
+
*/
|
|
29
|
+
get directoryPath(): string;
|
|
30
|
+
/**
|
|
31
|
+
* 拡張子
|
|
32
|
+
*/
|
|
33
|
+
get extension(): string;
|
|
34
|
+
/**
|
|
35
|
+
* アーカイブされているかどうか
|
|
36
|
+
*/
|
|
37
|
+
get isArchived(): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* 相対パスからインスタンスを生成(DI対応)
|
|
40
|
+
*/
|
|
41
|
+
static fromPathWithSystem(filePath: string, pathSystem: DocPathSystem, basePath?: string): DocFilePathValue;
|
|
42
|
+
/**
|
|
43
|
+
* JSON形式で出力
|
|
44
|
+
*/
|
|
45
|
+
toJson(): DocFilePath;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=doc-file-path-value.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-file-path-value.d.ts","sourceRoot":"","sources":["../../lib/values/doc-file-path-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C;;GAEG;AACH,qBAAa,gBAAgB;IAIzB,QAAQ,CAAC,KAAK,EAAE,WAAW;IAH7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAE1C,YACW,KAAK,EAAE,WAAW,EAC3B,UAAU,EAAE,aAAa,EAK1B;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,MAAM,CAAC,kBAAkB,CACvB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,aAAa,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,gBAAgB,CAuBlB;IAED;;OAEG;IACH,MAAM,IAAI,WAAW,CAEpB;CACF"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { zDocFilePath } from "../models";
|
|
2
|
+
/**
|
|
3
|
+
* ファイルパス情報の値オブジェクト
|
|
4
|
+
*/
|
|
5
|
+
export class DocFilePathValue {
|
|
6
|
+
value;
|
|
7
|
+
pathSystem;
|
|
8
|
+
constructor(value, pathSystem) {
|
|
9
|
+
this.value = value;
|
|
10
|
+
zDocFilePath.parse(value);
|
|
11
|
+
this.pathSystem = pathSystem;
|
|
12
|
+
Object.freeze(this);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* ファイル名(拡張子なし)
|
|
16
|
+
*/
|
|
17
|
+
get name() {
|
|
18
|
+
return this.value.name;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* ファイルパス(相対パス)
|
|
22
|
+
*/
|
|
23
|
+
get path() {
|
|
24
|
+
return this.value.path;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* ファイル名(拡張子付き)
|
|
28
|
+
*/
|
|
29
|
+
get nameWithExtension() {
|
|
30
|
+
return this.value.nameWithExtension;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* フルパス(絶対パス)
|
|
34
|
+
*/
|
|
35
|
+
get fullPath() {
|
|
36
|
+
return this.value.fullPath;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* ディレクトリパス
|
|
40
|
+
*/
|
|
41
|
+
get directoryPath() {
|
|
42
|
+
return this.pathSystem.dirname(this.path);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* 拡張子
|
|
46
|
+
*/
|
|
47
|
+
get extension() {
|
|
48
|
+
return this.pathSystem.extname(this.nameWithExtension);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* アーカイブされているかどうか
|
|
52
|
+
*/
|
|
53
|
+
get isArchived() {
|
|
54
|
+
return this.path.includes("/.archive/");
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* 相対パスからインスタンスを生成(DI対応)
|
|
58
|
+
*/
|
|
59
|
+
static fromPathWithSystem(filePath, pathSystem, basePath) {
|
|
60
|
+
const nameWithExtension = pathSystem.basename(filePath);
|
|
61
|
+
let name = pathSystem.basename(filePath, pathSystem.extname(filePath));
|
|
62
|
+
// index.mdの場合は親ディレクトリ名を使用
|
|
63
|
+
if (name === "index" && filePath.includes("/")) {
|
|
64
|
+
const parentDir = pathSystem.dirname(filePath);
|
|
65
|
+
name = pathSystem.basename(parentDir);
|
|
66
|
+
}
|
|
67
|
+
const fullPath = basePath
|
|
68
|
+
? pathSystem.join(basePath, filePath)
|
|
69
|
+
: pathSystem.resolve(filePath);
|
|
70
|
+
return new DocFilePathValue({
|
|
71
|
+
name,
|
|
72
|
+
path: filePath,
|
|
73
|
+
fullPath,
|
|
74
|
+
nameWithExtension,
|
|
75
|
+
}, pathSystem);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* JSON形式で出力
|
|
79
|
+
*/
|
|
80
|
+
toJson() {
|
|
81
|
+
return this.value;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-file-path-value.test.d.ts","sourceRoot":"","sources":["../../lib/values/doc-file-path-value.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { expect, test } from "bun:test";
|
|
2
|
+
import { DocPathSystem } from "../doc-path-system";
|
|
3
|
+
import { DocFilePathValue } from "./doc-file-path-value";
|
|
4
|
+
test("DocFilePathValue - 基本的な作成とプロパティアクセス", () => {
|
|
5
|
+
const pathSystem = new DocPathSystem();
|
|
6
|
+
const value = new DocFilePathValue({
|
|
7
|
+
path: "docs/example.md",
|
|
8
|
+
name: "example",
|
|
9
|
+
fullPath: "/Users/test/docs/example.md",
|
|
10
|
+
nameWithExtension: "example.md",
|
|
11
|
+
}, pathSystem);
|
|
12
|
+
expect(value.path).toBe("docs/example.md");
|
|
13
|
+
expect(value.name).toBe("example");
|
|
14
|
+
expect(value.fullPath).toBe("/Users/test/docs/example.md");
|
|
15
|
+
expect(value.nameWithExtension).toBe("example.md");
|
|
16
|
+
});
|
|
17
|
+
test("DocFilePathValue - extension getterが拡張子を返す", () => {
|
|
18
|
+
const pathSystem = new DocPathSystem();
|
|
19
|
+
const value = new DocFilePathValue({
|
|
20
|
+
path: "docs/test.md",
|
|
21
|
+
name: "test",
|
|
22
|
+
fullPath: "/Users/test/docs/test.md",
|
|
23
|
+
nameWithExtension: "test.md",
|
|
24
|
+
}, pathSystem);
|
|
25
|
+
expect(value.extension).toBe(".md");
|
|
26
|
+
});
|
|
27
|
+
test("DocFilePathValue - 拡張子のないファイル", () => {
|
|
28
|
+
const pathSystem = new DocPathSystem();
|
|
29
|
+
const value = new DocFilePathValue({
|
|
30
|
+
path: "docs/README",
|
|
31
|
+
name: "README",
|
|
32
|
+
fullPath: "/Users/test/docs/README",
|
|
33
|
+
nameWithExtension: "README",
|
|
34
|
+
}, pathSystem);
|
|
35
|
+
expect(value.extension).toBe("");
|
|
36
|
+
});
|
|
37
|
+
test("DocFilePathValue - fromPathWithSystemで相対パスから生成", () => {
|
|
38
|
+
const pathSystem = new DocPathSystem();
|
|
39
|
+
const value = DocFilePathValue.fromPathWithSystem("docs/test.md", pathSystem, "/Users/project");
|
|
40
|
+
expect(value.path).toBe("docs/test.md");
|
|
41
|
+
expect(value.name).toBe("test");
|
|
42
|
+
expect(value.fullPath).toBe("/Users/project/docs/test.md");
|
|
43
|
+
expect(value.nameWithExtension).toBe("test.md");
|
|
44
|
+
});
|
|
45
|
+
test("DocFilePathValue - fromPathWithSystemでindex.mdの場合", () => {
|
|
46
|
+
const pathSystem = new DocPathSystem();
|
|
47
|
+
const value = DocFilePathValue.fromPathWithSystem("docs/features/index.md", pathSystem, "/Users/project");
|
|
48
|
+
expect(value.path).toBe("docs/features/index.md");
|
|
49
|
+
expect(value.name).toBe("features");
|
|
50
|
+
expect(value.fullPath).toBe("/Users/project/docs/features/index.md");
|
|
51
|
+
expect(value.nameWithExtension).toBe("index.md");
|
|
52
|
+
});
|
|
53
|
+
test("DocFilePathValue - fromPathWithSystemでルートのindex.mdの場合", () => {
|
|
54
|
+
const pathSystem = new DocPathSystem();
|
|
55
|
+
const value = DocFilePathValue.fromPathWithSystem("index.md", pathSystem, "/Users/project");
|
|
56
|
+
expect(value.path).toBe("index.md");
|
|
57
|
+
expect(value.name).toBe("index");
|
|
58
|
+
expect(value.fullPath).toBe("/Users/project/index.md");
|
|
59
|
+
expect(value.nameWithExtension).toBe("index.md");
|
|
60
|
+
});
|
|
61
|
+
test("DocFilePathValue - toJsonで元のデータ構造を返す", () => {
|
|
62
|
+
const pathSystem = new DocPathSystem();
|
|
63
|
+
const data = {
|
|
64
|
+
path: "docs/test.md",
|
|
65
|
+
name: "test",
|
|
66
|
+
fullPath: "/Users/test/docs/test.md",
|
|
67
|
+
nameWithExtension: "test.md",
|
|
68
|
+
};
|
|
69
|
+
const value = new DocFilePathValue(data, pathSystem);
|
|
70
|
+
expect(value.toJson()).toEqual(data);
|
|
71
|
+
});
|
|
72
|
+
test("DocFilePathValue - 不変性の確認", () => {
|
|
73
|
+
const pathSystem = new DocPathSystem();
|
|
74
|
+
const value = new DocFilePathValue({
|
|
75
|
+
path: "docs/test.md",
|
|
76
|
+
name: "test",
|
|
77
|
+
fullPath: "/Users/test/docs/test.md",
|
|
78
|
+
nameWithExtension: "test.md",
|
|
79
|
+
}, pathSystem);
|
|
80
|
+
expect(() => {
|
|
81
|
+
// @ts-expect-error - 不変性のテスト
|
|
82
|
+
value.value = {};
|
|
83
|
+
}).toThrow();
|
|
84
|
+
});
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { DocFileIndexFrontMatter } from "../types";
|
|
2
|
+
import { DocSchemaValue } from "../values/doc-schema-value";
|
|
3
|
+
/**
|
|
4
|
+
* FrontMatter
|
|
5
|
+
*/
|
|
6
|
+
export declare class DocFrontMatterIndexValue {
|
|
7
|
+
readonly value: DocFileIndexFrontMatter;
|
|
8
|
+
constructor(value: DocFileIndexFrontMatter);
|
|
9
|
+
/**
|
|
10
|
+
* アイコンを取得
|
|
11
|
+
*/
|
|
12
|
+
get icon(): string | null;
|
|
13
|
+
/**
|
|
14
|
+
* スキーマを取得
|
|
15
|
+
*/
|
|
16
|
+
get schema(): DocSchemaValue;
|
|
17
|
+
/**
|
|
18
|
+
* iconフィールドを更新
|
|
19
|
+
*/
|
|
20
|
+
withIcon(value: unknown): DocFrontMatterIndexValue;
|
|
21
|
+
/**
|
|
22
|
+
* schemaフィールドを更新
|
|
23
|
+
*/
|
|
24
|
+
withSchema(value: unknown): DocFrontMatterIndexValue;
|
|
25
|
+
/**
|
|
26
|
+
* JSON形式で出力
|
|
27
|
+
*/
|
|
28
|
+
toJson(): DocFileIndexFrontMatter;
|
|
29
|
+
/**
|
|
30
|
+
* YAML形式で出力
|
|
31
|
+
*/
|
|
32
|
+
toYaml(): string;
|
|
33
|
+
/**
|
|
34
|
+
* スキーマ全体を正規化
|
|
35
|
+
*/
|
|
36
|
+
private static createSchema;
|
|
37
|
+
/**
|
|
38
|
+
* スキーマフィールドを正規化
|
|
39
|
+
*/
|
|
40
|
+
private static createSchemaField;
|
|
41
|
+
/**
|
|
42
|
+
* Markdownテキストから生成(不完全なデータも処理可能)
|
|
43
|
+
*/
|
|
44
|
+
static from(markdownText: string): DocFrontMatterIndexValue;
|
|
45
|
+
/**
|
|
46
|
+
* データから直接生成(不完全なデータも処理可能)
|
|
47
|
+
*/
|
|
48
|
+
static fromRecord(record: Record<string, unknown>): DocFrontMatterIndexValue;
|
|
49
|
+
/**
|
|
50
|
+
* 空のFrontMatterを生成
|
|
51
|
+
*/
|
|
52
|
+
static empty(): DocFrontMatterIndexValue;
|
|
53
|
+
/**
|
|
54
|
+
* アイコンを抽出
|
|
55
|
+
*/
|
|
56
|
+
private static extractIcon;
|
|
57
|
+
/**
|
|
58
|
+
* スキーマを抽出
|
|
59
|
+
*/
|
|
60
|
+
private static extractSchema;
|
|
61
|
+
/**
|
|
62
|
+
* デフォルトのアイコンを取得
|
|
63
|
+
*/
|
|
64
|
+
private static getDefaultIcon;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=doc-front-matter-index-value.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-front-matter-index-value.d.ts","sourceRoot":"","sources":["../../lib/values/doc-front-matter-index-value.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,uBAAuB,EAGxB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAG3D;;GAEG;AACH,qBAAa,wBAAwB;IACvB,QAAQ,CAAC,KAAK,EAAE,uBAAuB;IAAnD,YAAqB,KAAK,EAAE,uBAAuB,EAGlD;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,GAAG,IAAI,CAExB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,cAAc,CAE3B;IAED;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,wBAAwB,CAWjD;IAED;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,wBAAwB,CAWnD;IAED;;OAEG;IACH,MAAM,IAAI,uBAAuB,CAEhC;IAED;;OAEG;IACH,MAAM,IAAI,MAAM,CAOf;IAED;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAoB3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAahC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,wBAAwB,CAoB1D;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,wBAAwB,CAqB3E;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,wBAAwB,CAMvC;IAED;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAQ1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAkB5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;CAG9B"}
|