From 236b92dc5a633240123635331eaaa9341d3a8717 Mon Sep 17 00:00:00 2001 From: Michael Naumov Date: Wed, 8 Apr 2026 08:01:22 -0600 Subject: [PATCH] chore: update template --- .husky/pre-commit | 1 + .markdownlint-cli2.mjs | 3 +-- .markdownlint-cli2.mts | 7 ------ .nano-staged.mjs | 5 ++++ commitlint.config.ts | 7 +----- eslint.config.mts | 9 +------ package-lock.json | 15 ++++++++++++ package.json | 37 ++++++++++++++++------------- scripts/build-clean.ts | 4 ++++ scripts/build-compile-typescript.ts | 4 ++++ scripts/build-compile.ts | 4 ++++ scripts/build.ts | 4 ++++ scripts/commit.ts | 3 +++ scripts/commitlint-config.ts | 3 +++ scripts/dev.ts | 4 ++++ scripts/eslint-config.ts | 3 +++ scripts/format-check.ts | 7 ++++++ scripts/format.ts | 7 ++++++ scripts/lint-fix.ts | 7 ++++++ scripts/lint-md-fix.ts | 7 ++++++ scripts/lint-md.ts | 7 ++++++ scripts/lint.ts | 7 ++++++ scripts/markdownlint-cli2-config.ts | 3 +++ scripts/nano-staged-config.ts | 3 +++ scripts/prepare.ts | 3 +++ scripts/spellcheck.ts | 7 ++++++ scripts/version.ts | 6 +++++ src/InsertAttachmentsControl.ts | 4 ++-- src/Plugin.ts | 2 +- src/PluginSettingsManager.ts | 2 +- src/PluginSettingsTab.ts | 4 ++-- src/PluginTypes.ts | 2 +- 32 files changed, 144 insertions(+), 47 deletions(-) create mode 100644 .husky/pre-commit delete mode 100644 .markdownlint-cli2.mts create mode 100644 .nano-staged.mjs create mode 100644 scripts/build-clean.ts create mode 100644 scripts/build-compile-typescript.ts create mode 100644 scripts/build-compile.ts create mode 100644 scripts/build.ts create mode 100644 scripts/commit.ts create mode 100644 scripts/commitlint-config.ts create mode 100644 scripts/dev.ts create mode 100644 scripts/eslint-config.ts create mode 100644 scripts/format-check.ts create mode 100644 scripts/format.ts create mode 100644 scripts/lint-fix.ts create mode 100644 scripts/lint-md-fix.ts create mode 100644 scripts/lint-md.ts create mode 100644 scripts/lint.ts create mode 100644 scripts/markdownlint-cli2-config.ts create mode 100644 scripts/nano-staged-config.ts create mode 100644 scripts/prepare.ts create mode 100644 scripts/spellcheck.ts create mode 100644 scripts/version.ts diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..258ca4e --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +npx --no -- nano-staged diff --git a/.markdownlint-cli2.mjs b/.markdownlint-cli2.mjs index 54768cb..ce084bc 100644 --- a/.markdownlint-cli2.mjs +++ b/.markdownlint-cli2.mjs @@ -1,5 +1,4 @@ import { createJiti } from 'jiti'; const jiti = createJiti(import.meta.url); -const { config } = await jiti.import('./.markdownlint-cli2.mts'); -// eslint-disable-next-line import-x/no-default-export -- markdownlint-cli2 infrastructure requires a default export. +const { config } = await jiti.import('./scripts/markdownlint-cli2-config.ts'); export default config; diff --git a/.markdownlint-cli2.mts b/.markdownlint-cli2.mts deleted file mode 100644 index f282c5b..0000000 --- a/.markdownlint-cli2.mts +++ /dev/null @@ -1,7 +0,0 @@ -import type { MarkdownlintCli2ConfigurationSchema } from 'obsidian-dev-utils/ScriptUtils/markdownlint/@types/markdownlint-cli2-config-schema'; - -import { obsidianDevUtilsConfig } from 'obsidian-dev-utils/ScriptUtils/markdownlint/markdownlint-cli2-config'; - -export const config: MarkdownlintCli2ConfigurationSchema = { - ...obsidianDevUtilsConfig -}; diff --git a/.nano-staged.mjs b/.nano-staged.mjs new file mode 100644 index 0000000..bc23676 --- /dev/null +++ b/.nano-staged.mjs @@ -0,0 +1,5 @@ +import { createJiti } from 'jiti'; + +const jiti = createJiti(import.meta.url); +const { config } = await jiti.import('./scripts/nano-staged-config.ts'); +export default config; diff --git a/commitlint.config.ts b/commitlint.config.ts index 8adaec2..9019a59 100644 --- a/commitlint.config.ts +++ b/commitlint.config.ts @@ -1,8 +1,3 @@ -import type { UserConfig } from '@commitlint/types'; +import { config } from './scripts/commitlint-config.ts'; -const config: UserConfig = { - extends: ['@commitlint/config-conventional'] -}; - -// eslint-disable-next-line import-x/no-default-export -- Commitlint infrastructure requires a default export. export default config; diff --git a/eslint.config.mts b/eslint.config.mts index c00f753..42692ff 100644 --- a/eslint.config.mts +++ b/eslint.config.mts @@ -1,10 +1,3 @@ -import type { Linter } from 'eslint'; +import { configs } from './scripts/eslint-config.ts'; -import { obsidianDevUtilsConfigs } from 'obsidian-dev-utils/ScriptUtils/ESLint/eslint.config'; - -const configs: Linter.Config[] = [ - ...obsidianDevUtilsConfigs -]; - -// eslint-disable-next-line import-x/no-default-export -- ESLint infrastructure requires a default export. export default configs; diff --git a/package-lock.json b/package-lock.json index e49a593..e7f627a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,8 +18,10 @@ "better-typescript-lib": "latest", "commitizen": "latest", "cz-conventional-changelog": "latest", + "eslint": "latest", "husky": "latest", "jiti": "latest", + "nano-staged": "latest", "obsidian": "latest", "obsidian-dev-utils": "latest", "obsidian-typings": "obsidian-public-latest" @@ -13803,6 +13805,19 @@ "dev": true, "license": "ISC" }, + "node_modules/nano-staged": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nano-staged/-/nano-staged-1.0.2.tgz", + "integrity": "sha512-Fytar3zHLY99nlMfqPPbraxZodqQAHPpdPRyYaplL+lB9DCR6pUrafxbG+Btz4+7fO5Rm/+DO4ZeDO/nLSUMhw==", + "dev": true, + "license": "MIT", + "bin": { + "nano-staged": "lib/bin.js" + }, + "engines": { + "node": "^22 || >= 24" + } + }, "node_modules/nanoid": { "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", diff --git a/package.json b/package.json index cd0c93a..2ea09ec 100644 --- a/package.json +++ b/package.json @@ -3,22 +3,21 @@ "version": "1.3.7", "description": "Allows to insert multiple attachments at a time", "scripts": { - "build": "obsidian-dev-utils build", - "build:clean": "obsidian-dev-utils build:clean", - "build:compile": "obsidian-dev-utils build:compile", - "build:compile:svelte": "obsidian-dev-utils build:compile:svelte", - "build:compile:typescript": "obsidian-dev-utils build:compile:typescript", - "commit": "cz", - "dev": "obsidian-dev-utils dev", - "format": "obsidian-dev-utils format", - "format:check": "obsidian-dev-utils format:check", - "lint": "obsidian-dev-utils lint", - "lint:fix": "obsidian-dev-utils lint:fix", - "lint:md": "obsidian-dev-utils lint:md", - "lint:md:fix": "obsidian-dev-utils lint:md:fix", - "prepare": "husky", - "spellcheck": "obsidian-dev-utils spellcheck", - "version": "obsidian-dev-utils version" + "build": "jiti scripts/build.ts", + "build:clean": "jiti scripts/build-clean.ts", + "build:compile": "jiti scripts/build-compile.ts", + "build:compile:typescript": "jiti scripts/build-compile-typescript.ts", + "commit": "jiti scripts/commit.ts", + "dev": "jiti scripts/dev.ts", + "format": "jiti scripts/format.ts", + "format:check": "jiti scripts/format-check.ts", + "lint": "jiti scripts/lint.ts", + "lint:fix": "jiti scripts/lint-fix.ts", + "lint:md": "jiti scripts/lint-md.ts", + "lint:md:fix": "jiti scripts/lint-md-fix.ts", + "prepare": "jiti scripts/prepare.ts", + "spellcheck": "jiti scripts/spellcheck.ts", + "version": "jiti scripts/version.ts" }, "keywords": [], "author": "mnaoumov", @@ -33,8 +32,10 @@ "better-typescript-lib": "latest", "commitizen": "latest", "cz-conventional-changelog": "latest", + "eslint": "latest", "husky": "latest", "jiti": "latest", + "nano-staged": "latest", "obsidian": "latest", "obsidian-dev-utils": "latest", "obsidian-typings": "obsidian-public-latest" @@ -43,7 +44,9 @@ "@antfu/utils": "9.2.0", "boolean": "npm:dry-uninstall", "dompurify": "3.0.1", - "type-fest": "latest" + "eslint": "latest", + "type-fest": "latest", + "typescript": "latest" }, "type": "module" } diff --git a/scripts/build-clean.ts b/scripts/build-clean.ts new file mode 100644 index 0000000..4243366 --- /dev/null +++ b/scripts/build-clean.ts @@ -0,0 +1,4 @@ +import { buildClean } from 'obsidian-dev-utils/script-utils/build'; +import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils'; + +await wrapCliTask(() => buildClean()); diff --git a/scripts/build-compile-typescript.ts b/scripts/build-compile-typescript.ts new file mode 100644 index 0000000..76862d3 --- /dev/null +++ b/scripts/build-compile-typescript.ts @@ -0,0 +1,4 @@ +import { buildCompileTypeScript } from 'obsidian-dev-utils/script-utils/build'; +import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils'; + +await wrapCliTask(() => buildCompileTypeScript()); diff --git a/scripts/build-compile.ts b/scripts/build-compile.ts new file mode 100644 index 0000000..76862d3 --- /dev/null +++ b/scripts/build-compile.ts @@ -0,0 +1,4 @@ +import { buildCompileTypeScript } from 'obsidian-dev-utils/script-utils/build'; +import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils'; + +await wrapCliTask(() => buildCompileTypeScript()); diff --git a/scripts/build.ts b/scripts/build.ts new file mode 100644 index 0000000..8a32817 --- /dev/null +++ b/scripts/build.ts @@ -0,0 +1,4 @@ +import { build } from 'obsidian-dev-utils/script-utils/bundlers/esbuild'; +import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils'; + +await wrapCliTask(() => build()); diff --git a/scripts/commit.ts b/scripts/commit.ts new file mode 100644 index 0000000..9f711fb --- /dev/null +++ b/scripts/commit.ts @@ -0,0 +1,3 @@ +import { exec } from 'obsidian-dev-utils/script-utils/exec'; + +await exec('cz'); diff --git a/scripts/commitlint-config.ts b/scripts/commitlint-config.ts new file mode 100644 index 0000000..844ae98 --- /dev/null +++ b/scripts/commitlint-config.ts @@ -0,0 +1,3 @@ +import { obsidianDevUtilsConfig } from 'obsidian-dev-utils/script-utils/commitlint-config'; + +export const config = obsidianDevUtilsConfig; diff --git a/scripts/dev.ts b/scripts/dev.ts new file mode 100644 index 0000000..10b217f --- /dev/null +++ b/scripts/dev.ts @@ -0,0 +1,4 @@ +import { dev } from 'obsidian-dev-utils/script-utils/bundlers/esbuild'; +import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils'; + +await wrapCliTask(() => dev()); diff --git a/scripts/eslint-config.ts b/scripts/eslint-config.ts new file mode 100644 index 0000000..2b2573e --- /dev/null +++ b/scripts/eslint-config.ts @@ -0,0 +1,3 @@ +import { defineEslintConfigs } from 'obsidian-dev-utils/script-utils/linters/eslint-config'; + +export const configs = defineEslintConfigs({}); diff --git a/scripts/format-check.ts b/scripts/format-check.ts new file mode 100644 index 0000000..51a7d7f --- /dev/null +++ b/scripts/format-check.ts @@ -0,0 +1,7 @@ +import process from 'node:process'; +import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils'; +import { format } from 'obsidian-dev-utils/script-utils/formatters/dprint'; + +const [, , ...paths] = process.argv; + +await wrapCliTask(() => format({ paths, rewrite: false })); diff --git a/scripts/format.ts b/scripts/format.ts new file mode 100644 index 0000000..15b2ef6 --- /dev/null +++ b/scripts/format.ts @@ -0,0 +1,7 @@ +import process from 'node:process'; +import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils'; +import { format } from 'obsidian-dev-utils/script-utils/formatters/dprint'; + +const [, , ...paths] = process.argv; + +await wrapCliTask(() => format({ paths })); diff --git a/scripts/lint-fix.ts b/scripts/lint-fix.ts new file mode 100644 index 0000000..b104208 --- /dev/null +++ b/scripts/lint-fix.ts @@ -0,0 +1,7 @@ +import process from 'node:process'; +import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils'; +import { lint } from 'obsidian-dev-utils/script-utils/linters/eslint'; + +const [, , ...paths] = process.argv; + +await wrapCliTask(() => lint({ paths, shouldFix: true })); diff --git a/scripts/lint-md-fix.ts b/scripts/lint-md-fix.ts new file mode 100644 index 0000000..c0128a5 --- /dev/null +++ b/scripts/lint-md-fix.ts @@ -0,0 +1,7 @@ +import process from 'node:process'; +import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils'; +import { lint } from 'obsidian-dev-utils/script-utils/linters/markdownlint'; + +const [, , ...paths] = process.argv; + +await wrapCliTask(() => lint({ paths, shouldFix: true })); diff --git a/scripts/lint-md.ts b/scripts/lint-md.ts new file mode 100644 index 0000000..66fe05b --- /dev/null +++ b/scripts/lint-md.ts @@ -0,0 +1,7 @@ +import process from 'node:process'; +import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils'; +import { lint } from 'obsidian-dev-utils/script-utils/linters/markdownlint'; + +const [, , ...paths] = process.argv; + +await wrapCliTask(() => lint({ paths })); diff --git a/scripts/lint.ts b/scripts/lint.ts new file mode 100644 index 0000000..5bd4341 --- /dev/null +++ b/scripts/lint.ts @@ -0,0 +1,7 @@ +import process from 'node:process'; +import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils'; +import { lint } from 'obsidian-dev-utils/script-utils/linters/eslint'; + +const [, , ...paths] = process.argv; + +await wrapCliTask(() => lint({ paths })); diff --git a/scripts/markdownlint-cli2-config.ts b/scripts/markdownlint-cli2-config.ts new file mode 100644 index 0000000..79fa90e --- /dev/null +++ b/scripts/markdownlint-cli2-config.ts @@ -0,0 +1,3 @@ +import { obsidianDevUtilsConfig } from 'obsidian-dev-utils/script-utils/linters/markdownlint-cli2-config'; + +export const config = obsidianDevUtilsConfig; diff --git a/scripts/nano-staged-config.ts b/scripts/nano-staged-config.ts new file mode 100644 index 0000000..6eb87e0 --- /dev/null +++ b/scripts/nano-staged-config.ts @@ -0,0 +1,3 @@ +import { obsidianDevUtilsConfig } from 'obsidian-dev-utils/script-utils/nano-staged-config'; + +export const config = obsidianDevUtilsConfig; diff --git a/scripts/prepare.ts b/scripts/prepare.ts new file mode 100644 index 0000000..1a151b5 --- /dev/null +++ b/scripts/prepare.ts @@ -0,0 +1,3 @@ +import { execFromRoot } from 'obsidian-dev-utils/script-utils/root'; + +await execFromRoot('husky'); diff --git a/scripts/spellcheck.ts b/scripts/spellcheck.ts new file mode 100644 index 0000000..e37bad7 --- /dev/null +++ b/scripts/spellcheck.ts @@ -0,0 +1,7 @@ +import process from 'node:process'; +import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils'; +import { spellcheck } from 'obsidian-dev-utils/script-utils/linters/cspell'; + +const [, , ...paths] = process.argv; + +await wrapCliTask(() => spellcheck({ paths })); diff --git a/scripts/version.ts b/scripts/version.ts new file mode 100644 index 0000000..a2658c4 --- /dev/null +++ b/scripts/version.ts @@ -0,0 +1,6 @@ +import process from 'node:process'; +import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils'; +import { updateVersion } from 'obsidian-dev-utils/script-utils/version'; + +const [, , versionUpdateType] = process.argv; +await wrapCliTask(() => updateVersion(versionUpdateType)); diff --git a/src/InsertAttachmentsControl.ts b/src/InsertAttachmentsControl.ts index c0f8de4..f9b3381 100644 --- a/src/InsertAttachmentsControl.ts +++ b/src/InsertAttachmentsControl.ts @@ -3,11 +3,11 @@ import type { Editor } from 'obsidian'; -import { convertAsyncToSync } from 'obsidian-dev-utils/Async'; +import { convertAsyncToSync } from 'obsidian-dev-utils/async'; import { basename, extname -} from 'obsidian-dev-utils/Path'; +} from 'obsidian-dev-utils/path'; import type { Plugin } from './Plugin.ts'; diff --git a/src/Plugin.ts b/src/Plugin.ts index 20d0042..778e2a8 100644 --- a/src/Plugin.ts +++ b/src/Plugin.ts @@ -1,4 +1,4 @@ -import { PluginBase } from 'obsidian-dev-utils/obsidian/Plugin/PluginBase'; +import { PluginBase } from 'obsidian-dev-utils/obsidian/plugin/plugin-base'; import type { PluginTypes } from './PluginTypes.ts'; diff --git a/src/PluginSettingsManager.ts b/src/PluginSettingsManager.ts index 2c646ce..906d810 100644 --- a/src/PluginSettingsManager.ts +++ b/src/PluginSettingsManager.ts @@ -1,4 +1,4 @@ -import { PluginSettingsManagerBase } from 'obsidian-dev-utils/obsidian/Plugin/PluginSettingsManagerBase'; +import { PluginSettingsManagerBase } from 'obsidian-dev-utils/obsidian/plugin/plugin-settings-manager-base'; import type { PluginTypes } from './PluginTypes.ts'; diff --git a/src/PluginSettingsTab.ts b/src/PluginSettingsTab.ts index 9ec63d9..48a5696 100644 --- a/src/PluginSettingsTab.ts +++ b/src/PluginSettingsTab.ts @@ -2,8 +2,8 @@ import { Setting, TextComponent } from 'obsidian'; -import { PluginSettingsTabBase } from 'obsidian-dev-utils/obsidian/Plugin/PluginSettingsTabBase'; -import { replace } from 'obsidian-dev-utils/String'; +import { PluginSettingsTabBase } from 'obsidian-dev-utils/obsidian/plugin/plugin-settings-tab-base'; +import { replace } from 'obsidian-dev-utils/string'; import type { PluginTypes } from './PluginTypes.ts'; diff --git a/src/PluginTypes.ts b/src/PluginTypes.ts index 94daee5..4c2db0e 100644 --- a/src/PluginTypes.ts +++ b/src/PluginTypes.ts @@ -1,4 +1,4 @@ -import type { PluginTypesBase } from 'obsidian-dev-utils/obsidian/Plugin/PluginTypesBase'; +import type { PluginTypesBase } from 'obsidian-dev-utils/obsidian/plugin/plugin-types-base'; import type { Plugin } from './Plugin.ts'; import type { PluginSettings } from './PluginSettings.ts';