From bf2f66cdd41490549405b076765b658fdaada09c Mon Sep 17 00:00:00 2001 From: Ali Taheri Date: Mon, 5 Sep 2016 10:50:43 +0430 Subject: [PATCH] Add moment-jalaali types --- moment-jalaali/index.d.ts | 47 ++++++++++++++++++++++++++ moment-jalaali/moment-jalaali-tests.ts | 45 ++++++++++++++++++++++++ moment-jalaali/package.json | 5 +++ moment-jalaali/tsconfig.json | 19 +++++++++++ 4 files changed, 116 insertions(+) create mode 100644 moment-jalaali/index.d.ts create mode 100644 moment-jalaali/moment-jalaali-tests.ts create mode 100644 moment-jalaali/package.json create mode 100644 moment-jalaali/tsconfig.json diff --git a/moment-jalaali/index.d.ts b/moment-jalaali/index.d.ts new file mode 100644 index 0000000000..e5fdcde9cc --- /dev/null +++ b/moment-jalaali/index.d.ts @@ -0,0 +1,47 @@ +// Type definitions for moment-jalaali 0.5.0 +// Project: https://github.com/jalaali/moment-jalaali +// Definitions by: Ali Taheri Moghaddar +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import * as moment from 'moment'; + +export = moment; + +declare module 'moment' { + type JUnitOfTime = 'jYear' | 'jMonth'; + + /** + * Add persian language. + */ + function loadPersian(): void; + + function jIsLeapYear(year: number): boolean; + function jDaysInMonth(year: number, month: number): number; + + interface Moment { + + startOf(jUnitOfTime: JUnitOfTime): Moment; + endOf(jUnitOfTime: JUnitOfTime): Moment; + + add(amount: number, jUnitOfTime: JUnitOfTime): Moment; + add(amount: string, jUnitOfTime: JUnitOfTime): Moment; + + subtract(amount: number, jUnitOfTime: JUnitOfTime): Moment; + subtract(amount: string, jUnitOfTime: JUnitOfTime): Moment; + + jYear(y: number): Moment; + jYear(): number; + jMonth(M: number): Moment; + jMonth(M: string): Moment; + jMonth(): number; + jDate(d: number): Moment; + jDate(): number; + jWeek(): number; + jWeek(d: number): Moment; + jWeekYear(): number; + jWeekYear(d: number): Moment; + jDayOfYear(): number; + jDayOfYear(d: number): Moment; + } + +} diff --git a/moment-jalaali/moment-jalaali-tests.ts b/moment-jalaali/moment-jalaali-tests.ts new file mode 100644 index 0000000000..bb3bde0442 --- /dev/null +++ b/moment-jalaali/moment-jalaali-tests.ts @@ -0,0 +1,45 @@ +import * as moment from 'moment-jalaali'; + +moment.loadPersian(); + +moment.jIsLeapYear(1391); + +moment.jDaysInMonth(1395, 11); + +const m = moment(); + +m.jYear(); +m.jMonth(); +m.jDate(); +m.jDayOfYear(); +m.jWeek(); +m.jWeekYear(); + +m.jYear(1); +m.jMonth(1); +m.jDate(1); +m.jDayOfYear(1); +m.jWeek(1); +m.jWeekYear(1); + +m.startOf('jYear'); +m.startOf('jMonth'); + +m.endOf('jMonth'); +m.endOf('jYear'); + +m.add(1, 'jYear'); +m.add(2, 'jMonth'); +m.add(3, 'day'); + +m.add('1', 'jYear'); +m.add('2', 'jMonth'); +m.add('3', 'day'); + +m.subtract(1, 'jYear'); +m.subtract(2, 'jMonth'); +m.subtract(3, 'day'); + +m.subtract('1', 'jYear'); +m.subtract('2', 'jMonth'); +m.subtract('3', 'day'); diff --git a/moment-jalaali/package.json b/moment-jalaali/package.json new file mode 100644 index 0000000000..992b24d513 --- /dev/null +++ b/moment-jalaali/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "moment": "2.14.*" + } +} \ No newline at end of file diff --git a/moment-jalaali/tsconfig.json b/moment-jalaali/tsconfig.json new file mode 100644 index 0000000000..7a7da8dc0b --- /dev/null +++ b/moment-jalaali/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": false, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "moment-jalaali-tests.ts" + ] +} \ No newline at end of file