From 386af022c5f3f6cda16ccaf93de8e2f9ce59d6e4 Mon Sep 17 00:00:00 2001 From: Evan Hahn Date: Tue, 27 Aug 2024 13:46:57 -0500 Subject: [PATCH] feat: create projects as initial project (#772) You can now create a project and set its "is initial project?" value, like so: const projectId = manager.createProject({ isInitialProject: true }) --- src/mapeo-manager.js | 10 +++++++--- test-e2e/manager-basic.js | 3 ++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/mapeo-manager.js b/src/mapeo-manager.js index 268cfdd0b..73b1140f3 100644 --- a/src/mapeo-manager.js +++ b/src/mapeo-manager.js @@ -350,13 +350,17 @@ export class MapeoManager extends TypedEmitter { * Create a new project. * @param {( * import('type-fest').Simplify<( - * Partial> & + * Partial> & * { configPath?: string } * )> * )} [options] * @returns {Promise} Project public id */ - async createProject({ name, configPath = this.#defaultConfigPath } = {}) { + async createProject({ + name, + configPath = this.#defaultConfigPath, + isInitialProject = false, + } = {}) { // 1. Create project keypair const projectKeypair = KeyManager.generateProjectKeypair() @@ -401,7 +405,7 @@ export class MapeoManager extends TypedEmitter { }) // 5. Write project settings to project instance - await project.$setProjectSettings({ name }) + await project.$setProjectSettings({ name, isInitialProject }) // 6. Write device info into project const deviceInfo = this.getDeviceInfo() diff --git a/test-e2e/manager-basic.js b/test-e2e/manager-basic.js index 37dd576e8..e24bf0279 100644 --- a/test-e2e/manager-basic.js +++ b/test-e2e/manager-basic.js @@ -28,6 +28,7 @@ test('Managing created projects', async (t) => { const project1Id = await manager.createProject() const project2Id = await manager.createProject({ name: 'project 2', + isInitialProject: true, }) await t.test('initial information from listed projects', async () => { @@ -79,7 +80,7 @@ test('Managing created projects', async (t) => { name: 'project 2', defaultPresets: undefined, configMetadata: undefined, - isInitialProject: false, + isInitialProject: true, }, 'matched name for project2 with undefined default presets' )