mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
Ember Data: add re-exports for new packages (#42017)
* [ember-data] add re-exports for `@ember-data/model` * [ember-data] add re-exports for `@ember-data/adapter` * [ember-data] add re-exports for `@ember-data/store` * [ember-data] add re-exports for `@ember-data/serializer` * [ember-data] add re-exports for `@ember-data/model` * [ember-data] use OTHER_FILES for `@ember-data/adapter` * [ember-data] use OTHER_FILES for `@ember-data/serializer` * [ember-data] include error test for `@ember-data/adapter` * [ember-data] use OTHER_FILES for `@ember-data/serializer` * [ember-data] fix file inclusions and paths * [ember-data] actually export and test `@ember-data/adapter/error` * [ember-data] fix more tests * [ember-data] rework @ember-data/adapter/error exports * [ember-data] make `@ember-data/adapter/error` exports type-and-value * [ember-data] make `@ember-data/adapter/error` exports type-and-value correctly * [ember-data] use `export import` form * [ember-data] fix mixin re-exports * [ember-data] fix expanded adapter method test
This commit is contained in:
parent
3b611ed646
commit
45df8511a2
@ -13,7 +13,7 @@ class Post extends DS.Model {
|
||||
|
||||
declare module 'ember-data/types/registries/model' {
|
||||
export default interface ModelRegistry {
|
||||
'post': Post;
|
||||
post: Post;
|
||||
'post-comment': PostComment;
|
||||
}
|
||||
}
|
||||
@ -109,7 +109,7 @@ const SomeComponent = Ember.Object.extend({
|
||||
lookUpUsers() {
|
||||
assertType<User>(this.get('store').findRecord('user', 123));
|
||||
assertType<DS.PromiseArray<User>>(this.get('store').findAll('user'));
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
const MyRouteAsync = Ember.Route.extend({
|
||||
@ -124,7 +124,7 @@ const MyRouteAsync = Ember.Route.extend({
|
||||
async afterModel(): Promise<Ember.Array<Comment>> {
|
||||
const post = await this.get('store').findRecord('post', 1);
|
||||
return await post.get('comments');
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
class MyRouteAsyncES6 extends Ember.Route {
|
||||
|
||||
@ -102,7 +102,8 @@
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"esModuleInterop": true
|
||||
"esModuleInterop": true,
|
||||
"experimentalDecorators": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
|
||||
3
types/ember-data__adapter/OTHER_FILES.txt
Normal file
3
types/ember-data__adapter/OTHER_FILES.txt
Normal file
@ -0,0 +1,3 @@
|
||||
error.d.ts
|
||||
json-api.d.ts
|
||||
rest.d.ts
|
||||
14
types/ember-data__adapter/error.d.ts
vendored
Normal file
14
types/ember-data__adapter/error.d.ts
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
import DS from 'ember-data';
|
||||
|
||||
export import AdapterError = DS.AdapterError;
|
||||
export import InvalidError = DS.InvalidError;
|
||||
export import UnauthorizedError = DS.UnauthorizedError;
|
||||
export import ForbiddenError = DS.ForbiddenError;
|
||||
export import NotFoundError = DS.NotFoundError;
|
||||
export import ConflictError = DS.ConflictError;
|
||||
export import ServerError = DS.ServerError;
|
||||
export import TimeoutError = DS.TimeoutError;
|
||||
export import AbortError = DS.AbortError;
|
||||
|
||||
export const errorsHashToArray: typeof DS.errorsHashToArray;
|
||||
export const errorsArrayToHash: typeof DS.errorsArrayToHash;
|
||||
14
types/ember-data__adapter/index.d.ts
vendored
Normal file
14
types/ember-data__adapter/index.d.ts
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
// Type definitions for @ember-data/adapter 3.15
|
||||
// Project: https://github.com/emberjs/data
|
||||
// Definitions by: Mike North <https://github.com/mike-north>
|
||||
// Chris Krycho <https://github.com/chriskrycho>
|
||||
// Dan Freeman <https://github.com/dfreeman>
|
||||
// James C. Davis <https://github.com/jamescdavis>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 3.6
|
||||
|
||||
import DS from 'ember-data';
|
||||
|
||||
export let BuildURLMixin: DS.BuildURLMixin;
|
||||
|
||||
export default DS.Adapter;
|
||||
2
types/ember-data__adapter/json-api.d.ts
vendored
Normal file
2
types/ember-data__adapter/json-api.d.ts
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
import DS from 'ember-data';
|
||||
export default DS.JSONAPIAdapter;
|
||||
2
types/ember-data__adapter/rest.d.ts
vendored
Normal file
2
types/ember-data__adapter/rest.d.ts
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
import DS from 'ember-data';
|
||||
export default DS.RESTAdapter;
|
||||
26
types/ember-data__adapter/test/error.ts
Normal file
26
types/ember-data__adapter/test/error.ts
Normal file
@ -0,0 +1,26 @@
|
||||
// These tests *actually do* what we need: show that the imports work at all.
|
||||
// They are empty sub-classes of EmberObject at present in the base definitions
|
||||
// being re-exported here. As long as the imports resolve, this is safe (until
|
||||
// we make these the root definitions and expand these as appropriate).
|
||||
|
||||
import AdapterError, {
|
||||
InvalidError,
|
||||
TimeoutError,
|
||||
AbortError,
|
||||
UnauthorizedError,
|
||||
ForbiddenError,
|
||||
NotFoundError,
|
||||
ConflictError,
|
||||
ServerError,
|
||||
errorsHashToArray,
|
||||
errorsArrayToHash,
|
||||
} from '@ember-data/adapter/error';
|
||||
|
||||
class MyInvalid extends InvalidError {
|
||||
constructor() {
|
||||
super([]); // required
|
||||
}
|
||||
}
|
||||
|
||||
errorsHashToArray({}); // $ExpectType<any[]>
|
||||
errorsArrayToHash([]); // $ExpectType<{}>
|
||||
49
types/ember-data__adapter/test/index.ts
Normal file
49
types/ember-data__adapter/test/index.ts
Normal file
@ -0,0 +1,49 @@
|
||||
import Service, { inject as service } from '@ember/service';
|
||||
import Adapter, { BuildURLMixin } from '@ember-data/adapter';
|
||||
import Model from '@ember-data/model';
|
||||
|
||||
import Store from '@ember-data/store';
|
||||
import DS from 'ember-data';
|
||||
|
||||
class Session extends Service {
|
||||
login(userName: string, password: string): Promise<void> {
|
||||
return Promise.resolve();
|
||||
}
|
||||
}
|
||||
|
||||
declare module '@ember/service' {
|
||||
interface Registry {
|
||||
session: Session;
|
||||
}
|
||||
}
|
||||
|
||||
declare module 'ember-data/types/registries/model' {
|
||||
export default interface ModelRegistry {
|
||||
rootModel: any;
|
||||
'super-user': any;
|
||||
}
|
||||
}
|
||||
|
||||
declare module 'ember-data/types/registries/adapter' {
|
||||
export default interface AdapterRegistry {
|
||||
customized: Customized;
|
||||
}
|
||||
}
|
||||
|
||||
class Customized extends Adapter {
|
||||
@service session!: Session;
|
||||
|
||||
async someMethod(): Promise<void> {
|
||||
this.defaultSerializer = 'a string';
|
||||
this.defaultSerializer = 12; // $ExpectError
|
||||
|
||||
return this.session.login('hi@example.com', 'password');
|
||||
}
|
||||
}
|
||||
|
||||
const MixedIn = Adapter.extend(BuildURLMixin, {
|
||||
findRecord(store: Store, type: typeof Model, id: string, snapshot: DS.Snapshot) {
|
||||
let url = this.buildURL(type.modelName, id, snapshot, 'findRecord');
|
||||
return $.ajax(url, { method: 'GET' });
|
||||
},
|
||||
});
|
||||
59
types/ember-data__adapter/test/json-api.ts
Normal file
59
types/ember-data__adapter/test/json-api.ts
Normal file
@ -0,0 +1,59 @@
|
||||
import { inject as service } from '@ember/service';
|
||||
import { computed } from '@ember/object';
|
||||
import $ from 'jquery';
|
||||
import JSONAPIAdapter from '@ember-data/adapter/json-api';
|
||||
import Store from '@ember-data/store';
|
||||
|
||||
class JsonApi extends JSONAPIAdapter {
|
||||
// Application specific overrides go here
|
||||
}
|
||||
|
||||
const Customized = JSONAPIAdapter.extend({
|
||||
host: 'https://api.example.com',
|
||||
namespace: 'api/v1',
|
||||
headers: {
|
||||
API_KEY: 'secret key',
|
||||
ANOTHER_HEADER: 'Some header value',
|
||||
},
|
||||
});
|
||||
|
||||
const AuthTokenHeader = JSONAPIAdapter.extend({
|
||||
session: service('session'),
|
||||
headers: computed('session.authToken', function() {
|
||||
return {
|
||||
API_KEY: this.get('session.authToken'),
|
||||
ANOTHER_HEADER: 'Some header value',
|
||||
};
|
||||
}),
|
||||
});
|
||||
|
||||
const UseAjax = JSONAPIAdapter.extend({
|
||||
query(store: Store, type: string, query: object) {
|
||||
const url = 'https://api.example.com/my-api';
|
||||
return this.ajax(url, 'POST', {
|
||||
param: 'foo',
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
const UseAjaxOptions = JSONAPIAdapter.extend({
|
||||
query(store: Store, type: string, query: object) {
|
||||
const url = 'https://api.example.com/my-api';
|
||||
const options = this.ajaxOptions(url, 'DELETE', {
|
||||
foo: 'bar',
|
||||
});
|
||||
return $.ajax(url, {
|
||||
...options,
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
const UseAjaxOptionsWithOptionalThirdParams = JSONAPIAdapter.extend({
|
||||
query(store: Store, type: string, query: object) {
|
||||
const url = 'https://api.example.com/my-api';
|
||||
const options = this.ajaxOptions(url, 'DELETE');
|
||||
return $.ajax(url, {
|
||||
...options,
|
||||
});
|
||||
},
|
||||
});
|
||||
2
types/ember-data__adapter/test/lib/assert.ts
Normal file
2
types/ember-data__adapter/test/lib/assert.ts
Normal file
@ -0,0 +1,2 @@
|
||||
/** Static assertion that `value` has type `T` */
|
||||
export declare function assertType<T>(value: T): void;
|
||||
8
types/ember-data__adapter/test/rest.ts
Normal file
8
types/ember-data__adapter/test/rest.ts
Normal file
@ -0,0 +1,8 @@
|
||||
import RESTAdapter from '@ember-data/adapter/rest';
|
||||
|
||||
class MyRESTAdapter extends RESTAdapter {
|
||||
someMethod() {
|
||||
this.coalesceFindRequests; // $ExpectType boolean
|
||||
this.namespace; // $ExpectType string
|
||||
}
|
||||
}
|
||||
63
types/ember-data__adapter/tsconfig.json
Normal file
63
types/ember-data__adapter/tsconfig.json
Normal file
@ -0,0 +1,63 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": ["es6", "dom"],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": false,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"paths": {
|
||||
"@ember-data/adapter": ["ember-data__adapter"],
|
||||
"@ember-data/adapter/*": ["ember-data__adapter/*"],
|
||||
"@ember-data/model": ["ember-data__model"],
|
||||
"@ember-data/model/*": ["ember-data__model/*"],
|
||||
"@ember-data/store": ["ember-data__store"],
|
||||
"@ember-data/store/*": ["ember-data__store/*"],
|
||||
"@ember/application": ["ember__application"],
|
||||
"@ember/application/*": ["ember__application/*"],
|
||||
"@ember/array": ["ember__array"],
|
||||
"@ember/array/*": ["ember__array/*"],
|
||||
"@ember/component": ["ember__component"],
|
||||
"@ember/component/*": ["ember__component/*"],
|
||||
"@ember/controller": ["ember__controller"],
|
||||
"@ember/debug": ["ember__debug"],
|
||||
"@ember/debug/*": ["ember__debug/*"],
|
||||
"@ember/engine": ["ember__engine"],
|
||||
"@ember/engine/*": ["ember__engine/*"],
|
||||
"@ember/error": ["ember__error"],
|
||||
"@ember/object": ["ember__object"],
|
||||
"@ember/object/*": ["ember__object/*"],
|
||||
"@ember/polyfills": ["ember__polyfills"],
|
||||
"@ember/routing": ["ember__routing"],
|
||||
"@ember/routing/*": ["ember__routing/*"],
|
||||
"@ember/runloop": ["ember__runloop"],
|
||||
"@ember/runloop/*": ["ember__runloop/*"],
|
||||
"@ember/service": ["ember__service"],
|
||||
"@ember/string": ["ember__string"],
|
||||
"@ember/string/*": ["ember__string/*"],
|
||||
"@ember/template": ["ember__template"],
|
||||
"@ember/template/*": ["ember__template/*"],
|
||||
"@ember/test": ["ember__test"],
|
||||
"@ember/test/*": ["ember__test/*"],
|
||||
"@ember/utils": ["ember__utils"],
|
||||
"@ember/utils/*": ["ember__utils/*"]
|
||||
},
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"esModuleInterop": true,
|
||||
"experimentalDecorators": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"test/lib/assert.ts",
|
||||
"test/index.ts",
|
||||
"test/error.ts",
|
||||
"test/json-api.ts",
|
||||
"test/rest.ts"
|
||||
]
|
||||
}
|
||||
21
types/ember-data__adapter/tslint.json
Normal file
21
types/ember-data__adapter/tslint.json
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"extends": "dtslint/dt.json",
|
||||
// Copied without modification from config for ember-data.
|
||||
"rules": {
|
||||
"strict-export-declare-modifiers": false,
|
||||
"jsdoc-format": false,
|
||||
"no-misused-new": false,
|
||||
// not sure what this means
|
||||
"no-single-declare-module": false,
|
||||
"object-literal-key-quotes": false,
|
||||
"only-arrow-functions": false,
|
||||
"no-empty-interface": false,
|
||||
"prefer-const": false,
|
||||
"no-unnecessary-generics": false,
|
||||
"no-declare-current-package": false,
|
||||
"no-self-import": false,
|
||||
"no-return-await": false, // used in tests
|
||||
// @ember-data packages do not yet have ES module exports
|
||||
"npm-naming": false
|
||||
}
|
||||
}
|
||||
15
types/ember-data__model/index.d.ts
vendored
Normal file
15
types/ember-data__model/index.d.ts
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
// Type definitions for @ember-data/model 3.15
|
||||
// Project: https://github.com/emberjs/data
|
||||
// Definitions by: Mike North <https://github.com/mike-north>
|
||||
// Chris Krycho <https://github.com/chriskrycho>
|
||||
// Dan Freeman <https://github.com/dfreeman>
|
||||
// James C. Davis <https://github.com/jamescdavis>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 3.6
|
||||
|
||||
import DS from 'ember-data';
|
||||
export default DS.Model;
|
||||
|
||||
export import attr = DS.attr;
|
||||
export import belongsTo = DS.belongsTo;
|
||||
export import hasMany = DS.hasMany;
|
||||
2
types/ember-data__model/test/lib/assert.ts
Normal file
2
types/ember-data__model/test/lib/assert.ts
Normal file
@ -0,0 +1,2 @@
|
||||
/** Static assertion that `value` has type `T` */
|
||||
export declare function assertType<T>(value: T): void;
|
||||
80
types/ember-data__model/test/model.ts
Normal file
80
types/ember-data__model/test/model.ts
Normal file
@ -0,0 +1,80 @@
|
||||
import { computed } from '@ember/object';
|
||||
import Model, { attr, belongsTo, hasMany } from '@ember-data/model';
|
||||
import DS, { ChangedAttributes } from 'ember-data';
|
||||
import RSVP from 'rsvp';
|
||||
|
||||
declare module 'ember-data/types/registries/model' {
|
||||
export default interface ModelRegistry {
|
||||
user: InstanceType<typeof User>;
|
||||
person: Person;
|
||||
human: Human;
|
||||
}
|
||||
}
|
||||
|
||||
class Person extends Model.extend({
|
||||
firstName: attr(),
|
||||
lastName: attr(),
|
||||
title: attr({ defaultValue: 'The default' }),
|
||||
title2: attr({ defaultValue: () => 'The default' }),
|
||||
|
||||
fullName: computed('firstName', 'lastName', function() {
|
||||
return `${this.get('firstName')} ${this.get('lastName')}`;
|
||||
}),
|
||||
}) {}
|
||||
|
||||
const User = Model.extend({
|
||||
username: attr('string'),
|
||||
email: attr('string'),
|
||||
verified: attr('boolean', { defaultValue: false }),
|
||||
canBeNull: attr('boolean', { allowNull: true }),
|
||||
createdAt: attr('date', {
|
||||
defaultValue() {
|
||||
return new Date();
|
||||
},
|
||||
}),
|
||||
mother: belongsTo('person'),
|
||||
father: belongsTo('person'),
|
||||
friends: hasMany('human'),
|
||||
});
|
||||
|
||||
class Human extends Model {
|
||||
@attr() age: number;
|
||||
@belongsTo('human') mother: Human;
|
||||
// We should remove the direct use of `DS.PromiseManyArray` by creating and
|
||||
// exporting a type which represents `HasMany<Person>`.
|
||||
@hasMany('person') children: DS.PromiseManyArray<Person>;
|
||||
}
|
||||
|
||||
const user = User.create({ username: 'dwickern' });
|
||||
user.get('id'); // $ExpectType string
|
||||
user.get('username'); // $ExpectType string
|
||||
user.get('verified'); // $ExpectType boolean
|
||||
user.get('createdAt'); // $ExpectType Date
|
||||
|
||||
user.serialize();
|
||||
user.serialize({ includeId: true });
|
||||
user.serialize({ includeId: true });
|
||||
|
||||
const attributes: ChangedAttributes = user.changedAttributes();
|
||||
|
||||
user.rollbackAttributes(); // $ExpectType void
|
||||
|
||||
let destroyResult: RSVP.Promise<typeof user>;
|
||||
destroyResult = user.destroyRecord();
|
||||
destroyResult = user.destroyRecord({});
|
||||
destroyResult = user.destroyRecord({ adapterOptions: {} });
|
||||
destroyResult = user.destroyRecord({ adapterOptions: { waffles: 'are yummy' } });
|
||||
|
||||
user.deleteRecord(); // $ExpectType void
|
||||
|
||||
user.unloadRecord(); // $ExpectType void
|
||||
|
||||
let jsonified: object;
|
||||
jsonified = user.toJSON();
|
||||
jsonified = user.toJSON({ includeId: true });
|
||||
|
||||
let reloaded: RSVP.Promise<typeof user>;
|
||||
reloaded = user.reload();
|
||||
reloaded = user.reload({});
|
||||
reloaded = user.reload({ adapterOptions: {} });
|
||||
reloaded = user.reload({ adapterOptions: { fastAsCanBe: 'yessirree' } });
|
||||
56
types/ember-data__model/tsconfig.json
Normal file
56
types/ember-data__model/tsconfig.json
Normal file
@ -0,0 +1,56 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": ["es6", "dom"],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": false,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"paths": {
|
||||
"@ember-data/model": ["ember-data__model"],
|
||||
"@ember-data/model/*": ["ember-data__model/*"],
|
||||
"@ember/application": ["ember__application"],
|
||||
"@ember/application/*": ["ember__application/*"],
|
||||
"@ember/array": ["ember__array"],
|
||||
"@ember/array/*": ["ember__array/*"],
|
||||
"@ember/component": ["ember__component"],
|
||||
"@ember/component/*": ["ember__component/*"],
|
||||
"@ember/controller": ["ember__controller"],
|
||||
"@ember/debug": ["ember__debug"],
|
||||
"@ember/debug/*": ["ember__debug/*"],
|
||||
"@ember/engine": ["ember__engine"],
|
||||
"@ember/engine/*": ["ember__engine/*"],
|
||||
"@ember/error": ["ember__error"],
|
||||
"@ember/object": ["ember__object"],
|
||||
"@ember/object/*": ["ember__object/*"],
|
||||
"@ember/polyfills": ["ember__polyfills"],
|
||||
"@ember/routing": ["ember__routing"],
|
||||
"@ember/routing/*": ["ember__routing/*"],
|
||||
"@ember/runloop": ["ember__runloop"],
|
||||
"@ember/runloop/*": ["ember__runloop/*"],
|
||||
"@ember/service": ["ember__service"],
|
||||
"@ember/string": ["ember__string"],
|
||||
"@ember/string/*": ["ember__string/*"],
|
||||
"@ember/template": ["ember__template"],
|
||||
"@ember/template/*": ["ember__template/*"],
|
||||
"@ember/test": ["ember__test"],
|
||||
"@ember/test/*": ["ember__test/*"],
|
||||
"@ember/utils": ["ember__utils"],
|
||||
"@ember/utils/*": ["ember__utils/*"]
|
||||
},
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"esModuleInterop": true,
|
||||
"experimentalDecorators": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"test/lib/assert.ts",
|
||||
"test/model.ts"
|
||||
]
|
||||
}
|
||||
21
types/ember-data__model/tslint.json
Normal file
21
types/ember-data__model/tslint.json
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"extends": "dtslint/dt.json",
|
||||
// Copied without modification from config for ember-data.
|
||||
"rules": {
|
||||
"strict-export-declare-modifiers": false,
|
||||
"jsdoc-format": false,
|
||||
"no-misused-new": false,
|
||||
// not sure what this means
|
||||
"no-single-declare-module": false,
|
||||
"object-literal-key-quotes": false,
|
||||
"only-arrow-functions": false,
|
||||
"no-empty-interface": false,
|
||||
"prefer-const": false,
|
||||
"no-unnecessary-generics": false,
|
||||
"no-declare-current-package": false,
|
||||
"no-self-import": false,
|
||||
"no-return-await": false, // used in tests
|
||||
// @ember-data packages do not yet have ES module exports
|
||||
"npm-naming": false
|
||||
}
|
||||
}
|
||||
4
types/ember-data__serializer/OTHER_FILES.txt
Normal file
4
types/ember-data__serializer/OTHER_FILES.txt
Normal file
@ -0,0 +1,4 @@
|
||||
json-api.d.ts
|
||||
json.d.ts
|
||||
rest.d.ts
|
||||
transform.d.ts
|
||||
11
types/ember-data__serializer/index.d.ts
vendored
Normal file
11
types/ember-data__serializer/index.d.ts
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
// Type definitions for @ember-data/serializer 3.15
|
||||
// Project: https://github.com/emberjs/data
|
||||
// Definitions by: Chris Krycho <https://github.com/me>
|
||||
// Dan Freeman <https://github.com/dfreeman>
|
||||
// James C. Davis <https://github.com/jamescdavis>
|
||||
// Mike North <https://github.com/mike-north>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 3.6
|
||||
|
||||
import DS from 'ember-data';
|
||||
export default DS.Serializer;
|
||||
3
types/ember-data__serializer/json-api.d.ts
vendored
Normal file
3
types/ember-data__serializer/json-api.d.ts
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
import DS from 'ember-data';
|
||||
|
||||
export default DS.JSONAPISerializer;
|
||||
2
types/ember-data__serializer/json.d.ts
vendored
Normal file
2
types/ember-data__serializer/json.d.ts
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
import DS from 'ember-data';
|
||||
export default DS.JSONSerializer;
|
||||
4
types/ember-data__serializer/rest.d.ts
vendored
Normal file
4
types/ember-data__serializer/rest.d.ts
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
import DS from 'ember-data';
|
||||
|
||||
export let EmbeddedRecordsMixin: DS.EmbeddedRecordsMixin;
|
||||
export default DS.RESTSerializer;
|
||||
22
types/ember-data__serializer/test/index.ts
Normal file
22
types/ember-data__serializer/test/index.ts
Normal file
@ -0,0 +1,22 @@
|
||||
import Serializer from '@ember-data/serializer';
|
||||
import ModelRegistry from 'ember-data/types/registries/model';
|
||||
import Store from '@ember-data/store';
|
||||
import Model from '@ember-data/model';
|
||||
|
||||
class FakeModel extends Model {
|
||||
hasFunData = true;
|
||||
}
|
||||
|
||||
declare module 'ember-data/types/registries/model' {
|
||||
export default interface ModelRegistry {
|
||||
'fake-model': FakeModel;
|
||||
}
|
||||
}
|
||||
|
||||
class MySerializer extends Serializer {
|
||||
someMethod() {
|
||||
// has types from Serializer
|
||||
this.store; // $ExpectType Store
|
||||
this.normalize(new FakeModel(), { works: 'yep' }); // $ExpectType {}
|
||||
}
|
||||
}
|
||||
8
types/ember-data__serializer/test/json-api.ts
Normal file
8
types/ember-data__serializer/test/json-api.ts
Normal file
@ -0,0 +1,8 @@
|
||||
import JSONAPISerializer from '@ember-data/serializer/json-api';
|
||||
|
||||
class MoarSerialized extends JSONAPISerializer {
|
||||
someMethod() {
|
||||
// has types from JSONAPISerializer
|
||||
this.modelNameFromPayloadKey('hello'); // $ExpectType string
|
||||
}
|
||||
}
|
||||
8
types/ember-data__serializer/test/json.ts
Normal file
8
types/ember-data__serializer/test/json.ts
Normal file
@ -0,0 +1,8 @@
|
||||
import JSONSerializer from '@ember-data/serializer/json';
|
||||
|
||||
class MyJSONSerializer extends JSONSerializer {
|
||||
someMethod() {
|
||||
// has types from JSONSerializer
|
||||
this.keyForLink('a', 'b'); // $ExpectType string
|
||||
}
|
||||
}
|
||||
18
types/ember-data__serializer/test/rest.ts
Normal file
18
types/ember-data__serializer/test/rest.ts
Normal file
@ -0,0 +1,18 @@
|
||||
import RESTSerializer, { EmbeddedRecordsMixin } from '@ember-data/serializer/rest';
|
||||
import EmberObject from '@ember/object';
|
||||
import Model from '@ember-data/model';
|
||||
|
||||
class MySerializer extends RESTSerializer {
|
||||
because = 'this needs to have the right type *and* the right runtime';
|
||||
|
||||
someMethod() {
|
||||
// has types from RESTSerializer
|
||||
this.keyForPolymorphicType('a', 'b', 'c'); // $ExpectType string
|
||||
}
|
||||
}
|
||||
|
||||
class Foo extends EmberObject.extend(EmbeddedRecordsMixin) {
|
||||
someMethod() {
|
||||
this.normalize; // $ExpectType (typeClass: Model, hash: {}, prop: string) => {}
|
||||
}
|
||||
}
|
||||
8
types/ember-data__serializer/test/transform.ts
Normal file
8
types/ember-data__serializer/test/transform.ts
Normal file
@ -0,0 +1,8 @@
|
||||
import Transform from '@ember-data/serializer/transform';
|
||||
|
||||
class Foo extends Transform {
|
||||
someMethod() {
|
||||
// has types from Transform
|
||||
this.serialize({ cool: 'cool cool' }, { defaultValue: 'potato', allowNull: false }); // $ExpectType any
|
||||
}
|
||||
}
|
||||
2
types/ember-data__serializer/transform.d.ts
vendored
Normal file
2
types/ember-data__serializer/transform.d.ts
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
import DS from 'ember-data';
|
||||
export default DS.Transform;
|
||||
61
types/ember-data__serializer/tsconfig.json
Normal file
61
types/ember-data__serializer/tsconfig.json
Normal file
@ -0,0 +1,61 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": ["es6", "dom"],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictFunctionTypes": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"paths": {
|
||||
"@ember-data/model": ["ember-data__model"],
|
||||
"@ember-data/model/*": ["ember-data__model/*"],
|
||||
"@ember-data/serializer": ["ember-data__serializer"],
|
||||
"@ember-data/serializer/*": ["ember-data__serializer/*"],
|
||||
"@ember-data/store": ["ember-data__store"],
|
||||
"@ember-data/store/*": ["ember-data__store/*"],
|
||||
"@ember/application": ["ember__application"],
|
||||
"@ember/application/*": ["ember__application/*"],
|
||||
"@ember/array": ["ember__array"],
|
||||
"@ember/array/*": ["ember__array/*"],
|
||||
"@ember/component": ["ember__component"],
|
||||
"@ember/component/*": ["ember__component/*"],
|
||||
"@ember/controller": ["ember__controller"],
|
||||
"@ember/debug": ["ember__debug"],
|
||||
"@ember/debug/*": ["ember__debug/*"],
|
||||
"@ember/engine": ["ember__engine"],
|
||||
"@ember/engine/*": ["ember__engine/*"],
|
||||
"@ember/error": ["ember__error"],
|
||||
"@ember/object": ["ember__object"],
|
||||
"@ember/object/*": ["ember__object/*"],
|
||||
"@ember/polyfills": ["ember__polyfills"],
|
||||
"@ember/routing": ["ember__routing"],
|
||||
"@ember/routing/*": ["ember__routing/*"],
|
||||
"@ember/runloop": ["ember__runloop"],
|
||||
"@ember/runloop/*": ["ember__runloop/*"],
|
||||
"@ember/service": ["ember__service"],
|
||||
"@ember/string": ["ember__string"],
|
||||
"@ember/string/*": ["ember__string/*"],
|
||||
"@ember/template": ["ember__template"],
|
||||
"@ember/template/*": ["ember__template/*"],
|
||||
"@ember/test": ["ember__test"],
|
||||
"@ember/test/*": ["ember__test/*"],
|
||||
"@ember/utils": ["ember__utils"],
|
||||
"@ember/utils/*": ["ember__utils/*"]
|
||||
},
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"test/index.ts",
|
||||
"test/json-api.ts",
|
||||
"test/json.ts",
|
||||
"test/rest.ts",
|
||||
"test/transform.ts"
|
||||
]
|
||||
}
|
||||
6
types/ember-data__serializer/tslint.json
Normal file
6
types/ember-data__serializer/tslint.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"extends": "dtslint/dt.json",
|
||||
"rules": {
|
||||
"npm-naming": false // The ember addon package exports *build-time*, not *run-time* code.
|
||||
}
|
||||
}
|
||||
31
types/ember-data__store/ember-data__store-tests.ts
Normal file
31
types/ember-data__store/ember-data__store-tests.ts
Normal file
@ -0,0 +1,31 @@
|
||||
import DS from 'ember-data';
|
||||
import ModelRegistry from 'ember-data/types/registries/model';
|
||||
import Store, { normalizeModelName } from '@ember-data/store';
|
||||
import Model, { attr, hasMany, belongsTo } from '@ember-data/model';
|
||||
import EmberArray from '@ember/array';
|
||||
|
||||
// -- support types
|
||||
declare class Post extends Model {
|
||||
@attr('string')
|
||||
title: string;
|
||||
|
||||
@hasMany('post-comment')
|
||||
comments: EmberArray<PostComment>;
|
||||
}
|
||||
|
||||
declare class PostComment extends Model {
|
||||
@belongsTo('post')
|
||||
post: Post;
|
||||
}
|
||||
|
||||
declare module 'ember-data/types/registries/model' {
|
||||
export default interface ModelRegistry {
|
||||
post: Post;
|
||||
'post-comment': PostComment;
|
||||
}
|
||||
}
|
||||
|
||||
// -- actual tests
|
||||
Store; // $ExpectType<DS.Store>
|
||||
normalizeModelName('post'); // $ExpectType<string>
|
||||
normalizeModelName('post-comment'); // $ExpectType<string>
|
||||
14
types/ember-data__store/index.d.ts
vendored
Normal file
14
types/ember-data__store/index.d.ts
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
// Type definitions for @ember-data/store 3.15
|
||||
// Project: https://github.com/emberjs/data
|
||||
// Definitions by: Chris Krycho <https://github.com/me>
|
||||
// Dan Freeman <https://github.com/dfreeman>
|
||||
// James C. Davis <https://github.com/jamescdavis>
|
||||
// Mike North <https://github.com/mike-north>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 3.6
|
||||
|
||||
import DS from 'ember-data';
|
||||
|
||||
export import normalizeModelName = DS.normalizeModelName;
|
||||
|
||||
export default DS.Store;
|
||||
57
types/ember-data__store/tsconfig.json
Normal file
57
types/ember-data__store/tsconfig.json
Normal file
@ -0,0 +1,57 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": ["es6", "dom"],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": false,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"paths": {
|
||||
"@ember-data/model": ["ember-data__model"],
|
||||
"@ember-data/model/*": ["ember-data__model/*"],
|
||||
"@ember-data/store": ["ember-data__store"],
|
||||
"@ember-data/store/*": ["ember-data__store/*"],
|
||||
"@ember/application": ["ember__application"],
|
||||
"@ember/application/*": ["ember__application/*"],
|
||||
"@ember/array": ["ember__array"],
|
||||
"@ember/array/*": ["ember__array/*"],
|
||||
"@ember/component": ["ember__component"],
|
||||
"@ember/component/*": ["ember__component/*"],
|
||||
"@ember/controller": ["ember__controller"],
|
||||
"@ember/debug": ["ember__debug"],
|
||||
"@ember/debug/*": ["ember__debug/*"],
|
||||
"@ember/engine": ["ember__engine"],
|
||||
"@ember/engine/*": ["ember__engine/*"],
|
||||
"@ember/error": ["ember__error"],
|
||||
"@ember/object": ["ember__object"],
|
||||
"@ember/object/*": ["ember__object/*"],
|
||||
"@ember/polyfills": ["ember__polyfills"],
|
||||
"@ember/routing": ["ember__routing"],
|
||||
"@ember/routing/*": ["ember__routing/*"],
|
||||
"@ember/runloop": ["ember__runloop"],
|
||||
"@ember/runloop/*": ["ember__runloop/*"],
|
||||
"@ember/service": ["ember__service"],
|
||||
"@ember/string": ["ember__string"],
|
||||
"@ember/string/*": ["ember__string/*"],
|
||||
"@ember/template": ["ember__template"],
|
||||
"@ember/template/*": ["ember__template/*"],
|
||||
"@ember/test": ["ember__test"],
|
||||
"@ember/test/*": ["ember__test/*"],
|
||||
"@ember/utils": ["ember__utils"],
|
||||
"@ember/utils/*": ["ember__utils/*"]
|
||||
},
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"esModuleInterop": true,
|
||||
"experimentalDecorators": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"ember-data__store-tests.ts"
|
||||
]
|
||||
}
|
||||
21
types/ember-data__store/tslint.json
Normal file
21
types/ember-data__store/tslint.json
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"extends": "dtslint/dt.json",
|
||||
// Copied without modification from config for ember-data.
|
||||
"rules": {
|
||||
"strict-export-declare-modifiers": false,
|
||||
"jsdoc-format": false,
|
||||
"no-misused-new": false,
|
||||
// not sure what this means
|
||||
"no-single-declare-module": false,
|
||||
"object-literal-key-quotes": false,
|
||||
"only-arrow-functions": false,
|
||||
"no-empty-interface": false,
|
||||
"prefer-const": false,
|
||||
"no-unnecessary-generics": false,
|
||||
"no-declare-current-package": false,
|
||||
"no-self-import": false,
|
||||
"no-return-await": false, // used in tests
|
||||
// @ember-data packages do not yet have ES module exports
|
||||
"npm-naming": false
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user