create-foldkit-app 0.27.2 → 0.27.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/commands/create.js
CHANGED
|
@@ -84,9 +84,9 @@ const setupProject = (name, projectPath, scaffold, packageManager) => Effect.gen
|
|
|
84
84
|
yield* Console.log(chalk.green(`✅ Created project`));
|
|
85
85
|
yield* Console.log('');
|
|
86
86
|
});
|
|
87
|
-
const installProjectDependencies = (projectPath, packageManager, scaffold) => Effect.gen(function* () {
|
|
87
|
+
const installProjectDependencies = (projectPath, packageManager, scaffold, maybeDependencyManifestsDirectory) => Effect.gen(function* () {
|
|
88
88
|
yield* Console.log(chalk.blue(`📦 Installing dependencies with ${packageManager}...`));
|
|
89
|
-
yield* installDependencies(projectPath, packageManager, scaffold);
|
|
89
|
+
yield* installDependencies(projectPath, packageManager, scaffold, maybeDependencyManifestsDirectory);
|
|
90
90
|
yield* Console.log(chalk.green('✅ Dependencies installed'));
|
|
91
91
|
yield* Console.log('');
|
|
92
92
|
});
|
|
@@ -132,10 +132,14 @@ const displaySuccessMessage = (name, packageManager) => Effect.gen(function* ()
|
|
|
132
132
|
export const create = (input) => Effect.gen(function* () {
|
|
133
133
|
const { name, scaffold, packageManager } = yield* resolveInput(input);
|
|
134
134
|
const path = yield* Path.Path;
|
|
135
|
+
if (Option.isSome(input.maybeDependencyManifestsDirectory) &&
|
|
136
|
+
!path.isAbsolute(input.maybeDependencyManifestsDirectory.value)) {
|
|
137
|
+
return yield* Effect.fail('CREATE_FOLDKIT_APP_DEPENDENCY_MANIFESTS_DIRECTORY must be an absolute path.');
|
|
138
|
+
}
|
|
135
139
|
const projectPath = path.resolve(name);
|
|
136
140
|
yield* validateProject(name, projectPath, packageManager);
|
|
137
141
|
yield* setupProject(name, projectPath, scaffold, packageManager);
|
|
138
|
-
yield* installProjectDependencies(projectPath, packageManager, scaffold);
|
|
142
|
+
yield* installProjectDependencies(projectPath, packageManager, scaffold, input.maybeDependencyManifestsDirectory);
|
|
139
143
|
yield* displaySuccessMessage(name, packageManager);
|
|
140
144
|
return name;
|
|
141
145
|
});
|
package/dist/index.js
CHANGED
|
@@ -23,12 +23,13 @@ const packageManager = Flag.choice('package-manager', [
|
|
|
23
23
|
'yarn',
|
|
24
24
|
'bun',
|
|
25
25
|
]).pipe(Flag.withAlias('p'), Flag.withDescription('The package manager to use for installing dependencies'), Flag.optional);
|
|
26
|
+
const maybeDependencyManifestsDirectory = Option.fromNullishOr(process.env['CREATE_FOLDKIT_APP_DEPENDENCY_MANIFESTS_DIRECTORY']);
|
|
26
27
|
const create = Command.make('create', {
|
|
27
28
|
name,
|
|
28
29
|
rendering,
|
|
29
30
|
example,
|
|
30
31
|
packageManager,
|
|
31
|
-
}, create_).pipe(Command.withDescription('Create a new Foldkit application'));
|
|
32
|
+
}, input => create_({ ...input, maybeDependencyManifestsDirectory })).pipe(Command.withDescription('Create a new Foldkit application'));
|
|
32
33
|
const cli = Command.run(create, {
|
|
33
34
|
version: packageJson.version,
|
|
34
35
|
});
|
package/dist/utils/packages.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Array, Data, Effect, FileSystem, Match, Order, Path, Record, Result, Schema, pipe, } from 'effect';
|
|
1
|
+
import { Array, Data, Effect, FileSystem, Match, Option, Order, Path, Record, Result, Schema, pipe, } from 'effect';
|
|
2
2
|
import { HttpClient, HttpClientRequest } from 'effect/unstable/http';
|
|
3
3
|
import { spawn } from 'node:child_process';
|
|
4
4
|
export const installCommand = (packageManager) => `${packageManager} install`;
|
|
@@ -122,6 +122,15 @@ const fetchExamplePackageJson = (example) => Effect.gen(function* () {
|
|
|
122
122
|
const json = yield* response.json;
|
|
123
123
|
return yield* Schema.decodeUnknownEffect(PackageJson)(json);
|
|
124
124
|
});
|
|
125
|
+
const readExamplePackageJson = (example, maybeDependencyManifestsDirectory) => Option.match(maybeDependencyManifestsDirectory, {
|
|
126
|
+
onNone: () => fetchExamplePackageJson(example),
|
|
127
|
+
onSome: directory => Effect.gen(function* () {
|
|
128
|
+
const fs = yield* FileSystem.FileSystem;
|
|
129
|
+
const path = yield* Path.Path;
|
|
130
|
+
const content = yield* fs.readFileString(path.join(directory, example, 'package.json'));
|
|
131
|
+
return yield* Schema.decodeUnknownEffect(PackageJson)(JSON.parse(content));
|
|
132
|
+
}),
|
|
133
|
+
});
|
|
125
134
|
const writeManifest = (projectPath, dependencies, devDependencies) => Effect.gen(function* () {
|
|
126
135
|
const fs = yield* FileSystem.FileSystem;
|
|
127
136
|
const path = yield* Path.Path;
|
|
@@ -159,8 +168,8 @@ const runCommand = (command, args, cwd) => Effect.callback((resume) => {
|
|
|
159
168
|
}
|
|
160
169
|
});
|
|
161
170
|
});
|
|
162
|
-
export const installDependencies = (projectPath, packageManager, scaffold) => Effect.gen(function* () {
|
|
163
|
-
const examplePackageJson = yield*
|
|
171
|
+
export const installDependencies = (projectPath, packageManager, scaffold, maybeDependencyManifestsDirectory) => Effect.gen(function* () {
|
|
172
|
+
const examplePackageJson = yield* readExamplePackageJson(dependencyExample(scaffold), maybeDependencyManifestsDirectory);
|
|
164
173
|
const dependencies = yield* resolveSpecs(buildUnresolvedDeps(examplePackageJson.dependencies));
|
|
165
174
|
const devDependencies = yield* resolveSpecs(buildUnresolvedDevDeps(examplePackageJson.devDependencies, scaffoldDevDependencies(scaffold)));
|
|
166
175
|
yield* writeManifest(projectPath, sortDependencies(dependencies), sortDependencies(devDependencies));
|
package/package.json
CHANGED
package/templates/base/README.md
CHANGED