文件结构更改

This commit is contained in:
undefined committed 2020-08-04 13:42:42 +08:00
1 parent b3af28dc43
commit 1f1d12ad73
109 files changed
+544 -3296

No files matched your search

+25
View File
@@ -0,0 +1,25 @@
/* eslint-disable import/no-extraneous-dependencies */
import spawn from 'cross-spawn';
const args = ['jest', '--coverage'];
const [, , argv2, argv3] = process.argv;
if (argv2 && !argv2.startsWith('-')) {
args.push(argv2);
if (argv3 && !argv3.startsWith('-')) {
args.push('--collectCoverageFrom');
if (argv3.endsWith('.ts')) {
args.push(`**/${argv3}`);
} else {
args.push(`**/${argv3}/**/*.ts`);
}
args.push(...process.argv.slice(4));
} else {
args.push(...process.argv.slice(3));
}
} else {
args.push('packages/.+\\.spec\\.ts', ...process.argv.slice(2));
}
spawn('npx', args, { stdio: 'inherit' });
+54
View File
@@ -0,0 +1,54 @@
/* eslint-disable import/no-extraneous-dependencies */
/* eslint-disable consistent-return */
/* eslint-disable no-await-in-loop */
/* eslint-disable import/no-dynamic-require */
import { gt } from 'semver';
import latest from 'latest-version';
import ora from 'ora';
import {
PackageJson, getWorkspaces, spawnAsync,
} from './utils';
const {
CI, GITHUB_EVENT_NAME, GITHUB_REF,
} = process.env;
if (CI && (GITHUB_REF !== 'refs/heads/master' || GITHUB_EVENT_NAME !== 'push')) {
console.log('publish skipped.');
process.exit(0);
}
(async () => {
let folders = await getWorkspaces();
if (process.argv[2]) {
folders = folders.filter((path) => path.startsWith(process.argv[2]));
}
const spinner = ora();
const bumpMap: Record<string, string> = {};
let progress = 0;
spinner.start(`Loading workspaces (0/${folders.length})`);
await Promise.all(folders.map(async (name) => {
let meta: PackageJson;
try {
meta = require(`../${name}/package`);
if (!meta.private) {
const version = await latest(meta.name);
if (gt(meta.version, version)) {
bumpMap[name] = meta.version;
}
}
} catch { /* pass */ }
spinner.text = `Loading workspaces (${++progress}/${folders.length})`;
}));
spinner.succeed();
if (Object.keys(bumpMap).length) {
for (const name in bumpMap) {
console.log(`publishing ${name}@${bumpMap[name]} ...`);
await spawnAsync(`yarn publish ${name} --new-version ${bumpMap[name]} --access public`);
}
}
console.log('Release created successfully.');
})();
+42
View File
@@ -0,0 +1,42 @@
import path from 'path';
import globby from 'globby';
import spawn from 'cross-spawn';
export const cwd = path.resolve(__dirname, '..');
export function getWorkspaces() {
return globby(require('../package').workspaces, {
cwd,
deep: 0,
onlyDirectories: true,
expandDirectories: false,
});
}
export type DependencyType = 'dependencies' | 'devDependencies' | 'peerDependencies' | 'optionalDependencies'
export interface PackageJson extends Partial<Record<DependencyType, Record<string, string>>> {
name?: string
private?: boolean
version?: string
}
export function spawnSync(command: string, silent?: boolean) {
if (!silent) console.log(`$ ${command}`);
const args = command.split(/\s+/);
const result = spawn.sync(args[0], [...args.slice(1), '--color'], { cwd, encoding: 'utf8' });
if (result.status) {
throw new Error(result.stderr);
} else {
if (!silent) console.log(result.stdout);
return result.stdout.trim();
}
}
export function spawnAsync(command: string) {
const args = command.split(/\s+/);
const child = spawn(args[0], args.slice(1), { stdio: 'inherit' });
return new Promise((resolve, reject) => {
child.on('close', resolve);
});
}