@swiftbrowser/cli 0.2.0 → 0.3.1
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 +11 -2
- package/dist/build.d.ts +10 -0
- package/dist/build.js +32 -2
- package/dist/build.js.map +1 -1
- package/dist/cli.d.ts +2 -1
- package/dist/cli.js +9 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.js +5 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/shared.d.ts +4 -1
- package/dist/commands/shared.js +4 -3
- package/dist/commands/shared.js.map +1 -1
- package/dist/commands/test.d.ts +22 -0
- package/dist/commands/test.js +95 -0
- package/dist/commands/test.js.map +1 -0
- package/dist/project.d.ts +52 -0
- package/dist/project.js +66 -2
- package/dist/project.js.map +1 -1
- package/dist/stage.d.ts +21 -2
- package/dist/stage.js +75 -13
- package/dist/stage.js.map +1 -1
- package/dist/template.d.ts +11 -1
- package/dist/template.js +248 -8
- package/dist/template.js.map +1 -1
- package/dist/testRunner.d.ts +1 -0
- package/dist/testRunner.js +44 -0
- package/dist/testRunner.js.map +1 -0
- package/package.json +5 -5
package/dist/template.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// The new-project template behind `swiftbrowser init`: an iOS SwiftUI app as
|
|
2
|
-
// Xcode 16's App template lays it out
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
2
|
+
// Xcode 16's App template lays it out with "Include Tests" (an app target and
|
|
3
|
+
// a Swift Testing unit-test target, each with a synchronized folder; an asset
|
|
4
|
+
// catalog), so the same project opens in Xcode, runs with `swiftbrowser dev`
|
|
5
|
+
// and tests with `swiftbrowser test` or ⌘U. Everything here is pure:
|
|
6
|
+
// `projectFiles` returns the files to write, and commands/init.ts writes them.
|
|
6
7
|
import { createHash } from 'node:crypto';
|
|
7
8
|
/** A Swift type name: a letter, then letters and digits. The app's struct is `<name>App`. */
|
|
8
9
|
export const APP_NAME = /^[A-Za-z][A-Za-z0-9]*$/;
|
|
@@ -33,6 +34,8 @@ export function projectFiles(options) {
|
|
|
33
34
|
{ path: `${name}/Assets.xcassets/Contents.json`, contents: json(CATALOG_INFO) },
|
|
34
35
|
{ path: `${name}/Assets.xcassets/AccentColor.colorset/Contents.json`, contents: json(ACCENT_COLOR) },
|
|
35
36
|
{ path: `${name}/Assets.xcassets/AppIcon.appiconset/Contents.json`, contents: json(APP_ICON) },
|
|
37
|
+
{ path: `${name}Tests/${name}Tests.swift`, contents: testSource(name) },
|
|
38
|
+
{ path: `${name}.xcodeproj/xcshareddata/xcschemes/${name}.xcscheme`, contents: scheme(name) },
|
|
36
39
|
];
|
|
37
40
|
}
|
|
38
41
|
/** The lines a new project's `.gitignore` holds (merged into an existing one). */
|
|
@@ -67,8 +70,11 @@ A SwiftUI app that runs on iOS and, with [SwiftBrowser](https://github.com/noya-
|
|
|
67
70
|
(\`--host\` to open it on a phone on the same network).
|
|
68
71
|
- \`npx @swiftbrowser/cli check .\` compiles it against SwiftBrowser in seconds;
|
|
69
72
|
\`npx @swiftbrowser/cli build .\` writes a static site to \`dist/\`.
|
|
73
|
+
- Tests: \`npx @swiftbrowser/cli test .\` runs \`${name}Tests/\` in WebAssembly, as the
|
|
74
|
+
browser runs the app; ⌘U runs the same tests in Xcode.
|
|
70
75
|
|
|
71
|
-
Add Swift files anywhere under \`${name}
|
|
76
|
+
Add Swift files anywhere under \`${name}/\` (tests under \`${name}Tests/\`): Xcode and
|
|
77
|
+
SwiftBrowser both pick them up.
|
|
72
78
|
`;
|
|
73
79
|
}
|
|
74
80
|
function appSource(name) {
|
|
@@ -95,19 +101,40 @@ struct ContentView: View {
|
|
|
95
101
|
.imageScale(.large)
|
|
96
102
|
.foregroundStyle(.tint)
|
|
97
103
|
Text("Hello, world!")
|
|
98
|
-
Button(
|
|
104
|
+
Button(Self.tapCount(taps)) {
|
|
99
105
|
taps += 1
|
|
100
106
|
}
|
|
101
107
|
.buttonStyle(.borderedProminent)
|
|
102
108
|
}
|
|
103
109
|
.padding()
|
|
104
110
|
}
|
|
111
|
+
|
|
112
|
+
/// The button's title after \`taps\` taps (checked by the tests).
|
|
113
|
+
static func tapCount(_ taps: Int) -> String {
|
|
114
|
+
taps == 1 ? "Tapped once" : "Tapped \\(taps) times"
|
|
115
|
+
}
|
|
105
116
|
}
|
|
106
117
|
|
|
107
118
|
#Preview {
|
|
108
119
|
ContentView()
|
|
109
120
|
}
|
|
110
121
|
`;
|
|
122
|
+
function testSource(name) {
|
|
123
|
+
return `import Testing
|
|
124
|
+
@testable import ${name}
|
|
125
|
+
|
|
126
|
+
// Swift Testing, as Xcode's template writes it: \`swiftbrowser test\` runs
|
|
127
|
+
// these in WebAssembly, ⌘U in the iOS Simulator.
|
|
128
|
+
@MainActor
|
|
129
|
+
struct ${name}Tests {
|
|
130
|
+
@Test func tapCountReadsNaturally() {
|
|
131
|
+
#expect(ContentView.tapCount(0) == "Tapped 0 times")
|
|
132
|
+
#expect(ContentView.tapCount(1) == "Tapped once")
|
|
133
|
+
#expect(ContentView.tapCount(2) == "Tapped 2 times")
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
`;
|
|
137
|
+
}
|
|
111
138
|
const WORKSPACE = `<?xml version="1.0" encoding="UTF-8"?>
|
|
112
139
|
<Workspace
|
|
113
140
|
version = "1.0">
|
|
@@ -122,7 +149,7 @@ const CATALOG_INFO = { info: { author: 'xcode', version: 1 } };
|
|
|
122
149
|
const ACCENT_COLOR = {
|
|
123
150
|
colors: [
|
|
124
151
|
{
|
|
125
|
-
color: { 'color-space': 'srgb', components: { alpha: '1.000', blue: '1.000', green: '0.
|
|
152
|
+
color: { 'color-space': 'srgb', components: { alpha: '1.000', blue: '1.000', green: '0.533', red: '0.000' } },
|
|
126
153
|
idiom: 'universal',
|
|
127
154
|
},
|
|
128
155
|
],
|
|
@@ -136,16 +163,115 @@ const APP_ICON = {
|
|
|
136
163
|
],
|
|
137
164
|
info: { author: 'xcode', version: 1 },
|
|
138
165
|
};
|
|
166
|
+
/**
|
|
167
|
+
* The app's shared scheme: builds and runs the app, and tests `<name>Tests`
|
|
168
|
+
* (⌘U, `xcodebuild test -scheme <name>`). Xcode would make one per user on
|
|
169
|
+
* first open; a shared one gives every checkout, and CI, the same test action.
|
|
170
|
+
*/
|
|
171
|
+
export function scheme(name) {
|
|
172
|
+
const reference = (target, product) => `<BuildableReference
|
|
173
|
+
BuildableIdentifier = "primary"
|
|
174
|
+
BlueprintIdentifier = "${objectId(name, target)}"
|
|
175
|
+
BuildableName = "${product}"
|
|
176
|
+
BlueprintName = "${product.replace(/\.[a-z]+$/, '')}"
|
|
177
|
+
ReferencedContainer = "container:${name}.xcodeproj">
|
|
178
|
+
</BuildableReference>`;
|
|
179
|
+
const app = reference('target', `${name}.app`);
|
|
180
|
+
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
181
|
+
<Scheme
|
|
182
|
+
LastUpgradeVersion = "1600"
|
|
183
|
+
version = "1.7">
|
|
184
|
+
<BuildAction
|
|
185
|
+
parallelizeBuildables = "YES"
|
|
186
|
+
buildImplicitDependencies = "YES"
|
|
187
|
+
buildArchitectures = "Automatic">
|
|
188
|
+
<BuildActionEntries>
|
|
189
|
+
<BuildActionEntry
|
|
190
|
+
buildForTesting = "YES"
|
|
191
|
+
buildForRunning = "YES"
|
|
192
|
+
buildForProfiling = "YES"
|
|
193
|
+
buildForArchiving = "YES"
|
|
194
|
+
buildForAnalyzing = "YES">
|
|
195
|
+
${app}
|
|
196
|
+
</BuildActionEntry>
|
|
197
|
+
</BuildActionEntries>
|
|
198
|
+
</BuildAction>
|
|
199
|
+
<TestAction
|
|
200
|
+
buildConfiguration = "Debug"
|
|
201
|
+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
202
|
+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
203
|
+
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
204
|
+
shouldAutocreateTestPlan = "YES">
|
|
205
|
+
<Testables>
|
|
206
|
+
<TestableReference
|
|
207
|
+
skipped = "NO"
|
|
208
|
+
parallelizable = "YES">
|
|
209
|
+
${reference('tests-target', `${name}Tests.xctest`)}
|
|
210
|
+
</TestableReference>
|
|
211
|
+
</Testables>
|
|
212
|
+
</TestAction>
|
|
213
|
+
<LaunchAction
|
|
214
|
+
buildConfiguration = "Debug"
|
|
215
|
+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
216
|
+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
217
|
+
launchStyle = "0"
|
|
218
|
+
useCustomWorkingDirectory = "NO"
|
|
219
|
+
ignoresPersistentStateOnLaunch = "NO"
|
|
220
|
+
debugDocumentVersioning = "YES"
|
|
221
|
+
debugServiceExtension = "internal"
|
|
222
|
+
allowLocationSimulation = "YES">
|
|
223
|
+
<BuildableProductRunnable
|
|
224
|
+
runnableDebuggingMode = "0">
|
|
225
|
+
${app}
|
|
226
|
+
</BuildableProductRunnable>
|
|
227
|
+
</LaunchAction>
|
|
228
|
+
<ProfileAction
|
|
229
|
+
buildConfiguration = "Release"
|
|
230
|
+
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
231
|
+
savedToolIdentifier = ""
|
|
232
|
+
useCustomWorkingDirectory = "NO"
|
|
233
|
+
debugDocumentVersioning = "YES">
|
|
234
|
+
<BuildableProductRunnable
|
|
235
|
+
runnableDebuggingMode = "0">
|
|
236
|
+
${app}
|
|
237
|
+
</BuildableProductRunnable>
|
|
238
|
+
</ProfileAction>
|
|
239
|
+
<AnalyzeAction
|
|
240
|
+
buildConfiguration = "Debug">
|
|
241
|
+
</AnalyzeAction>
|
|
242
|
+
<ArchiveAction
|
|
243
|
+
buildConfiguration = "Release"
|
|
244
|
+
revealArchiveInOrganizer = "YES">
|
|
245
|
+
</ArchiveAction>
|
|
246
|
+
</Scheme>
|
|
247
|
+
`;
|
|
248
|
+
}
|
|
139
249
|
/** A pbxproj object id: 24 hex digits, stable for a name and role. */
|
|
140
250
|
function objectId(name, role) {
|
|
141
251
|
return createHash('sha1').update(`${name}/${role}`).digest('hex').slice(0, 24).toUpperCase();
|
|
142
252
|
}
|
|
143
|
-
/**
|
|
253
|
+
/**
|
|
254
|
+
* Xcode 16's iOS App template with "Include Tests" (objectVersion 77,
|
|
255
|
+
* synchronized root groups) without its UI tests, named `name`: the app
|
|
256
|
+
* target and `<name>Tests`, a unit-test bundle hosted by the app.
|
|
257
|
+
*/
|
|
144
258
|
export function pbxproj(name, bundleId) {
|
|
145
259
|
const id = (role) => objectId(name, role);
|
|
146
260
|
const app = id('product');
|
|
147
261
|
const folder = id('folder');
|
|
148
262
|
const frameworks = id('frameworks');
|
|
263
|
+
const tests = `${name}Tests`;
|
|
264
|
+
const testBundle = id('tests-product');
|
|
265
|
+
const testFolder = id('tests-folder');
|
|
266
|
+
const testFrameworks = id('tests-frameworks');
|
|
267
|
+
const testTarget = id('tests-target');
|
|
268
|
+
const testConfigs = id('tests-configs');
|
|
269
|
+
const testSources = id('tests-sources');
|
|
270
|
+
const testResources = id('tests-resources');
|
|
271
|
+
const testDebug = id('tests-debug');
|
|
272
|
+
const testRelease = id('tests-release');
|
|
273
|
+
const testDependency = id('tests-dependency');
|
|
274
|
+
const testProxy = id('tests-proxy');
|
|
149
275
|
const mainGroup = id('main-group');
|
|
150
276
|
const products = id('products');
|
|
151
277
|
const target = id('target');
|
|
@@ -253,6 +379,22 @@ export function pbxproj(name, bundleId) {
|
|
|
253
379
|
]
|
|
254
380
|
.map(([key, value]) => `\t\t\t\t${key} = ${value};`)
|
|
255
381
|
.join('\n');
|
|
382
|
+
// The test bundle loads into the app (TEST_HOST), so `@testable import` sees its internals.
|
|
383
|
+
const testSettings = [
|
|
384
|
+
['BUNDLE_LOADER', '"$(TEST_HOST)"'],
|
|
385
|
+
['CODE_SIGN_STYLE', 'Automatic'],
|
|
386
|
+
['CURRENT_PROJECT_VERSION', '1'],
|
|
387
|
+
['GENERATE_INFOPLIST_FILE', 'YES'],
|
|
388
|
+
['MARKETING_VERSION', '1.0'],
|
|
389
|
+
['PRODUCT_BUNDLE_IDENTIFIER', quoted(`${bundleId}Tests`)],
|
|
390
|
+
['PRODUCT_NAME', '"$(TARGET_NAME)"'],
|
|
391
|
+
['SWIFT_EMIT_LOC_STRINGS', 'NO'],
|
|
392
|
+
['SWIFT_VERSION', '5.0'],
|
|
393
|
+
['TARGETED_DEVICE_FAMILY', '"1,2"'],
|
|
394
|
+
['TEST_HOST', `"$(BUILT_PRODUCTS_DIR)/${name}.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/${name}"`],
|
|
395
|
+
]
|
|
396
|
+
.map(([key, value]) => `\t\t\t\t${key} = ${value};`)
|
|
397
|
+
.join('\n');
|
|
256
398
|
return `// !$*UTF8*$!
|
|
257
399
|
{
|
|
258
400
|
archiveVersion = 1;
|
|
@@ -261,8 +403,19 @@ export function pbxproj(name, bundleId) {
|
|
|
261
403
|
objectVersion = 77;
|
|
262
404
|
objects = {
|
|
263
405
|
|
|
406
|
+
/* Begin PBXContainerItemProxy section */
|
|
407
|
+
${testProxy} /* PBXContainerItemProxy */ = {
|
|
408
|
+
isa = PBXContainerItemProxy;
|
|
409
|
+
containerPortal = ${project} /* Project object */;
|
|
410
|
+
proxyType = 1;
|
|
411
|
+
remoteGlobalIDString = ${target};
|
|
412
|
+
remoteInfo = ${name};
|
|
413
|
+
};
|
|
414
|
+
/* End PBXContainerItemProxy section */
|
|
415
|
+
|
|
264
416
|
/* Begin PBXFileReference section */
|
|
265
417
|
${app} /* ${name}.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ${name}.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
418
|
+
${testBundle} /* ${tests}.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ${tests}.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
266
419
|
/* End PBXFileReference section */
|
|
267
420
|
|
|
268
421
|
/* Begin PBXFileSystemSynchronizedRootGroup section */
|
|
@@ -271,6 +424,11 @@ export function pbxproj(name, bundleId) {
|
|
|
271
424
|
path = ${name};
|
|
272
425
|
sourceTree = "<group>";
|
|
273
426
|
};
|
|
427
|
+
${testFolder} /* ${tests} */ = {
|
|
428
|
+
isa = PBXFileSystemSynchronizedRootGroup;
|
|
429
|
+
path = ${tests};
|
|
430
|
+
sourceTree = "<group>";
|
|
431
|
+
};
|
|
274
432
|
/* End PBXFileSystemSynchronizedRootGroup section */
|
|
275
433
|
|
|
276
434
|
/* Begin PBXFrameworksBuildPhase section */
|
|
@@ -281,6 +439,13 @@ export function pbxproj(name, bundleId) {
|
|
|
281
439
|
);
|
|
282
440
|
runOnlyForDeploymentPostprocessing = 0;
|
|
283
441
|
};
|
|
442
|
+
${testFrameworks} /* Frameworks */ = {
|
|
443
|
+
isa = PBXFrameworksBuildPhase;
|
|
444
|
+
buildActionMask = 2147483647;
|
|
445
|
+
files = (
|
|
446
|
+
);
|
|
447
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
448
|
+
};
|
|
284
449
|
/* End PBXFrameworksBuildPhase section */
|
|
285
450
|
|
|
286
451
|
/* Begin PBXGroup section */
|
|
@@ -288,6 +453,7 @@ export function pbxproj(name, bundleId) {
|
|
|
288
453
|
isa = PBXGroup;
|
|
289
454
|
children = (
|
|
290
455
|
${folder} /* ${name} */,
|
|
456
|
+
${testFolder} /* ${tests} */,
|
|
291
457
|
${products} /* Products */,
|
|
292
458
|
);
|
|
293
459
|
sourceTree = "<group>";
|
|
@@ -296,6 +462,7 @@ export function pbxproj(name, bundleId) {
|
|
|
296
462
|
isa = PBXGroup;
|
|
297
463
|
children = (
|
|
298
464
|
${app} /* ${name}.app */,
|
|
465
|
+
${testBundle} /* ${tests}.xctest */,
|
|
299
466
|
);
|
|
300
467
|
name = Products;
|
|
301
468
|
sourceTree = "<group>";
|
|
@@ -325,6 +492,29 @@ export function pbxproj(name, bundleId) {
|
|
|
325
492
|
productReference = ${app} /* ${name}.app */;
|
|
326
493
|
productType = "com.apple.product-type.application";
|
|
327
494
|
};
|
|
495
|
+
${testTarget} /* ${tests} */ = {
|
|
496
|
+
isa = PBXNativeTarget;
|
|
497
|
+
buildConfigurationList = ${testConfigs} /* Build configuration list for PBXNativeTarget "${tests}" */;
|
|
498
|
+
buildPhases = (
|
|
499
|
+
${testSources} /* Sources */,
|
|
500
|
+
${testFrameworks} /* Frameworks */,
|
|
501
|
+
${testResources} /* Resources */,
|
|
502
|
+
);
|
|
503
|
+
buildRules = (
|
|
504
|
+
);
|
|
505
|
+
dependencies = (
|
|
506
|
+
${testDependency} /* PBXTargetDependency */,
|
|
507
|
+
);
|
|
508
|
+
fileSystemSynchronizedGroups = (
|
|
509
|
+
${testFolder} /* ${tests} */,
|
|
510
|
+
);
|
|
511
|
+
name = ${tests};
|
|
512
|
+
packageProductDependencies = (
|
|
513
|
+
);
|
|
514
|
+
productName = ${tests};
|
|
515
|
+
productReference = ${testBundle} /* ${tests}.xctest */;
|
|
516
|
+
productType = "com.apple.product-type.bundle.unit-test";
|
|
517
|
+
};
|
|
328
518
|
/* End PBXNativeTarget section */
|
|
329
519
|
|
|
330
520
|
/* Begin PBXProject section */
|
|
@@ -338,6 +528,10 @@ export function pbxproj(name, bundleId) {
|
|
|
338
528
|
${target} = {
|
|
339
529
|
CreatedOnToolsVersion = 16.0;
|
|
340
530
|
};
|
|
531
|
+
${testTarget} = {
|
|
532
|
+
CreatedOnToolsVersion = 16.0;
|
|
533
|
+
TestTargetID = ${target};
|
|
534
|
+
};
|
|
341
535
|
};
|
|
342
536
|
};
|
|
343
537
|
buildConfigurationList = ${projectConfigs} /* Build configuration list for PBXProject "${name}" */;
|
|
@@ -355,6 +549,7 @@ export function pbxproj(name, bundleId) {
|
|
|
355
549
|
projectRoot = "";
|
|
356
550
|
targets = (
|
|
357
551
|
${target} /* ${name} */,
|
|
552
|
+
${testTarget} /* ${tests} */,
|
|
358
553
|
);
|
|
359
554
|
};
|
|
360
555
|
/* End PBXProject section */
|
|
@@ -367,6 +562,13 @@ export function pbxproj(name, bundleId) {
|
|
|
367
562
|
);
|
|
368
563
|
runOnlyForDeploymentPostprocessing = 0;
|
|
369
564
|
};
|
|
565
|
+
${testResources} /* Resources */ = {
|
|
566
|
+
isa = PBXResourcesBuildPhase;
|
|
567
|
+
buildActionMask = 2147483647;
|
|
568
|
+
files = (
|
|
569
|
+
);
|
|
570
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
571
|
+
};
|
|
370
572
|
/* End PBXResourcesBuildPhase section */
|
|
371
573
|
|
|
372
574
|
/* Begin PBXSourcesBuildPhase section */
|
|
@@ -377,8 +579,23 @@ export function pbxproj(name, bundleId) {
|
|
|
377
579
|
);
|
|
378
580
|
runOnlyForDeploymentPostprocessing = 0;
|
|
379
581
|
};
|
|
582
|
+
${testSources} /* Sources */ = {
|
|
583
|
+
isa = PBXSourcesBuildPhase;
|
|
584
|
+
buildActionMask = 2147483647;
|
|
585
|
+
files = (
|
|
586
|
+
);
|
|
587
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
588
|
+
};
|
|
380
589
|
/* End PBXSourcesBuildPhase section */
|
|
381
590
|
|
|
591
|
+
/* Begin PBXTargetDependency section */
|
|
592
|
+
${testDependency} /* PBXTargetDependency */ = {
|
|
593
|
+
isa = PBXTargetDependency;
|
|
594
|
+
target = ${target} /* ${name} */;
|
|
595
|
+
targetProxy = ${testProxy} /* PBXContainerItemProxy */;
|
|
596
|
+
};
|
|
597
|
+
/* End PBXTargetDependency section */
|
|
598
|
+
|
|
382
599
|
/* Begin XCBuildConfiguration section */
|
|
383
600
|
${projectDebug} /* Debug */ = {
|
|
384
601
|
isa = XCBuildConfiguration;
|
|
@@ -408,6 +625,20 @@ ${targetSettings}
|
|
|
408
625
|
};
|
|
409
626
|
name = Release;
|
|
410
627
|
};
|
|
628
|
+
${testDebug} /* Debug */ = {
|
|
629
|
+
isa = XCBuildConfiguration;
|
|
630
|
+
buildSettings = {
|
|
631
|
+
${testSettings}
|
|
632
|
+
};
|
|
633
|
+
name = Debug;
|
|
634
|
+
};
|
|
635
|
+
${testRelease} /* Release */ = {
|
|
636
|
+
isa = XCBuildConfiguration;
|
|
637
|
+
buildSettings = {
|
|
638
|
+
${testSettings}
|
|
639
|
+
};
|
|
640
|
+
name = Release;
|
|
641
|
+
};
|
|
411
642
|
/* End XCBuildConfiguration section */
|
|
412
643
|
|
|
413
644
|
/* Begin XCConfigurationList section */
|
|
@@ -429,6 +660,15 @@ ${targetSettings}
|
|
|
429
660
|
defaultConfigurationIsVisible = 0;
|
|
430
661
|
defaultConfigurationName = Release;
|
|
431
662
|
};
|
|
663
|
+
${testConfigs} /* Build configuration list for PBXNativeTarget "${tests}" */ = {
|
|
664
|
+
isa = XCConfigurationList;
|
|
665
|
+
buildConfigurations = (
|
|
666
|
+
${testDebug} /* Debug */,
|
|
667
|
+
${testRelease} /* Release */,
|
|
668
|
+
);
|
|
669
|
+
defaultConfigurationIsVisible = 0;
|
|
670
|
+
defaultConfigurationName = Release;
|
|
671
|
+
};
|
|
432
672
|
/* End XCConfigurationList section */
|
|
433
673
|
};
|
|
434
674
|
rootObject = ${project} /* Project object */;
|
package/dist/template.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../src/template.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../src/template.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// Runs one test module for WebAssembly under Node's WASI, as
|
|
2
|
+
// `node testRunner.js <module.wasm> [arguments…]`; its exit status is the
|
|
3
|
+
// tests'. `swiftbrowser test` starts it in a child process (commands/test.ts)
|
|
4
|
+
// so that a trap or a hang ends that process only, and so that its output can
|
|
5
|
+
// be read line by line.
|
|
6
|
+
//
|
|
7
|
+
// The module gets a directory of its own, a fresh temporary one that is gone
|
|
8
|
+
// afterwards: XCTest finds `Bundle.main` from the program's path, which must
|
|
9
|
+
// be in a directory that exists (`/tests/<module>`), and tests that write files
|
|
10
|
+
// get a home (`HOME`) and `/tmp`.
|
|
11
|
+
import { mkdtempSync, rmSync } from 'node:fs';
|
|
12
|
+
import { readFile } from 'node:fs/promises';
|
|
13
|
+
import { tmpdir } from 'node:os';
|
|
14
|
+
import path from 'node:path';
|
|
15
|
+
import { WASI } from 'node:wasi';
|
|
16
|
+
const [wasm, ...args] = process.argv.slice(2);
|
|
17
|
+
if (!wasm) {
|
|
18
|
+
console.error('usage: node testRunner.js <module.wasm> [arguments…]');
|
|
19
|
+
process.exit(2);
|
|
20
|
+
}
|
|
21
|
+
const home = mkdtempSync(path.join(tmpdir(), 'swiftbrowser-test-'));
|
|
22
|
+
let status = 1;
|
|
23
|
+
try {
|
|
24
|
+
const wasi = new WASI({
|
|
25
|
+
version: 'preview1',
|
|
26
|
+
args: [`/tests/${path.basename(wasm)}`, ...args],
|
|
27
|
+
env: { HOME: '/tests', TMPDIR: '/tmp' },
|
|
28
|
+
preopens: { '/tests': home, '/tmp': home },
|
|
29
|
+
returnOnExit: true,
|
|
30
|
+
});
|
|
31
|
+
const { instance } = await WebAssembly.instantiate(await readFile(wasm), wasi.getImportObject());
|
|
32
|
+
status = wasi.start(instance);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
// A trap (`fatalError`, a failed force unwrap…) ends the run here; the
|
|
36
|
+
// Swift runtime has printed why, and the first frames say where.
|
|
37
|
+
const stack = error instanceof Error ? (error.stack ?? error.message) : String(error);
|
|
38
|
+
console.error(stack.split('\n').slice(0, 12).join('\n'));
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
rmSync(home, { recursive: true, force: true });
|
|
42
|
+
}
|
|
43
|
+
process.exitCode = status;
|
|
44
|
+
//# sourceMappingURL=testRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testRunner.js","sourceRoot":"","sources":["../src/testRunner.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,0EAA0E;AAC1E,8EAA8E;AAC9E,8EAA8E;AAC9E,wBAAwB;AACxB,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,gFAAgF;AAChF,kCAAkC;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;IACV,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;AACpE,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,IAAI,CAAC;IACH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC;QACpB,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;QAChD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QACvC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAC1C,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IACjG,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,uEAAuE;IACvE,iEAAiE;IACjE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3D,CAAC;QAAS,CAAC;IACT,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC;AACD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@swiftbrowser/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Run an iOS SwiftUI app in the browser: init, doctor, check, dev and build for an Xcode project or a folder of Swift sources.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
"build": "tsc -p tsconfig.build.json"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@swiftbrowser/kit": "0.
|
|
26
|
-
"@swiftbrowser/swift": "0.
|
|
27
|
-
"@swiftbrowser/web": "0.
|
|
28
|
-
"@swiftbrowser/xcodeproj": "0.
|
|
25
|
+
"@swiftbrowser/kit": "0.3.1",
|
|
26
|
+
"@swiftbrowser/swift": "0.3.1",
|
|
27
|
+
"@swiftbrowser/web": "0.3.1",
|
|
28
|
+
"@swiftbrowser/xcodeproj": "0.3.1"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/node": "^26.6.4",
|