From b55124d1a407668954834cad586465f48ef1fb17 Mon Sep 17 00:00:00 2001 From: Albert Pai Date: Tue, 7 May 2024 17:44:43 -0700 Subject: [PATCH] Add support for organizations, release v1.10.0 (#17) --- CHANGELOG.md | 3 +++ package-lock.json | 4 ++-- package.json | 2 +- src/interfaces.ts | 15 ++++++++++++--- src/params.ts | 5 ++++- test/unit/params.spec.ts | 4 ++++ 6 files changed, 26 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 708a205..a1f005a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # @stackblitz/sdk changelog +## v1.10.0 (2024-05-03) +- Added support for `organization` in `ProjectOptions` + ## v1.9.0 (2023-04-04) - Moved the StackBlitz SDK to a dedicated repository: https://github.com/stackblitz/sdk. diff --git a/package-lock.json b/package-lock.json index 5f3539e..3f78327 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@stackblitz/sdk", - "version": "1.9.0", + "version": "1.10.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@stackblitz/sdk", - "version": "1.9.0", + "version": "1.10.0", "license": "MIT", "devDependencies": { "@playwright/test": "^1.32.2", diff --git a/package.json b/package.json index 03cdfa3..ae44968 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@stackblitz/sdk", - "version": "1.9.0", + "version": "1.10.0", "description": "SDK for generating and embedding StackBlitz projects.", "license": "MIT", "author": "Eric Simons", diff --git a/src/interfaces.ts b/src/interfaces.ts index ac4f763..5df6c65 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -109,6 +109,15 @@ export interface ProjectOptions { * Defaults to `https://stackblitz.com`. */ origin?: string; + /** + * Set the organization where you want to run the project. + * + * Defaults to no organization. + */ + organization?: { + provider: 'github'; + name: string; + } /** * Show the sidebar as open or closed on page load. * @@ -121,7 +130,7 @@ export interface ProjectOptions { * Choose the sidebar view to open on project load. * * Available views: `project` (default), `search`, `ports` (WebContainers only) and `settings`. - * + * * @since 1.9.0 */ sidebarView?: UiSidebarView; @@ -140,7 +149,7 @@ export interface ProjectOptions { * startScript: 'build,serve' * * Defaults to looking for a `dev` script or a `start` script. Ignored in EngineBlock projects. - * + * * @since 1.9.0 */ startScript?: string; @@ -177,7 +186,7 @@ export interface OpenOptions extends ProjectOptions { * Opens the project with the editor UI partially hidden (known as “zen mode”). * * Defaults to `false`. - * + * * @since 1.9.0 */ zenMode?: boolean; diff --git a/src/params.ts b/src/params.ts index 094f920..e146e95 100644 --- a/src/params.ts +++ b/src/params.ts @@ -36,7 +36,9 @@ type ParamName = | 'terminalHeight' | 'theme' | 'view' - | 'zenMode'; + | 'zenMode' + | 'orgName' + | 'orgProvider'; export const generators: Record string> = { clickToLoad: (value: ParamOptions['clickToLoad']) => trueParam('ctl', value), @@ -54,6 +56,7 @@ export const generators: Record string> = { theme: (value: ParamOptions['theme']) => enumParam('theme', value, UI_THEMES), view: (value: ParamOptions['view']) => enumParam('view', value, UI_VIEWS), zenMode: (value: ParamOptions['zenMode']) => trueParam('zenMode', value), + organization: (value: ParamOptions['organization']) => `${stringParams('orgName', value?.name)}&${stringParams('orgProvider', value?.provider)}`, }; export function buildParams(options: ParamOptions = {}): string { diff --git a/test/unit/params.spec.ts b/test/unit/params.spec.ts index a1a8cdd..434ee05 100644 --- a/test/unit/params.spec.ts +++ b/test/unit/params.spec.ts @@ -84,6 +84,7 @@ describe('buildParams', () => { hideExplorer: false, hideNavigation: false, openFile: '', + organization: undefined, showSidebar: undefined, sidebarView: 'default', startScript: undefined, @@ -107,6 +108,7 @@ describe('buildParams', () => { hideExplorer: true, hideNavigation: true, openFile: ['src/index.js,src/styles.css', 'package.json'], + organization: {name: 'stackblitz', provider: 'github'}, showSidebar: true, sidebarView: 'search', startScript: 'dev:serve', @@ -129,6 +131,8 @@ describe('buildParams', () => { 'hideNavigation=1', 'file=src%2Findex.js%2Csrc%2Fstyles.css', 'file=package.json', + 'orgName=stackblitz', + 'orgProvider=github', 'showSidebar=1', 'sidebarView=search', 'startScript=dev%3Aserve',