From 59eb2b6885f2766f50606f729d6e123072128e25 Mon Sep 17 00:00:00 2001 From: Chris Thoburn Date: Mon, 27 Mar 2023 16:48:19 -0500 Subject: [PATCH] chore: update imports to support RFC tweaks (#8501) * chore: update imports to support RFC tweaks * fix lint * fix lint --- packages/-ember-data/addon/-private/index.ts | 4 ++-- packages/json-api/src/-private/cache.ts | 2 +- packages/json-api/src/index.ts | 2 +- packages/request/README.md | 18 +++++++------- packages/request/src/-private/manager.ts | 24 +++++++++---------- packages/request/src/-private/types.ts | 20 +++++++++++++--- packages/request/src/fetch.ts | 6 +++-- packages/request/src/index.ts | 2 +- packages/store/README.md | 2 +- packages/store/src/-private/store-service.ts | 10 ++++---- packages/store/src/index.ts | 2 +- .../app/services/store.js | 4 ++-- tests/docs/fixtures/expected.js | 3 +++ tests/graph/app/services/store.ts | 4 ++-- .../tests/integration/cache/documents-test.ts | 2 +- tests/request/tests/integration/abort-test.ts | 2 +- .../tests/integration/custom-abort-test.ts | 2 +- .../integration/error-propagation-test.ts | 2 +- .../integration/graceful-dev-errors-test.ts | 2 +- .../graceful-dev-handler-errors-test.ts | 2 +- .../tests/integration/immutability-test.ts | 2 +- .../integration/response-currying-test.ts | 2 +- .../tests/integration/response-test.ts | 2 +- .../request/tests/integration/service-test.ts | 2 +- tests/request/tests/integration/setup-test.ts | 2 +- .../request/tests/integration/streams-test.ts | 2 +- .../app/services/store.js | 4 ++-- 27 files changed, 75 insertions(+), 56 deletions(-) diff --git a/packages/-ember-data/addon/-private/index.ts b/packages/-ember-data/addon/-private/index.ts index 467326d2e23..e65dc7da002 100644 --- a/packages/-ember-data/addon/-private/index.ts +++ b/packages/-ember-data/addon/-private/index.ts @@ -4,8 +4,8 @@ import PromiseProxyMixin from '@ember/object/promise-proxy-mixin'; import ObjectProxy from '@ember/object/proxy'; import { LegacyNetworkHandler } from '@ember-data/legacy-compat'; -import { RequestManager } from '@ember-data/request'; -import { Fetch } from '@ember-data/request/fetch'; +import RequestManager from '@ember-data/request'; +import Fetch from '@ember-data/request/fetch'; import BaseStore from '@ember-data/store'; export class Store extends BaseStore { diff --git a/packages/json-api/src/-private/cache.ts b/packages/json-api/src/-private/cache.ts index e12462c4c98..decbc332904 100644 --- a/packages/json-api/src/-private/cache.ts +++ b/packages/json-api/src/-private/cache.ts @@ -89,7 +89,7 @@ function makeCache(): CachedResource { This is the cache implementation used by `ember-data`. ```js - import { Cache } from '@ember-data/json-api'; + import Cache from '@ember-data/json-api'; import Store from '@ember-data/store'; export default class extends Store { diff --git a/packages/json-api/src/index.ts b/packages/json-api/src/index.ts index f1e793f5ab7..ccda4748dfb 100644 --- a/packages/json-api/src/index.ts +++ b/packages/json-api/src/index.ts @@ -1,4 +1,4 @@ -export { default as Cache } from './-private/cache'; +export { default } from './-private/cache'; /** This package provides the default cache implementation used diff --git a/packages/request/README.md b/packages/request/README.md index 133f6cc8098..65b160cc101 100644 --- a/packages/request/README.md +++ b/packages/request/README.md @@ -34,8 +34,8 @@ A `RequestManager` provides a request/response flow in which configured handlers The RequestManager on its own does not know how to fulfill requests. For this we must register at least one handler. A basic `Fetch` handler is provided that will take the request options provided and execute `fetch`. ```ts -import { RequestManager } from '@ember-data/request'; -import { Fetch } from '@ember-data/request/fetch'; +import RequestManager from '@ember-data/request'; +import Fetch from '@ember-data/request/fetch'; import { apiUrl } from './config'; // ... create manager and add our Fetch handler @@ -311,8 +311,8 @@ Most applications will desire to have a single `RequestManager` instance, which *services/request.ts* ```ts -import { RequestManager } from '@ember-data/request'; -import { Fetch } from '@ember-data/request/fetch'; +import RequestManager from '@ember-data/request'; +import Fetch from '@ember-data/request/fetch'; import Auth from 'ember-simple-auth/ember-data-handler'; export default class extends RequestManager { @@ -329,8 +329,8 @@ To have a request service unique to a Store: ```ts import Store from '@ember-data/store'; -import { RequestManager } from '@ember-data/request'; -import { Fetch } from '@ember-data/request/fetch'; +import RequestManager from '@ember-data/request'; +import Fetch from '@ember-data/request/fetch'; class extends Store { requestManager = new RequestManager(); @@ -348,15 +348,15 @@ If using the package [ember-data](https://github.com/emberjs/data/tree/main/pack ```ts import Store from '@ember-data/store'; -import { RequestManager } from '@ember-data/request'; -import { LegacyHandler } from '@ember-data/legacy-network-handler'; +import RequestManager from '@ember-data/request'; +import { LegacyNetworkHandler } from '@ember-data/legacy-compat'; export default class extends Store { requestManager = new RequestManager(); constructor(args) { super(args); - this.requestManager.use([LegacyHandler]); + this.requestManager.use([LegacyNetworkHandler]); } } ``` diff --git a/packages/request/src/-private/manager.ts b/packages/request/src/-private/manager.ts index 11227bcb948..c895c8c399f 100644 --- a/packages/request/src/-private/manager.ts +++ b/packages/request/src/-private/manager.ts @@ -30,8 +30,8 @@ A `RequestManager` provides a request/response flow in which configured handlers The RequestManager on its own does not know how to fulfill requests. For this we must register at least one handler. A basic `Fetch` handler is provided that will take the request options provided and execute `fetch`. ```ts -import { RequestManager } from '@ember-data/request'; -import { Fetch } from '@ember-data/request/fetch'; +import RequestManager from '@ember-data/request'; +import Fetch from '@ember-data/request/fetch'; import { apiUrl } from './config'; // ... create manager and add our Fetch handler @@ -258,8 +258,8 @@ Most applications will desire to have a single `RequestManager` instance, which *services/request.ts* ```ts -import { RequestManager } from '@ember-data/request'; -import { Fetch } from '@ember-data/request/fetch'; +import RequestManager from '@ember-data/request'; +import Fetch from '@ember-data/request/fetch'; import Auth from 'ember-simple-auth/ember-data-handler'; export default class extends RequestManager { @@ -276,8 +276,8 @@ To have a request service unique to a Store: ```ts import Store from '@ember-data/store'; -import { RequestManager } from '@ember-data/request'; -import { Fetch } from '@ember-data/request/fetch'; +import RequestManager from '@ember-data/request'; +import Fetch from '@ember-data/request/fetch'; class extends Store { requestManager = new RequestManager(); @@ -295,15 +295,15 @@ If using the package [ember-data](https://github.com/emberjs/data/tree/main/pack ```ts import Store from '@ember-data/store'; -import { RequestManager } from '@ember-data/request'; -import { LegacyHandler } from '@ember-data/legacy-network-handler'; +import RequestManager from '@ember-data/request'; +import { LegacyNetworkHandler } from '@ember-data/legacy-compat'; export default class extends Store { requestManager = new RequestManager(); constructor(args) { super(args); - this.requestManager.use([LegacyHandler]); + this.requestManager.use([LegacyNetworkHandler]); } } ``` @@ -326,7 +326,7 @@ import { Future, GenericCreateArgs, Handler, RequestInfo } from './types'; import { executeNextHandler } from './utils'; /** * ```js - * import { RequestManager } from '@ember-data/request'; + * import RequestManager from '@ember-data/request'; * ``` * * A RequestManager provides a request/response flow in which configured @@ -342,8 +342,8 @@ import { executeNextHandler } from './utils'; * For example: * * ```ts - * import { RequestManager } from '@ember-data/request'; - * import { Fetch } from '@ember-data/request/fetch'; + * import RequestManager from '@ember-data/request'; + * import Fetch from '@ember-data/request/fetch'; * import Auth from 'ember-simple-auth/ember-data-handler'; * import Config from './config'; * diff --git a/packages/request/src/-private/types.ts b/packages/request/src/-private/types.ts index fd1d992967e..8623b78d60c 100644 --- a/packages/request/src/-private/types.ts +++ b/packages/request/src/-private/types.ts @@ -56,15 +56,20 @@ export type Deferred = { }; /** + * A Future is a Promise which resolves to a StructuredDocument + * while providing the ability to `abort` the underlying request, + * `getStream` the response before the outer promise resolves; + * * @class Future - * @internal + * @extends Promise + * @public */ export type Future = Promise> & { /** * Cancel this request by firing the AbortController's signal. * * @method abort - * @internal + * @public * @returns {void} */ abort(): void; @@ -72,11 +77,20 @@ export type Future = Promise> & { * Get the response stream, if any, once made available. * * @method getStream - * @internal + * @public * @returns {Promise} */ getStream(): Promise; + /** + * Run a callback when this request completes. Use sparingly, + * mostly useful for instrumentation and infrastructure. + * + * @method onFinalize + * @param cb the callback to run + * @public + * @returns void + */ onFinalize(cb: () => void): void; }; diff --git a/packages/request/src/fetch.ts b/packages/request/src/fetch.ts index 97ecb4ac457..40859e22d01 100644 --- a/packages/request/src/fetch.ts +++ b/packages/request/src/fetch.ts @@ -20,7 +20,7 @@ const _fetch: typeof fetch = * `fetch` call presuming the response to be `json`. * * ```ts - * import { Fetch } from '@ember-data/request/fetch'; + * import Fetch from '@ember-data/request/fetch'; * * manager.use([Fetch]); * ``` @@ -28,7 +28,7 @@ const _fetch: typeof fetch = * @class Fetch * @public */ -export const Fetch = { +const Fetch = { async request(context: Context) { const response = await _fetch(context.request.url!, context.request); context.setResponse(response); @@ -36,3 +36,5 @@ export const Fetch = { return response.json(); }, }; + +export default Fetch; diff --git a/packages/request/src/index.ts b/packages/request/src/index.ts index fca928b4490..85fcfa143fb 100644 --- a/packages/request/src/index.ts +++ b/packages/request/src/index.ts @@ -1,2 +1,2 @@ -export { RequestManager } from './-private/manager'; +export { RequestManager as default } from './-private/manager'; export { createDeferred } from './-private/future'; diff --git a/packages/store/README.md b/packages/store/README.md index b70756e559b..979bd2cb283 100644 --- a/packages/store/README.md +++ b/packages/store/README.md @@ -69,7 +69,7 @@ The package `@ember-data/json-api` provides a `JSON:API` cache we can use. After ```js import Store from '@ember-data/store'; -import { Cache } from '@ember-data/json-api'; +import Cache from '@ember-data/json-api'; class extends Store { createCache(storeWrapper) { diff --git a/packages/store/src/-private/store-service.ts b/packages/store/src/-private/store-service.ts index b2d352d2273..f7aa1bb3411 100644 --- a/packages/store/src/-private/store-service.ts +++ b/packages/store/src/-private/store-service.ts @@ -8,7 +8,7 @@ import { _backburner as emberBackburner } from '@ember/runloop'; import { importSync } from '@embroider/macros'; import { DEBUG, TESTING } from '@ember-data/env'; -import type { Cache as CacheClass } from '@ember-data/json-api'; +import type CacheClass from '@ember-data/json-api'; import type FetchManager from '@ember-data/legacy-compat/legacy-network-handler/fetch-manager'; import type DSModelClass from '@ember-data/model'; import { @@ -25,7 +25,7 @@ import { DEPRECATE_STORE_FIND, DEPRECATE_V1_RECORD_DATA, } from '@ember-data/private-build-infra/deprecations'; -import type { RequestManager } from '@ember-data/request'; +import type RequestManager from '@ember-data/request'; import type { Future } from '@ember-data/request/-private/types'; import type { Cache, CacheV1 } from '@ember-data/types/q/cache'; import type { CacheStoreWrapper } from '@ember-data/types/q/cache-store-wrapper'; @@ -200,8 +200,8 @@ class Store { * * ```ts * import Store from '@ember-data/store'; - * import { RequestManager } from '@ember-data/request'; - * import { Fetch } from '@ember/data/request/fetch'; + * import RequestManager from '@ember-data/request'; + * import Fetch from '@ember/data/request/fetch'; * * class extends Store { * constructor() { @@ -2361,7 +2361,7 @@ class Store { createCache(storeWrapper: CacheStoreWrapper): Cache { if (HAS_JSON_API_PACKAGE) { if (_Cache === undefined) { - _Cache = (importSync('@ember-data/json-api') as typeof import('@ember-data/json-api')).Cache; + _Cache = (importSync('@ember-data/json-api') as typeof import('@ember-data/json-api')).default; } return new _Cache(storeWrapper); diff --git a/packages/store/src/index.ts b/packages/store/src/index.ts index f1bc39de89c..29fc0c1fb5a 100644 --- a/packages/store/src/index.ts +++ b/packages/store/src/index.ts @@ -29,7 +29,7 @@ * * ```js * import Store from '@ember-data/store'; - * import { Cache } from '@ember-data/json-api'; + * import Cache from '@ember-data/json-api'; * * class extends Store { * createCache(storeWrapper) { diff --git a/tests/adapter-encapsulation/app/services/store.js b/tests/adapter-encapsulation/app/services/store.js index 0ebf773c994..bb748068b00 100644 --- a/tests/adapter-encapsulation/app/services/store.js +++ b/tests/adapter-encapsulation/app/services/store.js @@ -1,6 +1,6 @@ -import { Cache } from '@ember-data/json-api'; +import Cache from '@ember-data/json-api'; import { LegacyNetworkHandler } from '@ember-data/legacy-compat'; -import { RequestManager } from '@ember-data/request'; +import RequestManager from '@ember-data/request'; import Store from '@ember-data/store'; export default class DefaultStore extends Store { diff --git a/tests/docs/fixtures/expected.js b/tests/docs/fixtures/expected.js index 1372f7c8076..c0120d15eb2 100644 --- a/tests/docs/fixtures/expected.js +++ b/tests/docs/fixtures/expected.js @@ -344,6 +344,9 @@ module.exports = { '(public) @ember-data/request RequestManager#request', '(public) @ember-data/request RequestManager#use', '(public) @ember-data/request RequestManager#useCache', + '(public) @ember-data/request Future#abort', + '(public) @ember-data/request Future#getStream', + '(public) @ember-data/request Future#onFinalize', '(public) @ember-data/serializer Serializer#normalize', '(public) @ember-data/serializer Serializer#normalizeResponse', '(public) @ember-data/serializer Serializer#serialize', diff --git a/tests/graph/app/services/store.ts b/tests/graph/app/services/store.ts index e4a84eed42c..cebdb706b01 100644 --- a/tests/graph/app/services/store.ts +++ b/tests/graph/app/services/store.ts @@ -1,6 +1,6 @@ import { LegacyNetworkHandler } from '@ember-data/legacy-compat'; -import { RequestManager } from '@ember-data/request'; -import { Fetch } from '@ember-data/request/fetch'; +import RequestManager from '@ember-data/request'; +import Fetch from '@ember-data/request/fetch'; import BaseStore from '@ember-data/store'; export default class Store extends BaseStore { diff --git a/tests/json-api/tests/integration/cache/documents-test.ts b/tests/json-api/tests/integration/cache/documents-test.ts index 1a8ae033e67..2343eb871cb 100644 --- a/tests/json-api/tests/integration/cache/documents-test.ts +++ b/tests/json-api/tests/integration/cache/documents-test.ts @@ -2,7 +2,7 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -import { Cache } from '@ember-data/json-api'; +import Cache from '@ember-data/json-api'; import Store from '@ember-data/store'; import type { NotificationType } from '@ember-data/store/-private/managers/notification-manager'; import type { diff --git a/tests/request/tests/integration/abort-test.ts b/tests/request/tests/integration/abort-test.ts index 2fd7bb7f5b4..6825b011123 100644 --- a/tests/request/tests/integration/abort-test.ts +++ b/tests/request/tests/integration/abort-test.ts @@ -1,6 +1,6 @@ import { module, test } from 'qunit'; -import { RequestManager } from '@ember-data/request'; +import RequestManager from '@ember-data/request'; import type { Context } from '@ember-data/request/-private/context'; import type { Future, Handler, NextFn, RequestInfo } from '@ember-data/request/-private/types'; diff --git a/tests/request/tests/integration/custom-abort-test.ts b/tests/request/tests/integration/custom-abort-test.ts index 7bfe537eb73..53e7fc0b890 100644 --- a/tests/request/tests/integration/custom-abort-test.ts +++ b/tests/request/tests/integration/custom-abort-test.ts @@ -1,6 +1,6 @@ import { module, test } from 'qunit'; -import { RequestManager } from '@ember-data/request'; +import RequestManager from '@ember-data/request'; import type { Context } from '@ember-data/request/-private/context'; import type { Future, Handler, NextFn, RequestInfo } from '@ember-data/request/-private/types'; diff --git a/tests/request/tests/integration/error-propagation-test.ts b/tests/request/tests/integration/error-propagation-test.ts index a3485cb4aa4..d7353c1c660 100644 --- a/tests/request/tests/integration/error-propagation-test.ts +++ b/tests/request/tests/integration/error-propagation-test.ts @@ -1,6 +1,6 @@ import { module, test } from 'qunit'; -import { RequestManager } from '@ember-data/request'; +import RequestManager from '@ember-data/request'; import type { Context } from '@ember-data/request/-private/context'; import type { Future, Handler, NextFn, StructuredErrorDocument } from '@ember-data/request/-private/types'; diff --git a/tests/request/tests/integration/graceful-dev-errors-test.ts b/tests/request/tests/integration/graceful-dev-errors-test.ts index 6496785756e..1dbf83c27ec 100644 --- a/tests/request/tests/integration/graceful-dev-errors-test.ts +++ b/tests/request/tests/integration/graceful-dev-errors-test.ts @@ -4,7 +4,7 @@ import { module, test } from 'qunit'; -import { RequestManager } from '@ember-data/request'; +import RequestManager from '@ember-data/request'; import type { Context } from '@ember-data/request/-private/context'; import type { Handler, NextFn } from '@ember-data/request/-private/types'; diff --git a/tests/request/tests/integration/graceful-dev-handler-errors-test.ts b/tests/request/tests/integration/graceful-dev-handler-errors-test.ts index c5cc0b27fad..2e8a63d1bdc 100644 --- a/tests/request/tests/integration/graceful-dev-handler-errors-test.ts +++ b/tests/request/tests/integration/graceful-dev-handler-errors-test.ts @@ -4,7 +4,7 @@ import { module, test } from 'qunit'; -import { RequestManager } from '@ember-data/request'; +import RequestManager from '@ember-data/request'; import type { Context } from '@ember-data/request/-private/context'; import type { Handler, NextFn } from '@ember-data/request/-private/types'; diff --git a/tests/request/tests/integration/immutability-test.ts b/tests/request/tests/integration/immutability-test.ts index a22cac84c87..4fb0ce4d5e5 100644 --- a/tests/request/tests/integration/immutability-test.ts +++ b/tests/request/tests/integration/immutability-test.ts @@ -1,6 +1,6 @@ import { module, test } from 'qunit'; -import { RequestManager } from '@ember-data/request'; +import RequestManager from '@ember-data/request'; import type { Context } from '@ember-data/request/-private/context'; import type { Handler, NextFn } from '@ember-data/request/-private/types'; diff --git a/tests/request/tests/integration/response-currying-test.ts b/tests/request/tests/integration/response-currying-test.ts index fa39537dd46..a943640dc97 100644 --- a/tests/request/tests/integration/response-currying-test.ts +++ b/tests/request/tests/integration/response-currying-test.ts @@ -1,6 +1,6 @@ import { module, test } from 'qunit'; -import { RequestManager } from '@ember-data/request'; +import RequestManager from '@ember-data/request'; import type { Context } from '@ember-data/request/-private/context'; import type { Handler, NextFn } from '@ember-data/request/-private/types'; diff --git a/tests/request/tests/integration/response-test.ts b/tests/request/tests/integration/response-test.ts index dbe8af9a7ba..08db5a048ba 100644 --- a/tests/request/tests/integration/response-test.ts +++ b/tests/request/tests/integration/response-test.ts @@ -1,6 +1,6 @@ import { module, test } from 'qunit'; -import { RequestManager } from '@ember-data/request'; +import RequestManager from '@ember-data/request'; import type { Context } from '@ember-data/request/-private/context'; import type { Handler, NextFn } from '@ember-data/request/-private/types'; diff --git a/tests/request/tests/integration/service-test.ts b/tests/request/tests/integration/service-test.ts index 9e5074a44cb..7e7fa3c1447 100644 --- a/tests/request/tests/integration/service-test.ts +++ b/tests/request/tests/integration/service-test.ts @@ -9,7 +9,7 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -import { RequestManager } from '@ember-data/request'; +import RequestManager from '@ember-data/request'; module('RequestManager | Ember Service Setup', function (hooks: NestedHooks) { setupTest(hooks); diff --git a/tests/request/tests/integration/setup-test.ts b/tests/request/tests/integration/setup-test.ts index 2fdf881f7ee..2308cdca439 100644 --- a/tests/request/tests/integration/setup-test.ts +++ b/tests/request/tests/integration/setup-test.ts @@ -1,6 +1,6 @@ import { module, test } from 'qunit'; -import { RequestManager } from '@ember-data/request'; +import RequestManager from '@ember-data/request'; import type { Context as HandlerRequestContext } from '@ember-data/request/-private/context'; import type { NextFn } from '@ember-data/request/-private/types'; diff --git a/tests/request/tests/integration/streams-test.ts b/tests/request/tests/integration/streams-test.ts index a5fb1b766dc..9fda6f67a82 100644 --- a/tests/request/tests/integration/streams-test.ts +++ b/tests/request/tests/integration/streams-test.ts @@ -1,6 +1,6 @@ import { module, test } from 'qunit'; -import { RequestManager } from '@ember-data/request'; +import RequestManager from '@ember-data/request'; import type { Context } from '@ember-data/request/-private/context'; import type { Future, Handler, NextFn } from '@ember-data/request/-private/types'; diff --git a/tests/serializer-encapsulation/app/services/store.js b/tests/serializer-encapsulation/app/services/store.js index 0ebf773c994..bb748068b00 100644 --- a/tests/serializer-encapsulation/app/services/store.js +++ b/tests/serializer-encapsulation/app/services/store.js @@ -1,6 +1,6 @@ -import { Cache } from '@ember-data/json-api'; +import Cache from '@ember-data/json-api'; import { LegacyNetworkHandler } from '@ember-data/legacy-compat'; -import { RequestManager } from '@ember-data/request'; +import RequestManager from '@ember-data/request'; import Store from '@ember-data/store'; export default class DefaultStore extends Store {