diff --git a/.gitignore b/.gitignore index 702bb7e..4e5af21 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ .DS_Store node_modules dist -shared/meta.ts +packages/shared/src/meta.ts # local env files .env.local diff --git a/extensions/vscode/package.json b/extensions/vscode/package.json index aaef702..79fef95 100644 --- a/extensions/vscode/package.json +++ b/extensions/vscode/package.json @@ -198,7 +198,7 @@ "scripts": { "dev": "tsdown --watch", "build": "tsdown", - "update": "vscode-ext-gen --scope npmx --output ../../shared/meta.ts", + "update": "vscode-ext-gen --scope npmx --output ../../packages/shared/src/meta.ts", "vscode:prepublish": "npm run build", "package": "npx @vscode/vsce package --no-dependencies", "prepare": "npm run update" @@ -208,6 +208,7 @@ "@volar/vscode": "catalog:lsp", "npmx-language-core": "workspace:*", "npmx-language-server": "workspace:*", + "npmx-shared": "workspace:*", "ocache": "catalog:inline", "reactive-vscode": "catalog:inline", "semver": "catalog:inline", diff --git a/extensions/vscode/src/client.ts b/extensions/vscode/src/client.ts index bf48e12..1fd84cd 100644 --- a/extensions/vscode/src/client.ts +++ b/extensions/vscode/src/client.ts @@ -1,10 +1,10 @@ -import type { GetPackageManagerRequest } from '#shared/protocol' import type { DocumentFilter } from '@volar/vscode' -import { displayName, extensionId } from '#shared/meta' -import { GET_PACKAGE_MANAGER_METHOD } from '#shared/protocol' +import type { GetPackageManagerRequest } from 'npmx-shared/protocol' import { SUPPORTED_DOCUMENT_PATTERN } from '#utils/constants' import { middleware } from '@volar/vscode' import { LanguageClient, TransportKind } from '@volar/vscode/node' +import { displayName, extensionId } from 'npmx-shared/meta' +import { GET_PACKAGE_MANAGER_METHOD } from 'npmx-shared/protocol' import { commands, Hover, MarkdownString, Uri } from 'vscode' const SUPPORTED_LANGUAGES = [ diff --git a/extensions/vscode/src/commands/add-to-ignore.ts b/extensions/vscode/src/commands/add-to-ignore.ts index 1ae9d01..9770910 100644 --- a/extensions/vscode/src/commands/add-to-ignore.ts +++ b/extensions/vscode/src/commands/add-to-ignore.ts @@ -1,6 +1,6 @@ -import type { ConfigurationTarget } from '#shared/constants' -import { scopedConfigs } from '#shared/meta' +import type { ConfigurationTarget } from 'npmx-shared/constants' import { checkIgnored } from 'npmx-language-core/utils' +import { scopedConfigs } from 'npmx-shared/meta' import { workspace } from 'vscode' export async function addToIgnore(scope: string, name: string, target: ConfigurationTarget) { diff --git a/extensions/vscode/src/index.ts b/extensions/vscode/src/index.ts index 37f30a0..9f3bc01 100644 --- a/extensions/vscode/src/index.ts +++ b/extensions/vscode/src/index.ts @@ -1,7 +1,7 @@ import { useWorkspaceContext } from '#composables/workspace-context' -import { ADD_TO_IGNORE_COMMAND } from '#shared/commands' -import { commands, displayName, version } from '#shared/meta' import { createLabsInfo } from '@volar/vscode' +import { ADD_TO_IGNORE_COMMAND } from 'npmx-shared/commands' +import { commands, displayName, version } from 'npmx-shared/meta' import { defineExtension, useCommand, useCommands } from 'reactive-vscode' import { Uri } from 'vscode' import { launch } from './client' diff --git a/extensions/vscode/src/state.ts b/extensions/vscode/src/state.ts index 394bc74..f6bc23c 100644 --- a/extensions/vscode/src/state.ts +++ b/extensions/vscode/src/state.ts @@ -1,5 +1,5 @@ -import type { NestedScopedConfigs } from '#shared/meta' -import { displayName, scopedConfigs } from '#shared/meta' +import type { NestedScopedConfigs } from 'npmx-shared/meta' +import { displayName, scopedConfigs } from 'npmx-shared/meta' import { defineConfig, defineLogger } from 'reactive-vscode' export const config = defineConfig(scopedConfigs.scope) diff --git a/extensions/vscode/tsconfig.json b/extensions/vscode/tsconfig.json index a327344..210d4da 100644 --- a/extensions/vscode/tsconfig.json +++ b/extensions/vscode/tsconfig.json @@ -3,7 +3,6 @@ "compilerOptions": { "tsBuildInfoFile": "./node_modules/.tsbuildinfo/app", "paths": { - "#shared/*": ["../../shared/*"], "#state": ["./src/state.ts"], "#api/*": ["./src/api/*"], "#types/*": ["./src/types/*"], @@ -14,7 +13,6 @@ }, "include": [ "src/**/*", - "tests/**/*", - "../../shared" + "tests/**/*" ] } diff --git a/packages/language-core/package.json b/packages/language-core/package.json index fd7ca7e..fde15da 100644 --- a/packages/language-core/package.json +++ b/packages/language-core/package.json @@ -19,8 +19,7 @@ "./links": "./dist/links.js", "./types": "./dist/types.js", "./utils": "./dist/utils/index.js", - "./workspace": "./dist/workspace.js", - "./package.json": "./package.json" + "./workspace": "./dist/workspace.js" }, "files": [ "dist/**/*" diff --git a/packages/language-core/tsdown.config.ts b/packages/language-core/tsdown.config.ts index f70c828..914adc2 100644 --- a/packages/language-core/tsdown.config.ts +++ b/packages/language-core/tsdown.config.ts @@ -13,7 +13,9 @@ export default defineConfig({ 'src/workspace.ts', ], platform: 'neutral', - exports: true, + exports: { + packageJson: false, + }, dts: true, minify: 'dce-only', deps: { diff --git a/packages/language-server/package.json b/packages/language-server/package.json index 4ecf77a..59b157f 100644 --- a/packages/language-server/package.json +++ b/packages/language-server/package.json @@ -11,8 +11,7 @@ }, "sideEffects": true, "exports": { - ".": "./dist/index.cjs", - "./package.json": "./package.json" + ".": "./dist/index.cjs" }, "main": "./dist/index.cjs", "bin": { @@ -30,6 +29,7 @@ "@volar/language-server": "catalog:lsp", "npmx-language-core": "workspace:*", "npmx-language-service": "workspace:*", + "npmx-shared": "workspace:*", "ocache": "catalog:inline", "vscode-uri": "catalog:lsp" }, diff --git a/packages/language-server/src/workspace.ts b/packages/language-server/src/workspace.ts index 2b0a54a..dc25a72 100644 --- a/packages/language-server/src/workspace.ts +++ b/packages/language-server/src/workspace.ts @@ -1,13 +1,13 @@ -import type { GetPackageManagerRequest } from '#shared/protocol' import type { Connection, LanguageServer } from '@volar/language-server' import type { DependencyInfo, WorkspaceAdapter } from 'npmx-language-core/workspace' import type { IWorkspaceState } from 'npmx-language-service/types' +import type { GetPackageManagerRequest } from 'npmx-shared/protocol' import { access, readFile } from 'node:fs/promises' -import { GET_PACKAGE_MANAGER_METHOD } from '#shared/protocol' import { RequestType } from '@volar/language-server' import { PACKAGE_JSON_BASENAME } from 'npmx-language-core/constants' import { isDependencyFile, isPackageManifest, isWorkspaceFile } from 'npmx-language-core/utils' import { WorkspaceContext } from 'npmx-language-core/workspace' +import { GET_PACKAGE_MANAGER_METHOD } from 'npmx-shared/protocol' import { defineCachedFunction } from 'ocache' import { URI } from 'vscode-uri' diff --git a/packages/language-server/tsconfig.json b/packages/language-server/tsconfig.json index a2bce2d..543e361 100644 --- a/packages/language-server/tsconfig.json +++ b/packages/language-server/tsconfig.json @@ -1,13 +1,9 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { - "tsBuildInfoFile": "./node_modules/.tsbuildinfo", - "paths": { - "#shared/*": ["../../shared/*"] - } + "tsBuildInfoFile": "./node_modules/.tsbuildinfo" }, "include": [ - "src", - "../../shared" + "src" ] } diff --git a/packages/language-server/tsdown.config.ts b/packages/language-server/tsdown.config.ts index 5574f92..1a539bc 100644 --- a/packages/language-server/tsdown.config.ts +++ b/packages/language-server/tsdown.config.ts @@ -4,7 +4,9 @@ import { umdToEsm } from '../../plugins/umd-to-esm.ts' export default defineConfig({ entry: 'src/index.ts', platform: 'node', - exports: true, + exports: { + packageJson: false, + }, format: 'cjs', checks: { // @volar/language-server@2.4.28 diff --git a/packages/language-service/package.json b/packages/language-service/package.json index 3716542..0f8756d 100644 --- a/packages/language-service/package.json +++ b/packages/language-service/package.json @@ -12,8 +12,7 @@ "sideEffects": false, "exports": { ".": "./dist/index.mjs", - "./types": "./dist/types.mjs", - "./package.json": "./package.json" + "./types": "./dist/types.mjs" }, "files": [ "dist/**/*" @@ -25,6 +24,7 @@ "dependencies": { "@volar/language-service": "catalog:lsp", "npmx-language-core": "workspace:*", + "npmx-shared": "workspace:*", "semver": "catalog:inline", "vscode-uri": "catalog:lsp" } diff --git a/packages/language-service/src/config.ts b/packages/language-service/src/config.ts index 83f97e7..a781dc1 100644 --- a/packages/language-service/src/config.ts +++ b/packages/language-service/src/config.ts @@ -1,5 +1,5 @@ -import type { ConfigKey, ConfigKeyTypeMap } from '#shared/meta' import type { LanguageServiceContext } from '@volar/language-service' +import type { ConfigKey, ConfigKeyTypeMap } from 'npmx-shared/meta' export async function getConfig(context: LanguageServiceContext, section: T): Promise { return (await context.env.getConfiguration!(section))! diff --git a/packages/language-service/src/plugins/diagnostics/actions.ts b/packages/language-service/src/plugins/diagnostics/actions.ts index e96db09..eb8524c 100644 --- a/packages/language-service/src/plugins/diagnostics/actions.ts +++ b/packages/language-service/src/plugins/diagnostics/actions.ts @@ -1,6 +1,6 @@ import type { CodeAction, CodeActionKind, Diagnostic } from '@volar/language-service' -import { ADD_TO_IGNORE_COMMAND } from '#shared/commands' -import { ConfigurationTarget } from '#shared/constants' +import { ADD_TO_IGNORE_COMMAND } from 'npmx-shared/commands' +import { ConfigurationTarget } from 'npmx-shared/constants' type MatchGroups = NonNullable diff --git a/packages/language-service/src/plugins/diagnostics/index.ts b/packages/language-service/src/plugins/diagnostics/index.ts index 096e26b..0d7b90a 100644 --- a/packages/language-service/src/plugins/diagnostics/index.ts +++ b/packages/language-service/src/plugins/diagnostics/index.ts @@ -1,8 +1,8 @@ import type { CodeActionKind, Diagnostic, LanguageServicePlugin, LanguageServicePluginInstance } from '@volar/language-service' import type { IWorkspaceState } from '../../types' import type { DiagnosticContext, DiagnosticRule } from './types' -import { displayName } from '#shared/meta' import { isDependencyFile } from 'npmx-language-core/utils' +import { displayName } from 'npmx-shared/meta' import { URI } from 'vscode-uri' import { getConfig } from '../../config' import { strategies } from './actions' diff --git a/packages/language-service/tsconfig.json b/packages/language-service/tsconfig.json index a2bce2d..543e361 100644 --- a/packages/language-service/tsconfig.json +++ b/packages/language-service/tsconfig.json @@ -1,13 +1,9 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { - "tsBuildInfoFile": "./node_modules/.tsbuildinfo", - "paths": { - "#shared/*": ["../../shared/*"] - } + "tsBuildInfoFile": "./node_modules/.tsbuildinfo" }, "include": [ - "src", - "../../shared" + "src" ] } diff --git a/packages/language-service/tsdown.config.ts b/packages/language-service/tsdown.config.ts index ccd309a..0e90528 100644 --- a/packages/language-service/tsdown.config.ts +++ b/packages/language-service/tsdown.config.ts @@ -6,7 +6,9 @@ export default defineConfig({ 'src/types.ts', ], platform: 'node', - exports: true, + exports: { + packageJson: false, + }, dts: true, minify: 'dce-only', }) diff --git a/packages/shared/package.json b/packages/shared/package.json new file mode 100644 index 0000000..13bc214 --- /dev/null +++ b/packages/shared/package.json @@ -0,0 +1,30 @@ +{ + "name": "npmx-shared", + "type": "module", + "version": "0.7.0", + "private": true, + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/npmx-dev/vscode-npmx.git", + "directory": "packages/shared" + }, + "sideEffects": false, + "exports": { + "./commands": "./dist/commands.js", + "./constants": "./dist/constants.js", + "./meta": "./dist/meta.js", + "./protocol": "./dist/protocol.js", + "./types": "./dist/types.js" + }, + "files": [ + "dist/**/*" + ], + "scripts": { + "dev": "tsdown --watch", + "build": "tsdown" + }, + "dependencies": { + "npmx-language-core": "workspace:*" + } +} diff --git a/shared/commands.ts b/packages/shared/src/commands.ts similarity index 100% rename from shared/commands.ts rename to packages/shared/src/commands.ts diff --git a/shared/constants.ts b/packages/shared/src/constants.ts similarity index 100% rename from shared/constants.ts rename to packages/shared/src/constants.ts diff --git a/shared/protocol.ts b/packages/shared/src/protocol.ts similarity index 100% rename from shared/protocol.ts rename to packages/shared/src/protocol.ts diff --git a/shared/types.ts b/packages/shared/src/types.ts similarity index 100% rename from shared/types.ts rename to packages/shared/src/types.ts diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json new file mode 100644 index 0000000..543e361 --- /dev/null +++ b/packages/shared/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tsbuildinfo" + }, + "include": [ + "src" + ] +} diff --git a/packages/shared/tsdown.config.ts b/packages/shared/tsdown.config.ts new file mode 100644 index 0000000..3400321 --- /dev/null +++ b/packages/shared/tsdown.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'tsdown' + +export default defineConfig({ + entry: 'src/**/*.ts', + platform: 'neutral', + exports: { + packageJson: false, + }, + dts: true, +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4b53f26..2cae559 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -155,6 +155,9 @@ importers: npmx-language-server: specifier: workspace:* version: link:../../packages/language-server + npmx-shared: + specifier: workspace:* + version: link:../../packages/shared ocache: specifier: catalog:inline version: 0.1.4 @@ -210,6 +213,9 @@ importers: npmx-language-service: specifier: workspace:* version: link:../language-service + npmx-shared: + specifier: workspace:* + version: link:../shared ocache: specifier: catalog:inline version: 0.1.4 @@ -225,6 +231,9 @@ importers: npmx-language-core: specifier: workspace:* version: link:../language-core + npmx-shared: + specifier: workspace:* + version: link:../shared semver: specifier: catalog:inline version: 7.7.4 @@ -232,6 +241,12 @@ importers: specifier: catalog:lsp version: 3.1.0 + packages/shared: + dependencies: + npmx-language-core: + specifier: workspace:* + version: link:../language-core + packages: '@antfu/eslint-config@7.7.2': diff --git a/tsconfig.json b/tsconfig.json index 6943bf7..5bf2f8d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,7 @@ { "references": [ { "path": "./extensions/vscode/tsconfig.json" }, + { "path": "./packages/shared/tsconfig.json" }, { "path": "./packages/language-core/tsconfig.json" }, { "path": "./packages/language-server/tsconfig.json" }, { "path": "./packages/language-service/tsconfig.json" }