diff --git a/packages/cli/src/commands/generate/package/packageHandler.js b/packages/cli/src/commands/generate/package/packageHandler.js index a10edd9c82..55343311fe 100644 --- a/packages/cli/src/commands/generate/package/packageHandler.js +++ b/packages/cli/src/commands/generate/package/packageHandler.js @@ -4,8 +4,10 @@ import path from 'node:path' import { paramCase, camelCase } from 'change-case' import execa from 'execa' import { Listr } from 'listr2' +import { terminalLink } from 'termi-link' import { recordTelemetryAttributes } from '@cedarjs/cli-helpers' +import { getConfig } from '@cedarjs/project-config' import { errorTelemetry } from '@cedarjs/telemetry' import c from '../../../lib/colors.js' @@ -120,6 +122,22 @@ export const handler = async ({ name, force, ...rest }) => { ) } + if (!getConfig().experimental.packagesWorkspace.enabled) { + const releaseNotes = terminalLink( + 'release notes', + 'https://github.com/cedarjs/cedar/releases', + ) + + console.error( + 'This is an experimental feature. Please enable it in your ' + + 'redwood.toml file and then run this command again.', + ) + console.error() + console.error(`See the ${releaseNotes} for instructions on how to enable.`) + + return + } + let packageFiles = {} const tasks = new Listr( /** @type {import('listr2').ListrTask[]} */ ([ diff --git a/packages/project-config/src/__tests__/config.test.ts b/packages/project-config/src/__tests__/config.test.ts index 87f11e20db..48c7947a83 100644 --- a/packages/project-config/src/__tests__/config.test.ts +++ b/packages/project-config/src/__tests__/config.test.ts @@ -60,6 +60,9 @@ describe('getConfig', () => { "enabled": false, "wrapApi": true, }, + "packagesWorkspace": { + "enabled": false, + }, "reactCompiler": { "enabled": false, "lintOnly": false, diff --git a/packages/project-config/src/config.ts b/packages/project-config/src/config.ts index 97c057c9e8..927cd2c73c 100644 --- a/packages/project-config/src/config.ts +++ b/packages/project-config/src/config.ts @@ -119,6 +119,9 @@ export interface Config { enabled: boolean lintOnly: boolean } + packagesWorkspace: { + enabled: boolean + } } eslintLegacyConfigWarning: boolean } @@ -206,6 +209,9 @@ export const DEFAULT_CONFIG: Config = { enabled: false, lintOnly: false, }, + packagesWorkspace: { + enabled: false, + }, }, eslintLegacyConfigWarning: true, }