From 120838d8311834b17b33b6be97e44c1def7003fc Mon Sep 17 00:00:00 2001 From: toran billups Date: Thu, 7 Jun 2018 19:58:21 -0500 Subject: [PATCH] EMBER: added ember-cli-typescript --- app/config/environment.d.ts | 16 +++ package.json | 10 +- tsconfig.json | 34 +++++ types/guides/index.d.ts | 10 ++ yarn.lock | 274 ++++++++++++++++++++++++++++++++++-- 5 files changed, 335 insertions(+), 9 deletions(-) create mode 100644 app/config/environment.d.ts create mode 100644 tsconfig.json create mode 100644 types/guides/index.d.ts diff --git a/app/config/environment.d.ts b/app/config/environment.d.ts new file mode 100644 index 0000000..3252cc3 --- /dev/null +++ b/app/config/environment.d.ts @@ -0,0 +1,16 @@ +export default config; + +/** + * Type declarations for + * import config from './config/environment' + * + * For now these need to be managed by the developer + * since different ember addons can materialize new entries. + */ +declare const config: { + environment: any; + modulePrefix: string; + podModulePrefix: string; + locationType: string; + rootURL: string; +}; diff --git a/package.json b/package.json index 4ebc316..c229386 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,12 @@ "test": "ember test" }, "devDependencies": { + "@types/ember": "^2.8.25", + "@types/ember-qunit": "^3.0.2", + "@types/ember-test-helpers": "^0.7.1", + "@types/ember-testing-helpers": "^0.0.3", + "@types/qunit": "^2.5.1", + "@types/rsvp": "^4.0.1", "broccoli-asset-rev": "^2.7.0", "ember-angle-bracket-invocation-polyfill": "^1.1.4", "ember-cli": "~3.2.0-beta.2", @@ -31,6 +37,7 @@ "ember-cli-qunit": "^4.1.1", "ember-cli-shims": "^1.2.0", "ember-cli-sri": "^2.1.0", + "ember-cli-typescript": "^1.3.2", "ember-cli-uglify": "^2.0.0", "ember-export-application-global": "^2.0.0", "ember-load-initializers": "^1.1.0", @@ -40,7 +47,8 @@ "ember-welcome-page": "^3.0.0", "eslint-plugin-ember": "^5.0.0", "loader.js": "^4.2.3", - "qunit-dom": "^0.6.2" + "qunit-dom": "^0.6.2", + "typescript": "^2.9.1" }, "engines": { "node": "^4.5 || 6.* || >= 7.*" diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..f862f2d --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,34 @@ +{ + "compilerOptions": { + "target": "es2017", + "allowJs": true, + "moduleResolution": "node", + "allowSyntheticDefaultImports": true, + "noImplicitAny": true, + "noImplicitThis": true, + "alwaysStrict": true, + "strictNullChecks": true, + "strictPropertyInitialization": true, + "noFallthroughCasesInSwitch": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "noEmitOnError": false, + "noEmit": true, + "inlineSourceMap": true, + "inlineSources": true, + "baseUrl": ".", + "module": "es6", + "paths": { + "guides/*": [ + "app/*" + ], + "*": [ + "types/*" + ] + } + }, + "include": [ + "app" + ] +} diff --git a/types/guides/index.d.ts b/types/guides/index.d.ts new file mode 100644 index 0000000..898f8fb --- /dev/null +++ b/types/guides/index.d.ts @@ -0,0 +1,10 @@ + +import Ember from 'ember'; + +declare global { + interface Array extends Ember.ArrayPrototypeExtensions {} + // interface Function extends Ember.FunctionPrototypeExtensions {} +} + +export {}; + diff --git a/yarn.lock b/yarn.lock index 588e333..aee819e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20,6 +20,49 @@ dependencies: "@glimmer/di" "^0.2.0" +"@types/ember-qunit@^3.0.2": + version "3.0.2" + resolved "https://registry.npmjs.org/@types/ember-qunit/-/ember-qunit-3.0.2.tgz#83e5df08eec860071de3c8faa2cc0f06494bf4d6" + dependencies: + "@types/ember" "*" + "@types/ember-test-helpers" "*" + +"@types/ember-test-helpers@*", "@types/ember-test-helpers@^0.7.1": + version "0.7.1" + resolved "https://registry.npmjs.org/@types/ember-test-helpers/-/ember-test-helpers-0.7.1.tgz#14b9f132e9c60c2dfaf7a10ace937bfb7157fb26" + dependencies: + "@types/ember" "*" + "@types/htmlbars-inline-precompile" "*" + "@types/jquery" "*" + "@types/rsvp" "*" + +"@types/ember-testing-helpers@^0.0.3": + version "0.0.3" + resolved "https://registry.npmjs.org/@types/ember-testing-helpers/-/ember-testing-helpers-0.0.3.tgz#1a6cfc484b63d19ddd822c87e4dd710597db17d9" + dependencies: + "@types/jquery" "*" + "@types/rsvp" "*" + +"@types/ember@*", "@types/ember@^2.8.25": + version "2.8.25" + resolved "https://registry.npmjs.org/@types/ember/-/ember-2.8.25.tgz#351f9e1526d1980f7864878beb06718995252361" + +"@types/htmlbars-inline-precompile@*": + version "1.0.0" + resolved "https://registry.npmjs.org/@types/htmlbars-inline-precompile/-/htmlbars-inline-precompile-1.0.0.tgz#4c283da1a7e303b269de3c6aa953acc8d8736949" + +"@types/jquery@*": + version "3.3.2" + resolved "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.2.tgz#8700226bdde24b6f98e3a60126dbaab3b2a3ab41" + +"@types/qunit@^2.5.1": + version "2.5.1" + resolved "https://registry.npmjs.org/@types/qunit/-/qunit-2.5.1.tgz#ee39feefb9ee33f6761a046c563cd3c2caacfcf3" + +"@types/rsvp@*", "@types/rsvp@^4.0.1": + version "4.0.1" + resolved "https://registry.npmjs.org/@types/rsvp/-/rsvp-4.0.1.tgz#82956bc8d0a8151ec3b7e9cae64fd06808a1c714" + abbrev@1: version "1.1.1" resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -875,7 +918,7 @@ braces@^1.8.2: preserve "^0.2.0" repeat-element "^1.1.2" -braces@^2.3.1: +braces@^2.3.0, braces@^2.3.1: version "2.3.2" resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" dependencies: @@ -1215,7 +1258,7 @@ broccoli-sri-hash@^2.1.0: sri-toolbox "^0.2.0" symlink-or-copy "^1.0.1" -broccoli-stew@^1.2.0, broccoli-stew@^1.3.3, broccoli-stew@^1.5.0: +broccoli-stew@^1.2.0, broccoli-stew@^1.3.3, broccoli-stew@^1.4.0, broccoli-stew@^1.5.0: version "1.5.0" resolved "https://registry.npmjs.org/broccoli-stew/-/broccoli-stew-1.5.0.tgz#d7af8c18511dce510e49d308a62e5977f461883c" dependencies: @@ -1418,6 +1461,24 @@ chokidar@1.7.0: optionalDependencies: fsevents "^1.0.0" +chokidar@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.0.3.tgz#dcbd4f6cbb2a55b4799ba8a840ac527e5f4b1176" + dependencies: + anymatch "^2.0.0" + async-each "^1.0.0" + braces "^2.3.0" + glob-parent "^3.1.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^2.1.1" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + upath "^1.0.0" + optionalDependencies: + fsevents "^1.1.2" + chownr@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" @@ -1613,7 +1674,7 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" -console-ui@^2.2.2: +console-ui@^2.1.0, console-ui@^2.2.2: version "2.2.2" resolved "https://registry.npmjs.org/console-ui/-/console-ui-2.2.2.tgz#b294a2934de869dd06789ab4be69555411edef29" dependencies: @@ -1676,7 +1737,7 @@ core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" -cross-spawn@^5.1.0: +cross-spawn@^5.0.1, cross-spawn@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" dependencies: @@ -2023,12 +2084,52 @@ ember-cli-string-utils@^1.0.0, ember-cli-string-utils@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/ember-cli-string-utils/-/ember-cli-string-utils-1.1.0.tgz#39b677fc2805f55173735376fcef278eaa4452a1" +ember-cli-test-info@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/ember-cli-test-info/-/ember-cli-test-info-1.0.0.tgz#ed4e960f249e97523cf891e4aed2072ce84577b4" + dependencies: + ember-cli-string-utils "^1.0.0" + ember-cli-test-loader@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/ember-cli-test-loader/-/ember-cli-test-loader-2.2.0.tgz#3fb8d5d1357e4460d3f0a092f5375e71b6f7c243" dependencies: ember-cli-babel "^6.8.1" +ember-cli-typescript@^1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/ember-cli-typescript/-/ember-cli-typescript-1.3.2.tgz#6e2124ce1e85dd52c92e5a8b071d9ffcbb4adf4d" + dependencies: + broccoli-debug "^0.6.4" + broccoli-funnel "^2.0.1" + broccoli-merge-trees "^2.0.0" + broccoli-plugin "^1.2.1" + broccoli-stew "^1.4.0" + chalk "^2.3.0" + chokidar "^2.0.3" + debug "^3.1.0" + ember-cli "~3.1.4" + ember-cli-get-component-path-option "^1.0.0" + ember-cli-is-package-missing "^1.0.0" + ember-cli-normalize-entity-name "^1.0.0" + ember-cli-path-utils "^1.0.0" + ember-cli-string-utils "^1.1.0" + ember-cli-test-info "^1.0.0" + ember-cli-valid-component-name "^1.0.0" + ember-cli-version-checker "^2.1.0" + ember-router-generator "^1.2.3" + escape-string-regexp "^1.0.5" + execa "^0.9.0" + exists-sync "^0.0.4" + fs-extra "^5.0.0" + inflection "^1.12.0" + resolve "^1.5.0" + rimraf "^2.6.2" + rsvp "^4.8.1" + silent-error "^1.1.0" + symlink-or-copy "^1.1.8" + walk-sync "^0.3.2" + ember-cli-uglify@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/ember-cli-uglify/-/ember-cli-uglify-2.1.0.tgz#4a0641fe4768d7ab7d4807aca9924cc77c544184" @@ -2049,6 +2150,94 @@ ember-cli-version-checker@^2.0.0, ember-cli-version-checker@^2.1.0, ember-cli-ve resolve "^1.3.3" semver "^5.3.0" +ember-cli@~3.1.4: + version "3.1.4" + resolved "https://registry.npmjs.org/ember-cli/-/ember-cli-3.1.4.tgz#95f7ff4302d535619b5d5ff1c7040877a67d4468" + dependencies: + amd-name-resolver "^1.2.0" + babel-plugin-transform-es2015-modules-amd "^6.24.0" + bower-config "^1.3.0" + bower-endpoint-parser "0.2.2" + broccoli-babel-transpiler "^6.0.0" + broccoli-builder "^0.18.8" + broccoli-concat "^3.2.2" + broccoli-config-loader "^1.0.0" + broccoli-config-replace "^1.1.2" + broccoli-debug "^0.6.3" + broccoli-funnel "^2.0.0" + broccoli-funnel-reducer "^1.0.0" + broccoli-merge-trees "^2.0.0" + broccoli-middleware "^1.2.1" + broccoli-source "^1.1.0" + broccoli-stew "^1.2.0" + calculate-cache-key-for-tree "^1.0.0" + capture-exit "^1.1.0" + chalk "^2.0.1" + clean-base-url "^1.0.0" + compression "^1.4.4" + configstore "^3.0.0" + console-ui "^2.1.0" + core-object "^3.1.3" + dag-map "^2.0.2" + diff "^3.2.0" + ember-cli-broccoli-sane-watcher "^2.0.4" + ember-cli-is-package-missing "^1.0.0" + ember-cli-lodash-subset "^2.0.1" + ember-cli-normalize-entity-name "^1.0.0" + ember-cli-preprocess-registry "^3.1.0" + ember-cli-string-utils "^1.0.0" + ensure-posix-path "^1.0.2" + execa "^0.9.0" + exists-sync "0.0.4" + exit "^0.1.2" + express "^4.12.3" + filesize "^3.1.3" + find-up "^2.1.0" + find-yarn-workspace-root "^1.0.0" + fs-extra "^5.0.0" + fs-tree-diff "^0.5.2" + get-caller-file "^1.0.0" + git-repo-info "^1.4.1" + glob "^7.1.2" + heimdalljs "^0.2.3" + heimdalljs-fs-monitor "^0.2.0" + heimdalljs-graph "^0.3.1" + heimdalljs-logger "^0.1.7" + http-proxy "^1.9.0" + inflection "^1.7.0" + is-git-url "^1.0.0" + isbinaryfile "^3.0.0" + js-yaml "^3.6.1" + json-stable-stringify "^1.0.1" + leek "0.0.24" + lodash.template "^4.2.5" + markdown-it "^8.3.0" + markdown-it-terminal "0.1.0" + minimatch "^3.0.0" + morgan "^1.8.1" + node-modules-path "^1.0.0" + nopt "^3.0.6" + npm-package-arg "^6.0.0" + portfinder "^1.0.7" + promise-map-series "^0.2.1" + quick-temp "^0.1.8" + resolve "^1.3.0" + rsvp "^4.7.0" + sane "^2.2.0" + semver "^5.1.1" + silent-error "^1.0.0" + sort-package-json "^1.4.0" + symlink-or-copy "^1.1.8" + temp "0.8.3" + testem "^2.0.0" + tiny-lr "^1.0.3" + tree-sync "^1.2.1" + uuid "^3.0.0" + validate-npm-package-name "^3.0.0" + walk-sync "^0.3.0" + watch-detector "^0.1.0" + yam "^0.0.24" + ember-cli@~3.2.0-beta.2: version "3.2.0-beta.2" resolved "https://registry.npmjs.org/ember-cli/-/ember-cli-3.2.0-beta.2.tgz#956423a249f6eefb9b1e7df41705ea6db5aedb11" @@ -2462,6 +2651,18 @@ execa@^0.10.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/execa/-/execa-0.9.0.tgz#adb7ce62cf985071f60580deb4a88b9e34712d01" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + exists-stat@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/exists-stat/-/exists-stat-1.0.0.tgz#0660e3525a2e89d9e446129440c272edfa24b529" @@ -2470,7 +2671,7 @@ exists-sync@0.0.3: version "0.0.3" resolved "https://registry.npmjs.org/exists-sync/-/exists-sync-0.0.3.tgz#b910000bedbb113b378b82f5f5a7638107622dcf" -exists-sync@0.0.4: +exists-sync@0.0.4, exists-sync@^0.0.4: version "0.0.4" resolved "https://registry.npmjs.org/exists-sync/-/exists-sync-0.0.4.tgz#9744c2c428cc03b01060db454d4b12f0ef3c8879" @@ -2853,7 +3054,7 @@ fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents@^1.0.0, fsevents@^1.2.3: +fsevents@^1.0.0, fsevents@^1.1.2, fsevents@^1.2.3: version "1.2.4" resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" dependencies: @@ -2920,6 +3121,13 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + glob@^5.0.10: version "5.0.15" resolved "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" @@ -3326,7 +3534,7 @@ is-extglob@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" -is-extglob@^2.1.0: +is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3362,6 +3570,12 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" +is-glob@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" + dependencies: + is-extglob "^2.1.1" + is-number@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" @@ -4566,6 +4780,10 @@ passwd-user@^1.2.1: dependencies: exec-file-sync "^2.0.0" +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + path-exists@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" @@ -4996,7 +5214,7 @@ rsvp@^3.0.14, rsvp@^3.0.16, rsvp@^3.0.17, rsvp@^3.0.18, rsvp@^3.0.21, rsvp@^3.0. version "3.6.2" resolved "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" -rsvp@^4.6.1, rsvp@^4.7.0, rsvp@^4.8.2: +rsvp@^4.6.1, rsvp@^4.7.0, rsvp@^4.8.1, rsvp@^4.8.2: version "4.8.2" resolved "https://registry.npmjs.org/rsvp/-/rsvp-4.8.2.tgz#9d5647108735784eb13418cdddb56f75b919d722" @@ -5503,6 +5721,38 @@ terser@^3.7.5: commander "~2.14.1" source-map "~0.6.1" +testem@^2.0.0: + version "2.7.1" + resolved "https://registry.npmjs.org/testem/-/testem-2.7.1.tgz#d0be5ed15aa084ebf4ef7f0f97e968ea4561a888" + dependencies: + backbone "^1.1.2" + bluebird "^3.4.6" + charm "^1.0.0" + commander "^2.6.0" + consolidate "^0.15.1" + execa "^0.10.0" + express "^4.10.7" + fireworm "^0.7.0" + glob "^7.0.4" + http-proxy "^1.13.1" + js-yaml "^3.2.5" + lodash.assignin "^4.1.0" + lodash.castarray "^4.4.0" + lodash.clonedeep "^4.4.1" + lodash.find "^4.5.1" + lodash.uniqby "^4.7.0" + mkdirp "^0.5.1" + mustache "^2.2.1" + node-notifier "^5.0.1" + npmlog "^4.0.0" + printf "^0.3.0" + rimraf "^2.4.4" + socket.io "^2.1.0" + spawn-args "^0.2.0" + styled_string "0.0.1" + tap-parser "^7.0.0" + xmldom "^0.1.19" + testem@^2.2.0: version "2.7.0" resolved "https://registry.npmjs.org/testem/-/testem-2.7.0.tgz#055177f60170dd75538b55829740721d1106ba8f" @@ -5645,6 +5895,10 @@ typedarray@^0.0.6: version "0.0.6" resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" +typescript@^2.9.1: + version "2.9.1" + resolved "https://registry.npmjs.org/typescript/-/typescript-2.9.1.tgz#fdb19d2c67a15d11995fd15640e373e09ab09961" + uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.5.tgz#0c65f15f815aa08b560a61ce8b4db7ffc3f45376" @@ -5713,6 +5967,10 @@ untildify@^2.1.0: dependencies: os-homedir "^1.0.0" +upath@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" + urix@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"