Skip to content

Commit

Permalink
Move bin: protocol helpers to separate module
Browse files Browse the repository at this point in the history
  • Loading branch information
webpro committed Sep 26, 2023
1 parent fedd56d commit 92c6f1b
Show file tree
Hide file tree
Showing 14 changed files with 30 additions and 18 deletions.
2 changes: 1 addition & 1 deletion src/binaries/index.ts
Expand Up @@ -2,8 +2,8 @@ import { compact } from '../util/array.js';
import { getPackageNameFromModuleSpecifier } from '../util/modules.js';
import { isInternal } from '../util/path.js';
import { timerify } from '../util/Performance.js';
import { isBinary } from '../util/protocols.js';
import { getBinariesFromScript } from './bash-parser.js';
import { isBinary } from './util.js';
import type { GetDependenciesFromScripts } from './types.js';

const defaultCwd = process.cwd();
Expand Down
3 changes: 2 additions & 1 deletion src/binaries/resolvers/c8.ts
@@ -1,5 +1,6 @@
import parseArgs from 'minimist';
import { toBinary, argsFrom } from '../util.js';
import { toBinary } from '../../util/protocols.js';
import { argsFrom } from '../util.js';
import type { Resolver } from '../types.js';

export const resolve: Resolver = (binary, args, { fromArgs }) => {
Expand Down
3 changes: 2 additions & 1 deletion src/binaries/resolvers/dotenv.ts
@@ -1,5 +1,6 @@
import parseArgs from 'minimist';
import { toBinary, argsFrom } from '../util.js';
import { toBinary } from '../../util/protocols.js';
import { argsFrom } from '../util.js';
import type { Resolver } from '../types.js';

export const resolve: Resolver = (binary, args, { fromArgs }) => {
Expand Down
3 changes: 2 additions & 1 deletion src/binaries/resolvers/fallback.ts
@@ -1,6 +1,7 @@
import parseArgs from 'minimist';
import { compact } from '../../util/array.js';
import { toBinary, tryResolveFilePath, tryResolveSpecifiers } from '../util.js';
import { toBinary } from '../../util/protocols.js';
import { tryResolveFilePath, tryResolveSpecifiers } from '../util.js';
import type { Resolver } from '../types.js';
import type { ParsedArgs } from 'minimist';

Expand Down
3 changes: 2 additions & 1 deletion src/binaries/resolvers/nodemon.ts
@@ -1,6 +1,7 @@
import parseArgs from 'minimist';
import { compact } from '../../util/array.js';
import { toBinary, tryResolveFilePath, tryResolveSpecifiers } from '../util.js';
import { toBinary } from '../../util/protocols.js';
import { tryResolveFilePath, tryResolveSpecifiers } from '../util.js';
import type { Resolver } from '../types.js';

export const resolve: Resolver = (binary, args, { cwd, fromArgs }) => {
Expand Down
3 changes: 2 additions & 1 deletion src/binaries/resolvers/npx.ts
@@ -1,7 +1,8 @@
import parseArgs from 'minimist';
import { isInternal } from '../../util/path.js';
import { toBinary } from '../../util/protocols.js';
import { getBinariesFromScript } from '../bash-parser.js';
import { argsFrom, stripVersionFromSpecifier, toBinary } from '../util.js';
import { argsFrom, stripVersionFromSpecifier } from '../util.js';
import type { Resolver } from '../types.js';

export const resolve: Resolver = (binary, args, { cwd, fromArgs, manifest }) => {
Expand Down
2 changes: 1 addition & 1 deletion src/binaries/resolvers/nx.ts
@@ -1,5 +1,5 @@
import parseArgs from 'minimist';
import { toBinary } from '../util.js';
import { toBinary } from '../../util/protocols.js';
import type { Resolver } from '../types.js';

export const resolve: Resolver = (binary, args, { fromArgs }) => {
Expand Down
2 changes: 1 addition & 1 deletion src/binaries/resolvers/pnpm.ts
@@ -1,5 +1,5 @@
import parseArgs from 'minimist';
import { toBinary } from '../util.js';
import { toBinary } from '../../util/protocols.js';
import type { Resolver } from '../types.js';

// https://pnpm.io/cli/add
Expand Down
3 changes: 2 additions & 1 deletion src/binaries/resolvers/rollup.ts
@@ -1,6 +1,7 @@
import parseArgs from 'minimist';
import { compact } from '../../util/array.js';
import { toBinary, tryResolveSpecifiers } from '../util.js';
import { toBinary } from '../../util/protocols.js';
import { tryResolveSpecifiers } from '../util.js';
import type { Resolver } from '../types.js';

export const resolve: Resolver = (binary, args, { cwd, fromArgs }) => {
Expand Down
2 changes: 1 addition & 1 deletion src/binaries/resolvers/yarn.ts
@@ -1,5 +1,5 @@
import parseArgs from 'minimist';
import { toBinary } from '../util.js';
import { toBinary } from '../../util/protocols.js';
import type { Resolver } from '../types.js';

// https://yarnpkg.com/cli
Expand Down
7 changes: 1 addition & 6 deletions src/binaries/util.ts
@@ -1,5 +1,6 @@
import { getPackageNameFromFilePath, getPackageNameFromModuleSpecifier } from '../util/modules.js';
import { isInNodeModules, join } from '../util/path.js';
import { toBinary } from '../util/protocols.js';
import { _tryResolve } from '../util/require.js';

export const tryResolveFilePath = (cwd: string, specifier: string, acceptModuleSpecifier?: boolean) => {
Expand All @@ -23,12 +24,6 @@ export const tryResolveFilePath = (cwd: string, specifier: string, acceptModuleS
export const tryResolveSpecifiers = (cwd: string, specifiers: string[]) =>
specifiers.map(specifier => tryResolveFilePath(cwd, specifier, true));

export const toBinary = (specifier: string) => specifier.replace(/^(bin:)?/, 'bin:');

export const fromBinary = (specifier: string) => specifier.replace(/^(bin:)?/, '');

export const isBinary = (specifier: string) => specifier.startsWith('bin:');

export const stripVersionFromSpecifier = (specifier: string) => specifier.replace(/(\S+)@.*/, '$1');

const stripNodeModulesFromPath = (command: string) => command.replace(/^(\.\/)?node_modules\//, '');
Expand Down
2 changes: 1 addition & 1 deletion src/index.ts
@@ -1,6 +1,5 @@
import micromatch from 'micromatch';
import { _getDependenciesFromScripts } from './binaries/index.js';
import { fromBinary, isBinary } from './binaries/util.js';
import { ConfigurationChief } from './ConfigurationChief.js';
import { ConsoleStreamer } from './ConsoleStreamer.js';
import { ROOT_WORKSPACE_NAME } from './constants.js';
Expand All @@ -19,6 +18,7 @@ import {
getPackageNameFromModuleSpecifier,
} from './util/modules.js';
import { dirname, isInNodeModules, join, isInternal, toAbsolute } from './util/path.js';
import { fromBinary, isBinary } from './util/protocols.js';
import { _resolveSpecifier, _tryResolve } from './util/require.js';
import { _require } from './util/require.js';
import { loadTSConfig } from './util/tsconfig-loader.js';
Expand Down
2 changes: 1 addition & 1 deletion src/plugins/lefthook/index.ts
@@ -1,6 +1,6 @@
import { readFileSync } from 'fs';
import { fromBinary } from '../../util/protocols.js';
import { _getDependenciesFromScripts } from '../../binaries/index.js';
import { fromBinary } from '../../binaries/util.js';
import { getGitHookPaths } from '../../util/git.js';
import { getValuesByKeyDeep } from '../../util/object.js';
import { timerify } from '../../util/Performance.js';
Expand Down
11 changes: 11 additions & 0 deletions src/util/protocols.ts
@@ -0,0 +1,11 @@
export const toBinary = (specifier: string) => specifier.replace(/^(bin:)?/, 'bin:');

export const fromBinary = (specifier: string) => specifier.replace(/^(bin:)?/, '');

export const isBinary = (specifier: string) => specifier.startsWith('bin:');

export const toEntryPattern = (specifier: string) => specifier.replace(/^(entry:)?/, 'entry:');

export const fromEntryPattern = (specifier: string) => specifier.replace(/^(entry:)?/, '');

export const isEntryPattern = (specifier: string) => specifier.startsWith('entry:');

0 comments on commit 92c6f1b

Please sign in to comment.