Skip to content

Commit 60ed1fd

Browse files
committed
Convert to TypeScript
1 parent 8e33fa9 commit 60ed1fd

16 files changed

+45
-32
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@
9292
"@glint/template": "^1.5.2",
9393
"@rollup/plugin-babel": "^6.0.4",
9494
"@tsconfig/ember": "^3.0.8",
95+
"@types/rsvp": "^4.0.9",
9596
"babel-plugin-ember-template-compilation": "^2.2.5",
9697
"concurrently": "^9.0.1",
9798
"decorator-transforms": "^2.2.2",

pnpm-lock.yaml

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rollup.config.mjs

+2-3
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,8 @@ export default {
4848
// Ensure that .gjs files are properly integrated as Javascript
4949
addon.gjs(),
5050

51-
// @todo convert addon to TypeScript
52-
// // Emit .d.ts declaration files
53-
// addon.declarations('declarations'),
51+
// Emit .d.ts declaration files
52+
addon.declarations('declarations'),
5453

5554
// addons are allowed to contain imports of .css files, which we want rollup
5655
// to leave alone and keep in the published output.

src/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
export { lookupValidator as default } from 'validated-changeset';
2-
export { setMessages } from './utils/messages.js';
2+
export { setMessages } from './utils/messages.ts';

src/utils/messages.ts

+7-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import _Messages from 'ember-validators/messages';
22
import { capitalize, dasherize } from '@ember/string';
33

4-
let cachedRef;
5-
let customMessages;
4+
type IMessages = Record<string, string>;
5+
6+
let cachedRef: IMessages | undefined;
7+
let customMessages: IMessages | undefined;
68

79
export const defaultMessages = Object.assign({}, _Messages, {
810
// Blank and present are flipped in ember-validators. Need to flip them back here
@@ -39,17 +41,17 @@ export const defaultMessages = Object.assign({}, _Messages, {
3941
*
4042
* @return {Object}
4143
*/
42-
export function getMessages() {
44+
export function getMessages(): object {
4345
if (cachedRef) {
4446
return cachedRef;
4547
}
4648

4749
cachedRef = Object.assign({}, defaultMessages, customMessages);
4850

49-
return cachedRef;
51+
return cachedRef as IMessages;
5052
}
5153

52-
export function setMessages(messages) {
54+
export function setMessages(messages: IMessages) {
5355
customMessages = messages;
5456
cachedRef = undefined;
5557
}

src/utils/to-date.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
* @returns {Date} the parsed date in the local time zone
55
* @throws {TypeError} 1 argument required
66
*/
7-
export default function toDate(argument) {
7+
export default function toDate(
8+
argument: Date | number | string | (() => Date | number),
9+
): Date {
810
const argStr = Object.prototype.toString.call(argument);
911

1012
if (typeof argument === 'function') {

src/utils/validation-errors.ts

+8-2
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,16 @@ import { get } from '@ember/object';
77

88
import { assert } from '@ember/debug';
99
import { getOwnConfig } from '@embroider/macros';
10-
import { getMessages } from './messages.js';
10+
import { getMessages } from './messages.ts';
11+
12+
type IOwnConfig =
13+
| undefined
14+
| {
15+
rawOutput: boolean;
16+
};
1117

1218
export default function buildMessage(key, result) {
13-
let returnsRaw = getOwnConfig()?.rawOutput || false;
19+
let returnsRaw = getOwnConfig<IOwnConfig>()?.rawOutput || false;
1420
let messages = getMessages();
1521

1622
let description = messages.getDescriptionFor(key);

src/validators/confirmation.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import buildMessage from '../utils/validation-errors.js';
1+
import buildMessage from '../utils/validation-errors.ts';
22
import evValidateConfirmation from 'ember-validators/confirmation';
33

44
export default function validateConfirmation(options = {}) {

src/validators/date.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import buildMessage from '../utils/validation-errors.js';
2-
import withDefaults from '../utils/with-defaults.js';
3-
import toDate from '../utils/to-date.js';
1+
import buildMessage from '../utils/validation-errors.ts';
2+
import withDefaults from '../utils/with-defaults.ts';
3+
import toDate from '../utils/to-date.ts';
44

55
const errorFormat = 'MMM Do, YYYY';
66

src/validators/exclusion.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import buildMessage from '../utils/validation-errors.js';
1+
import buildMessage from '../utils/validation-errors.ts';
22
import evValidateExclusion from 'ember-validators/exclusion';
33

44
export default function validateExclusion(options = {}) {

src/validators/format.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { isEmpty } from '@ember/utils';
2-
import buildMessage from '../utils/validation-errors.js';
2+
import buildMessage from '../utils/validation-errors.ts';
33
import evValidateFormat from 'ember-validators/format';
44

55
export default function validateFormat(options = {}) {

src/validators/inclusion.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import buildMessage from '../utils/validation-errors.js';
1+
import buildMessage from '../utils/validation-errors.ts';
22
import evValidateInclusion from 'ember-validators/inclusion';
33

44
export default function validateInclusion(options = {}) {

src/validators/index.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
export { default as validateDate } from './date.js';
2-
export { default as validatePresence } from './presence.js';
3-
export { default as validateLength } from './length.js';
4-
export { default as validateNumber } from './number.js';
5-
export { default as validateFormat } from './format.js';
6-
export { default as validateInclusion } from './inclusion.js';
7-
export { default as validateExclusion } from './exclusion.js';
8-
export { default as validateConfirmation } from './confirmation.js';
1+
export { default as validateDate } from './date.ts';
2+
export { default as validatePresence } from './presence.ts';
3+
export { default as validateLength } from './length.ts';
4+
export { default as validateNumber } from './number.ts';
5+
export { default as validateFormat } from './format.ts';
6+
export { default as validateInclusion } from './inclusion.ts';
7+
export { default as validateExclusion } from './exclusion.ts';
8+
export { default as validateConfirmation } from './confirmation.ts';

src/validators/length.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import buildMessage from '../utils/validation-errors.js';
2-
import withDefaults from '../utils/with-defaults.js';
1+
import buildMessage from '../utils/validation-errors.ts';
2+
import withDefaults from '../utils/with-defaults.ts';
33
import evValidateLength from 'ember-validators/length';
44

55
export default function validateLength(options = {}) {

src/validators/number.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import buildMessage from '../utils/validation-errors.js';
2-
import withDefaults from '../utils/with-defaults.js';
1+
import buildMessage from '../utils/validation-errors.ts';
2+
import withDefaults from '../utils/with-defaults.ts';
33
import evValidateNumber from 'ember-validators/number';
44

55
export default function validateNumber(options = {}) {

src/validators/presence.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import buildMessage from '../utils/validation-errors.js';
1+
import buildMessage from '../utils/validation-errors.ts';
22
import evValidatePresence from 'ember-validators/presence';
33
import { get } from '@ember/object';
44

0 commit comments

Comments
 (0)