Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/test-vp-create.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,11 @@ jobs:
download-previous-rolldown-binaries:
needs: detect-changes
runs-on: namespace-profile-linux-x64-default
# Run if: not a PR, OR PR has 'test: create-e2e' label, OR create-related files changed
# Run if: not a PR, OR PR has 'test: create-e2e' label, OR PR is from deps/upstream-update branch, OR create-related files changed
if: >-
github.event_name != 'pull_request' ||
contains(github.event.pull_request.labels.*.name, 'test: create-e2e') ||
github.head_ref == 'deps/upstream-update' ||
needs.detect-changes.outputs.related-files-changed == 'true'
permissions:
contents: read
Expand Down
18 changes: 17 additions & 1 deletion ecosystem-ci/patch-project.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ const repoRoot = join(ecosystemCiDir, project);
const repoConfig = repos[project as keyof typeof repos];
const directory = 'directory' in repoConfig ? repoConfig.directory : undefined;
const cwd = directory ? join(repoRoot, directory) : repoRoot;
const vitePlusTgz = `file:${tgzDir}/vite-plus-${vpVersion}.tgz`;
// run vp migrate
const cli = process.env.VP_CLI_BIN ?? 'vp';

Expand Down Expand Up @@ -62,6 +63,21 @@ execSync(`${cli} migrate --no-agent --no-interactive`, {
'@voidzero-dev/vite-plus-core': `file:${tgzDir}/voidzero-dev-vite-plus-core-${vpVersion}.tgz`,
'@voidzero-dev/vite-plus-test': `file:${tgzDir}/voidzero-dev-vite-plus-test-${vpVersion}.tgz`,
}),
VP_VERSION: `file:${tgzDir}/vite-plus-${vpVersion}.tgz`,
VP_VERSION: vitePlusTgz,
},
});

const packageJsonPath = join(cwd, 'package.json');
const packageJson = JSON.parse(await readFile(packageJsonPath, 'utf-8')) as {
dependencies?: Record<string, string>;
devDependencies?: Record<string, string>;
};

if (packageJson.dependencies?.['vite-plus']) {
packageJson.dependencies['vite-plus'] = vitePlusTgz;
} else {
packageJson.devDependencies ??= {};
packageJson.devDependencies['vite-plus'] = vitePlusTgz;
}

await writeFile(packageJsonPath, `${JSON.stringify(packageJson, null, 2)}\n`, 'utf-8');
55 changes: 50 additions & 5 deletions ecosystem-ci/verify-install.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { readFileSync } from 'node:fs';
import { createRequire } from 'node:module';
import path from 'node:path';

import cliPkg from '../packages/cli/package.json' with { type: 'json' };

Expand All @@ -7,13 +9,56 @@ const require = createRequire(`${process.cwd()}/`);
const expectedVersion = cliPkg.version;

try {
const pkg = require('vite-plus/package.json') as { version: string; name: string };
const pkgPath = require.resolve('vite-plus/package.json');
const pkg = require(pkgPath) as {
version: string;
name: string;
dependencies?: Record<string, string>;
};
if (pkg.version !== expectedVersion) {
console.error(` vite-plus: expected version ${expectedVersion}, got ${pkg.version}`);
console.error(`x vite-plus: expected version ${expectedVersion}, got ${pkg.version}`);
process.exit(1);
}
console.log(`✓ vite-plus@${pkg.version}`);
} catch {
console.error('✗ vite-plus: not installed');

const projectPkg = JSON.parse(
readFileSync(path.join(process.cwd(), 'package.json'), 'utf-8'),
) as {
dependencies?: Record<string, string>;
devDependencies?: Record<string, string>;
};
const vitePlusSpec =
projectPkg.dependencies?.['vite-plus'] ?? projectPkg.devDependencies?.['vite-plus'];

const isFileSpec = vitePlusSpec?.startsWith('file:') ?? false;
const isPnpmFileInstall = pkgPath.includes(`${path.sep}.pnpm${path.sep}vite-plus@file+`);
if (!isFileSpec && !isPnpmFileInstall) {
console.error(
`x vite-plus: expected local file: install, got spec ${vitePlusSpec ?? '<missing>'}`,
);
console.error(` resolved to ${pkgPath}`);
process.exit(1);
}

const vitePlusRequire = createRequire(pkgPath);
const oxlintPkgPath = vitePlusRequire.resolve('oxlint/package.json');
const oxlintPkg = vitePlusRequire('oxlint/package.json') as { version: string };
const expectedOxlint = pkg.dependencies?.oxlint?.replace(/^[=^~]/, '');
if (!expectedOxlint) {
console.error('x vite-plus: package.json missing oxlint dependency');
process.exit(1);
}
if (oxlintPkg.version !== expectedOxlint) {
console.error(`x oxlint: expected ${expectedOxlint}, got ${oxlintPkg.version}`);
console.error(` resolved to ${oxlintPkgPath}`);
process.exit(1);
}

console.log(`ok vite-plus@${pkg.version} (${vitePlusSpec ?? 'unknown spec'})`);
console.log(`ok oxlint@${oxlintPkg.version} from vite-plus dependency tree`);
} catch (error) {
console.error('x vite-plus: not installed or incomplete');
if (error instanceof Error) {
console.error(error.message);
}
process.exit(1);
}
66 changes: 66 additions & 0 deletions packages/cli/binding/index.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -765,6 +765,72 @@ if (!nativeBinding) {
}

module.exports = nativeBinding;
module.exports.minify = nativeBinding.minify;
module.exports.minifySync = nativeBinding.minifySync;
module.exports.Severity = nativeBinding.Severity;
module.exports.ParseResult = nativeBinding.ParseResult;
module.exports.ExportExportNameKind = nativeBinding.ExportExportNameKind;
module.exports.ExportImportNameKind = nativeBinding.ExportImportNameKind;
module.exports.ExportLocalNameKind = nativeBinding.ExportLocalNameKind;
module.exports.ImportNameKind = nativeBinding.ImportNameKind;
module.exports.parse = nativeBinding.parse;
module.exports.parseSync = nativeBinding.parseSync;
module.exports.rawTransferSupported = nativeBinding.rawTransferSupported;
module.exports.ResolverFactory = nativeBinding.ResolverFactory;
module.exports.EnforceExtension = nativeBinding.EnforceExtension;
module.exports.ModuleType = nativeBinding.ModuleType;
module.exports.sync = nativeBinding.sync;
module.exports.HelperMode = nativeBinding.HelperMode;
module.exports.isolatedDeclaration = nativeBinding.isolatedDeclaration;
module.exports.isolatedDeclarationSync = nativeBinding.isolatedDeclarationSync;
module.exports.moduleRunnerTransform = nativeBinding.moduleRunnerTransform;
module.exports.moduleRunnerTransformSync = nativeBinding.moduleRunnerTransformSync;
module.exports.transform = nativeBinding.transform;
module.exports.transformSync = nativeBinding.transformSync;
module.exports.BindingBundleEndEventData = nativeBinding.BindingBundleEndEventData;
module.exports.BindingBundleErrorEventData = nativeBinding.BindingBundleErrorEventData;
module.exports.BindingBundler = nativeBinding.BindingBundler;
module.exports.BindingCallableBuiltinPlugin = nativeBinding.BindingCallableBuiltinPlugin;
module.exports.BindingChunkingContext = nativeBinding.BindingChunkingContext;
module.exports.BindingDecodedMap = nativeBinding.BindingDecodedMap;
module.exports.BindingDevEngine = nativeBinding.BindingDevEngine;
module.exports.BindingLoadPluginContext = nativeBinding.BindingLoadPluginContext;
module.exports.BindingMagicString = nativeBinding.BindingMagicString;
module.exports.BindingModuleInfo = nativeBinding.BindingModuleInfo;
module.exports.BindingNormalizedOptions = nativeBinding.BindingNormalizedOptions;
module.exports.BindingOutputAsset = nativeBinding.BindingOutputAsset;
module.exports.BindingOutputChunk = nativeBinding.BindingOutputChunk;
module.exports.BindingPluginContext = nativeBinding.BindingPluginContext;
module.exports.BindingRenderedChunk = nativeBinding.BindingRenderedChunk;
module.exports.BindingRenderedChunkMeta = nativeBinding.BindingRenderedChunkMeta;
module.exports.BindingRenderedModule = nativeBinding.BindingRenderedModule;
module.exports.BindingSourceMap = nativeBinding.BindingSourceMap;
module.exports.BindingTransformPluginContext = nativeBinding.BindingTransformPluginContext;
module.exports.BindingWatcher = nativeBinding.BindingWatcher;
module.exports.BindingWatcherBundler = nativeBinding.BindingWatcherBundler;
module.exports.BindingWatcherChangeData = nativeBinding.BindingWatcherChangeData;
module.exports.BindingWatcherEvent = nativeBinding.BindingWatcherEvent;
module.exports.ParallelJsPluginRegistry = nativeBinding.ParallelJsPluginRegistry;
module.exports.ScheduledBuild = nativeBinding.ScheduledBuild;
module.exports.TraceSubscriberGuard = nativeBinding.TraceSubscriberGuard;
module.exports.TsconfigCache = nativeBinding.TsconfigCache;
module.exports.BindingAttachDebugInfo = nativeBinding.BindingAttachDebugInfo;
module.exports.BindingBuiltinPluginName = nativeBinding.BindingBuiltinPluginName;
module.exports.BindingChunkModuleOrderBy = nativeBinding.BindingChunkModuleOrderBy;
module.exports.BindingLogLevel = nativeBinding.BindingLogLevel;
module.exports.BindingPluginOrder = nativeBinding.BindingPluginOrder;
module.exports.BindingPropertyReadSideEffects = nativeBinding.BindingPropertyReadSideEffects;
module.exports.BindingPropertyWriteSideEffects = nativeBinding.BindingPropertyWriteSideEffects;
module.exports.BindingRebuildStrategy = nativeBinding.BindingRebuildStrategy;
module.exports.collapseSourcemaps = nativeBinding.collapseSourcemaps;
module.exports.enhancedTransform = nativeBinding.enhancedTransform;
module.exports.enhancedTransformSync = nativeBinding.enhancedTransformSync;
module.exports.FilterTokenKind = nativeBinding.FilterTokenKind;
module.exports.initTraceSubscriber = nativeBinding.initTraceSubscriber;
module.exports.registerPlugins = nativeBinding.registerPlugins;
module.exports.resolveTsconfig = nativeBinding.resolveTsconfig;
module.exports.shutdownAsyncRuntime = nativeBinding.shutdownAsyncRuntime;
module.exports.startAsyncRuntime = nativeBinding.startAsyncRuntime;
module.exports.detectWorkspace = nativeBinding.detectWorkspace;
module.exports.downloadPackageManager = nativeBinding.downloadPackageManager;
module.exports.hasConfigKey = nativeBinding.hasConfigKey;
Expand Down
Loading
Loading