From 318627618abebb1d7ae9b19358eda1edf5df4aae Mon Sep 17 00:00:00 2001 From: Chris Thoburn Date: Thu, 11 Jul 2019 16:42:55 -0700 Subject: [PATCH] chore: refactor promiseRecord (#6161) * chore: refactor promiseRecord * cleanup --- packages/store/addon/-private/system/store.ts | 10 +------- .../addon/-private/utils/promise-record.ts | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+), 9 deletions(-) create mode 100644 packages/store/addon/-private/utils/promise-record.ts diff --git a/packages/store/addon/-private/system/store.ts b/packages/store/addon/-private/system/store.ts index bc3c7e56df2..45a5d81bb57 100644 --- a/packages/store/addon/-private/system/store.ts +++ b/packages/store/addon/-private/system/store.ts @@ -40,6 +40,7 @@ import edBackburner from './backburner'; import { RECORD_DATA_ERRORS, RECORD_DATA_STATE } from '@ember-data/canary-features'; import { Record } from '../ts-interfaces/record'; +import promiseRecord from '../utils/promise-record'; const badIdFormatAssertion = '`id` passed to `findRecord()` has to be non-empty string or number'; const emberRun = emberRunLoop.backburner; @@ -47,15 +48,6 @@ const { ENV } = Ember; let globalClientIdCounter = 1; -//Get the materialized model from the internalModel/promise that returns -//an internal model and return it in a promiseObject. Useful for returning -//from find methods -function promiseRecord(internalModelPromise, label) { - let toReturn = internalModelPromise.then(internalModel => internalModel.getRecord()); - - return promiseObject(toReturn, label); -} - // Implementors Note: // // The variables in this file are consistently named according to the following diff --git a/packages/store/addon/-private/utils/promise-record.ts b/packages/store/addon/-private/utils/promise-record.ts new file mode 100644 index 00000000000..a083819b290 --- /dev/null +++ b/packages/store/addon/-private/utils/promise-record.ts @@ -0,0 +1,24 @@ +import InternalModel from '../system/model/internal-model'; +import { promiseObject } from '../system/promise-proxies'; +import { Record } from '../ts-interfaces/record'; + +// shim type until we can properly type +// these proxies +export type PromiseProxy = Promise; + +/** + * Get the materialized model from the internalModel/promise + * that returns an internal model and return it in a promiseObject. + * + * Useful for returning from find methods + * + * @internal + */ +export default function promiseRecord( + internalModelPromise: Promise, + label: string +): PromiseProxy { + let toReturn = internalModelPromise.then(internalModel => internalModel.getRecord()); + + return promiseObject(toReturn, label); +}