imdone-core 2.0.15 → 2.0.17

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/lib/project.js CHANGED
@@ -528,7 +528,7 @@ export class WorkerProject extends Project {
528
528
 
529
529
  const { isFile, isDirectory } = await fileGateway.preparePathForWriting(path)
530
530
 
531
- if (!template) template = this.getNewCardTemplate(path, isFile)
531
+ if (!template) template = await this.getNewCardTemplate(path, isFile)
532
532
 
533
533
  const boardData = await this.pluginManager.getBoardProperties();
534
534
  template = format(template, boardData)
@@ -576,26 +576,52 @@ export class WorkerProject extends Project {
576
576
  }
577
577
 
578
578
  addMetaToContent(meta, content) {
579
- if (meta && meta.length > 0) {
580
- let metaContent = ''
581
- meta.forEach(({ key, value }) => {
582
- if (!/^['"]/.test(value) && /\s/.test(value)) value = `"${value}"`
583
- const metaData = `${key}${this.repo.config.getMetaSep()}${value}`
584
- if (content.includes(metaData)) return
585
- const existingMetadata = Task.parseMetaData(this.config, content)[key]
586
- if (existingMetadata) {
587
- content = Task.removeMetaData({
588
- config: this.config,
589
- content,
590
- key,
591
- value: existingMetadata[0],
592
- })
579
+ if (!meta) return content;
580
+
581
+ // Handle both array format and object format
582
+ let metaArray = [];
583
+
584
+ if (Array.isArray(meta)) {
585
+ // Current format: [{key, value}, ...]
586
+ metaArray = meta;
587
+ } else if (typeof meta === 'object') {
588
+ // New format: {key1: [values], key2: [values], ...}
589
+ metaArray = [];
590
+ Object.entries(meta).forEach(([key, values]) => {
591
+ if (Array.isArray(values)) {
592
+ values.forEach(value => {
593
+ metaArray.push({ key, value });
594
+ });
595
+ } else {
596
+ // Single value case
597
+ metaArray.push({ key, value: values });
593
598
  }
594
- const spaceOrNewLine = this.config.isMetaNewLine() ? '\n' : ' '
595
- metaContent = `${metaContent}${spaceOrNewLine}${metaData}`
596
- })
597
- content = Task.addToLastCommentInContent(content, metaContent.trim(), this.config.isMetaNewLine())
599
+ });
598
600
  }
601
+
602
+ if (metaArray.length === 0) return content;
603
+
604
+ let metaContent = '';
605
+ metaArray.forEach(({ key, value }) => {
606
+ if (!/^['"]/.test(value) && /\s/.test(value)) value = `"${value}"`;
607
+ const metaData = `${key}${this.config.getMetaSep()}${value}`;
608
+ if (content.includes(metaData)) return;
609
+
610
+ const existingMetadata = Task.parseMetaData(this.config, content)[key];
611
+ if (existingMetadata) {
612
+ content = Task.removeMetaData({
613
+ config: this.config,
614
+ content,
615
+ key,
616
+ value: existingMetadata[0],
617
+ });
618
+ }
619
+
620
+ const spaceOrNewLine = this.config.isMetaNewLine() ? '\n' : ' ';
621
+ metaContent = `${metaContent}${spaceOrNewLine}${metaData}`;
622
+ });
623
+
624
+ content = Task.addToLastCommentInContent(content, metaContent.trim(), this.config.isMetaNewLine())
599
625
  return content
600
626
  }
601
627
 
@@ -638,8 +664,8 @@ export class WorkerProject extends Project {
638
664
  this.emit('project.filter', { filter })
639
665
  }
640
666
 
641
- getNewCardTemplate(file, isFile) {
642
- const frontMatter = this.getNewCardFileFrontMatter(file, isFile)
667
+ async getNewCardTemplate(file, isFile) {
668
+ const frontMatter = await this.getNewCardFileFrontMatter(file, isFile)
643
669
  const card = newCard(
644
670
  {
645
671
  frontMatter,
@@ -654,10 +680,10 @@ export class WorkerProject extends Project {
654
680
  return card.formatContent(frontMatter.template).content
655
681
  }
656
682
 
657
- getNewCardFileFrontMatter(file, isFile) {
683
+ async getNewCardFileFrontMatter(file, isFile) {
658
684
  let fileContent = ''
659
685
  if (file && isFile) {
660
- fileContent = fileGateway.readFileSync(file, 'utf8')
686
+ fileContent = await fileGateway.readFile(file, 'utf8')
661
687
  } else if (JOURNAL_TYPE.NEW_FILE === this.config.journlType) {
662
688
  fileContent = this.config.journalTemplate
663
689
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "imdone-core",
3
- "version": "2.0.15",
3
+ "version": "2.0.17",
4
4
  "description": "imdone-core",
5
5
  "repository": {
6
6
  "type": "git",
@@ -127,12 +127,12 @@ export class WorkerProject {
127
127
  deleteTask(task: any): Promise<void>;
128
128
  deleteTasks(tasks: any): Promise<void>;
129
129
  setFilter(filter: any): void;
130
- getNewCardTemplate(file: any, isFile: any): any;
131
- getNewCardFileFrontMatter(file: any, isFile: any): {
130
+ getNewCardTemplate(file: any, isFile: any): Promise<any>;
131
+ getNewCardFileFrontMatter(file: any, isFile: any): Promise<{
132
132
  props: any;
133
133
  computed: any;
134
134
  template: any;
135
- };
135
+ }>;
136
136
  getNewCardsFile(opts?: {
137
137
  relPath: boolean;
138
138
  }): string;
package/.env DELETED
@@ -1,6 +0,0 @@
1
-
2
- # Jira environment variables
3
-
4
- # JIRA_AUTH_BASIC=true # Set to false to use Bearer token auth.
5
- # JIRA_USERNAME="<your jira username>" # e.g. your email address. Not needed if using Bearer token auth.
6
- # JIRA_TOKEN="<your personal access token>"