diff --git a/esbuild.config.mjs b/esbuild.config.mjs index b65bb15..a37e90e 100644 --- a/esbuild.config.mjs +++ b/esbuild.config.mjs @@ -41,6 +41,7 @@ const ctx = await esbuild.context({ "@codemirror/view", ...builtins, ], + platform: "node", format: "cjs", target: "es2016", logLevel: "info", diff --git a/package.json b/package.json index 1110e75..ff6b15a 100644 --- a/package.json +++ b/package.json @@ -1,34 +1,35 @@ { - "name": "share-to-notionnext", - "version": "2.3.3", - "type": "module", - "description": "Shares obsidian md file to notion with notion api for NotionNext web deploy, originally created by EasyChris/obsidian-to-notion.", - "main": "main.js", - "scripts": { - "dev": "node esbuild.config.mjs", - "build": "tsc -noEmit -skipLibCheck && node esbuild.config.mjs production", - "version": "node version-bump.mjs && git add manifest.json versions.json" - }, - "keywords": [], - "author": "", - "license": "GNU GPLv3", - "devDependencies": { - "@types/node": "^20.5.7", - "@types/yaml-front-matter": "^4.1.3", - "@typescript-eslint/eslint-plugin": "^6.16.0", - "@typescript-eslint/parser": "^6.16.0", - "builtin-modules": "^3.3.0", - "esbuild": "0.19.5", - "obsidian": "latest", - "tslib": "2.6.2", - "typescript": "5.2.2" - }, - "dependencies": { - "@tryfabric/martian": "^1.2.4", - "https-proxy-agent": "^7.0.2", - "process": "^0.11.10", - "remark-math": "^6.0.0", - "yaml": "^2.3.4", - "yaml-front-matter": "^4.1.1" - } -} \ No newline at end of file + "name": "share-to-notionnext", + "version": "2.3.3", + "type": "module", + "description": "Shares obsidian md file to notion with notion api for NotionNext web deploy, originally created by EasyChris/obsidian-to-notion.", + "main": "main.js", + "scripts": { + "dev": "node esbuild.config.mjs", + "build": "tsc -noEmit -skipLibCheck && node esbuild.config.mjs production", + "version": "node version-bump.mjs && git add manifest.json versions.json" + }, + "keywords": [], + "author": "", + "license": "GNU GPLv3", + "devDependencies": { + "@types/node": "^20.5.7", + "@types/yaml-front-matter": "^4.1.3", + "@typescript-eslint/eslint-plugin": "^6.16.0", + "@typescript-eslint/parser": "^6.16.0", + "builtin-modules": "^3.3.0", + "esbuild": "0.19.5", + "obsidian": "^1.6.6", + "tslib": "2.6.2", + "typescript": "5.2.2" + }, + "dependencies": { + "@tryfabric/martian": "^1.2.4", + "https-proxy-agent": "^7.0.2", + "node-fetch": "^3.3.2", + "process": "^0.11.10", + "remark-math": "^6.0.0", + "yaml": "^2.3.4", + "yaml-front-matter": "^4.1.1" + } +} diff --git a/src/upload/upoload_custom/Upload2NotionCustom.ts b/src/upload/upoload_custom/Upload2NotionCustom.ts index 2d063e5..4e22482 100644 --- a/src/upload/upoload_custom/Upload2NotionCustom.ts +++ b/src/upload/upoload_custom/Upload2NotionCustom.ts @@ -1,12 +1,13 @@ import {App, Notice, requestUrl, TFile} from "obsidian"; -import { markdownToBlocks } from "@tryfabric/martian"; +import {markdownToBlocks} from "@tryfabric/martian"; import * as yamlFrontMatter from "yaml-front-matter"; // import * as yaml from "yaml" import MyPlugin from "src/main"; -import { DatabaseDetails, PluginSettings } from "../../ui/settingTabs"; -import { updateYamlInfo } from "../updateYaml"; -import { UploadBaseCustom } from "./BaseUpload2NotionCustom"; -import axios from 'axios'; +import {DatabaseDetails, PluginSettings} from "../../ui/settingTabs"; +import {updateYamlInfo} from "../updateYaml"; +import {UploadBaseCustom} from "./BaseUpload2NotionCustom"; +import fetch from 'node-fetch'; + export class Upload2NotionCustom extends UploadBaseCustom { settings: PluginSettings; @@ -27,7 +28,7 @@ export class Upload2NotionCustom extends UploadBaseCustom { ) { await this.deletePage(notionID); - const { databaseID } = this.dbDetails; + const {databaseID} = this.dbDetails; const databaseCover = await this.getDataBase( databaseID @@ -74,20 +75,23 @@ export class Upload2NotionCustom extends UploadBaseCustom { console.log(bodyString) - try { - await fetch("https://api.notion.com/v1/pages", { - method: "POST", - headers: { - "Content-Type": "application/json", - "Authorization": "Bearer " + notionAPI, - "Notion-Version": "2022-06-28", - }, - body: JSON.stringify(bodyString), - }) - } catch (e) { - console.log(JSON.stringify(e)) - } + const response = await fetch("https://api.notion.com/v1/pages", { + method: "POST", + headers: { + "Content-Type": "application/json", + "Authorization": "Bearer " + notionAPI, + "Notion-Version": "2022-06-28", + }, + body: JSON.stringify(bodyString), + }); + if (!response.ok) { + const data: any = await response.json(); + new Notice(`Error ${data.status}: ${data.code} \n Check the console for more information \n opt+cmd+i/ctrl+shift+i`, 5000); + console.log(data.message); + } else { + return response; + } } async syncMarkdownToNotionCustom( @@ -109,7 +113,7 @@ export class Upload2NotionCustom extends UploadBaseCustom { const file2Block = markdownToBlocks(__content, options); const frontmasster = app.metadataCache.getFileCache(nowFile)?.frontmatter; - const { abName } = this.dbDetails + const {abName} = this.dbDetails const notionIDKey = `NotionID-${abName}`; const notionID = frontmasster ? frontmasster[notionIDKey] : null; @@ -208,7 +212,7 @@ export class Upload2NotionCustom extends UploadBaseCustom { }; case "multi_select": return { - multi_select: Array.isArray(value) ? value.map(item => ({ name: item })) : [{ name: value }], + multi_select: Array.isArray(value) ? value.map(item => ({name: item})) : [{name: value}], }; } } @@ -222,11 +226,11 @@ export class Upload2NotionCustom extends UploadBaseCustom { const properties: { [key: string]: any } = {}; // Only include custom properties that have values - customProperties.forEach(({ customName, customType }) => { - if (customValues[customName] !== undefined) { - properties[customName] = this.buildPropertyObject(customName, customType, customValues); + customProperties.forEach(({customName, customType}) => { + if (customValues[customName] !== undefined) { + properties[customName] = this.buildPropertyObject(customName, customType, customValues); + } } - } ); // console.log(properties)