Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: make diagnostic shutdown safer, use bun for holodeck server #9705

Merged
merged 47 commits into from
Mar 4, 2025
Merged
Changes from 1 commit
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
0abcbaf
refactor diagnostic for safer teardown
runspired Mar 1, 2025
4d21b59
make holodeck cleanup appropriately
runspired Mar 2, 2025
2faad63
fix request test and improve diagnostic a little bit
runspired Mar 2, 2025
6487669
fix more tests
runspired Mar 2, 2025
d873d32
cleanup config
runspired Mar 2, 2025
2c93499
cleanup dependencies for fastboot scenario
runspired Mar 2, 2025
00865b8
fix types
runspired Mar 2, 2025
9c0f311
fixup more tests
runspired Mar 2, 2025
d85383d
fixup more tests
runspired Mar 2, 2025
3f05a6b
dont launch holodeck for main test app (yet)
runspired Mar 2, 2025
9305381
ensure less noise in CI
runspired Mar 2, 2025
4be9893
some improvements
runspired Mar 2, 2025
89db302
a new approach
runspired Mar 3, 2025
5800815
attempt no sync
runspired Mar 3, 2025
455ff98
use internal sync
runspired Mar 3, 2025
507511d
more cleanup
runspired Mar 3, 2025
1ee2fd9
fix sync
runspired Mar 3, 2025
13ff9cc
fix install
runspired Mar 3, 2025
7ea7324
fix more missing peers
runspired Mar 3, 2025
70f2d8a
more vite cleanup
runspired Mar 3, 2025
a4ae8c1
fix more tests, make diagnostic easier to launch
runspired Mar 3, 2025
9f260c8
disable caching
runspired Mar 3, 2025
68e2acc
try something
runspired Mar 3, 2025
38c7b4e
fix no-cache
runspired Mar 3, 2025
62deec8
fix missing testem
runspired Mar 3, 2025
dfa1e19
try fastboot again
runspired Mar 3, 2025
e2ff3ed
cleanup
runspired Mar 3, 2025
706c27b
cleanup
runspired Mar 3, 2025
6fe273c
try
runspired Mar 3, 2025
023e08c
updated lockfile with new npmrc settings
runspired Mar 3, 2025
fd33326
fixup comment
runspired Mar 3, 2025
b933056
fixup fastboot
runspired Mar 3, 2025
cab3d62
fix prod tests
runspired Mar 3, 2025
9da5f5f
restore settings
runspired Mar 3, 2025
00367fc
fix deprecation test
runspired Mar 3, 2025
e738484
make nicer?
runspired Mar 3, 2025
192f193
keep some changes
runspired Mar 3, 2025
4a38c88
fix it
runspired Mar 3, 2025
508a90c
fix newline
runspired Mar 3, 2025
956a542
dont use turbo
runspired Mar 3, 2025
c76596f
fixup more commands?
runspired Mar 3, 2025
5319b0e
maybe
runspired Mar 3, 2025
03a3f0f
fixup
runspired Mar 3, 2025
d097272
still use exec
runspired Mar 3, 2025
df2cc99
fix scneario
runspired Mar 4, 2025
401bb0e
update npmrc text
runspired Mar 4, 2025
5c8662d
fix quote mark
runspired Mar 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
cleanup
  • Loading branch information
runspired committed Mar 3, 2025
commit e2ff3edd5b5ed217f493339ff1f94752b5e712a5
57 changes: 0 additions & 57 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 11 additions & 1 deletion tests/fastboot/app/routes/index.ts
Original file line number Diff line number Diff line change
@@ -4,14 +4,24 @@ import { inject as service } from '@ember/service';
// @ts-expect-error untyped
import { buildTree } from 'ember-simple-tree/utils/tree';

import { query } from '@ember-data/json-api/request';
import { setBuildURLConfig } from '@ember-data/request-utils';

import type Person from '../models/person';
import type Store from '../services/store';

setBuildURLConfig({ host: `http://${window.location.host}`, namespace: 'api' });

export default class IndexRoute extends Route {
@service declare store: Store;

override async model() {
const people = await this.store.findAll<Person>('person');
const {
content: { data: people },
} = await this.store.request(query<Person>('person', {}, { resourcePath: 'people.json' }));

console.log(people.slice());

const tree = buildTree(people.map((person) => person.toNode()));

// eslint-disable-next-line @typescript-eslint/no-unsafe-return
4 changes: 0 additions & 4 deletions tests/fastboot/app/serializers/application.ts

This file was deleted.

34 changes: 33 additions & 1 deletion tests/fastboot/app/services/store.ts
Original file line number Diff line number Diff line change
@@ -1 +1,33 @@
export { default } from 'ember-data/store';
import JSONAPICache from '@ember-data/json-api';
import type Model from '@ember-data/model';
import { instantiateRecord, teardownRecord } from '@ember-data/model';
import { buildSchema, modelFor } from '@ember-data/model/hooks';
import RequestManager from '@ember-data/request';
import Fetch from '@ember-data/request/fetch';
import DataStore, { CacheHandler } from '@ember-data/store';
import type { CacheCapabilitiesManager, ModelSchema } from '@ember-data/store/types';
import type { StableRecordIdentifier } from '@warp-drive/core-types';

export default class Store extends DataStore {
requestManager = new RequestManager().use([Fetch]).useCache(CacheHandler);

createSchemaService(): ReturnType<typeof buildSchema> {
return buildSchema(this);
}

createCache(capabilities: CacheCapabilitiesManager) {
return new JSONAPICache(capabilities);
}

instantiateRecord(identifier: StableRecordIdentifier, createRecordArgs: { [key: string]: unknown }) {
return instantiateRecord.call(this, identifier, createRecordArgs);
}

teardownRecord(record: Model) {
return teardownRecord.call(this, record);
}

modelFor(type: string): ModelSchema {
return (modelFor.call(this, type) as ModelSchema) || super.modelFor(type);
}
}
3 changes: 3 additions & 0 deletions tests/fastboot/config/fastboot.js
Original file line number Diff line number Diff line change
@@ -3,7 +3,10 @@ module.exports = function (environment) {
return {
buildSandboxGlobals(defaultGlobals) {
return Object.assign({}, defaultGlobals, {
fetch,
URLSearchParams,
AbortController,
DOMException,
ReadableStream:
typeof ReadableStream !== 'undefined' ? ReadableStream : require('node:stream/web').ReadableStream,
WritableStream:
Loading