Skip to content

Commit 753dbc2

Browse files
Add admin hoted app local spec
1 parent f4baca8 commit 753dbc2

File tree

4 files changed

+43
-2
lines changed

4 files changed

+43
-2
lines changed

packages/app/src/cli/models/extensions/extension-instance.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {PrivacyComplianceWebhooksSpecIdentifier} from './specifications/app_conf
1111
import {WebhooksSpecIdentifier} from './specifications/app_config_webhook.js'
1212
import {WebhookSubscriptionSpecIdentifier} from './specifications/app_config_webhook_subscription.js'
1313
import {EventsSpecIdentifier} from './specifications/app_config_events.js'
14+
import {AdminSpecIdentifier} from './specifications/admin.js'
1415
import {ExtensionBuildOptions, bundleFunctionExtension} from '../../services/build/extension.js'
1516
import {bundleThemeExtension} from '../../services/extensions/bundle.js'
1617
import {Identifiers} from '../app/identifiers.js'
@@ -41,9 +42,9 @@ export const CONFIG_EXTENSION_IDS: string[] = [
4142
WebhookSubscriptionSpecIdentifier,
4243
WebhooksSpecIdentifier,
4344
EventsSpecIdentifier,
45+
AdminSpecIdentifier,
4446
// Hardcoded identifiers that don't exist locally.
4547
'data',
46-
'admin',
4748
]
4849

4950
/**
@@ -541,6 +542,8 @@ export class ExtensionInstance<TConfiguration extends BaseConfigType = BaseConfi
541542
} else {
542543
return nonRandomUUID(JSON.stringify(this.configuration))
543544
}
545+
default:
546+
return this.specification.identifier
544547
}
545548
}
546549

packages/app/src/cli/models/extensions/load-specifications.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import uiExtensionSpec from './specifications/ui_extension.js'
2727
import webPixelSpec from './specifications/web_pixel_extension.js'
2828
import editorExtensionCollectionSpecification from './specifications/editor_extension_collection.js'
2929
import channelSpecificationSpec from './specifications/channel.js'
30+
import adminSpecificationSpec from './specifications/admin.js'
3031

3132
const SORTED_CONFIGURATION_SPEC_IDENTIFIERS = [
3233
BrandingSpecIdentifier,
@@ -61,6 +62,7 @@ function loadSpecifications() {
6162
appWebhooksSpec,
6263
appWebhookSubscriptionSpec,
6364
appEventsSpec,
65+
adminSpecificationSpec,
6466
]
6567
const moduleSpecs = [
6668
checkoutPostPurchaseSpec,

packages/app/src/cli/models/extensions/specification.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ export function createConfigExtensionSpecification<TConfiguration extends BaseCo
289289
export function createContractBasedModuleSpecification<TConfiguration extends BaseConfigType = BaseConfigType>(
290290
spec: Pick<
291291
CreateExtensionSpecType<TConfiguration>,
292-
'identifier' | 'appModuleFeatures' | 'buildConfig' | 'uidStrategy'
292+
'identifier' | 'appModuleFeatures' | 'clientSteps' | 'buildConfig' | 'uidStrategy'
293293
>,
294294
) {
295295
return createExtensionSpecification({
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import {createContractBasedModuleSpecification} from '../specification.js'
2+
3+
export const AdminSpecIdentifier = 'admin'
4+
5+
const adminSpecificationSpec = createContractBasedModuleSpecification({
6+
identifier: 'admin',
7+
uidStrategy: 'single',
8+
buildConfig: {
9+
mode: 'copy_files',
10+
filePatterns: [],
11+
},
12+
clientSteps: [
13+
{
14+
lifecycle: 'deploy',
15+
steps: [
16+
{
17+
id: 'hosted_app_copy_files',
18+
name: 'Hosted App Copy Files',
19+
type: 'include_assets',
20+
config: {
21+
generateManifest: true,
22+
inclusions: [
23+
{
24+
type: 'configKey',
25+
key: 'admin.static_root',
26+
},
27+
],
28+
},
29+
},
30+
],
31+
},
32+
],
33+
appModuleFeatures: () => [],
34+
})
35+
36+
export default adminSpecificationSpec

0 commit comments

Comments
 (0)