From c0886e7a39fe9baa1e82c3edd18c3ff40944ef25 Mon Sep 17 00:00:00 2001 From: Steve Calvert Date: Tue, 12 Mar 2019 13:04:45 -0700 Subject: [PATCH 1/3] Moving types and classes into separate files --- addon/index.ts | 161 +++------------------------------------- addon/promise-waiter.ts | 52 +++++++++++++ addon/simple-waiter.ts | 34 +++++++++ addon/types.ts | 19 +++++ addon/waiters.ts | 47 ++++++++++++ 5 files changed, 163 insertions(+), 150 deletions(-) create mode 100644 addon/promise-waiter.ts create mode 100644 addon/simple-waiter.ts create mode 100644 addon/types.ts create mode 100644 addon/waiters.ts diff --git a/addon/index.ts b/addon/index.ts index 46661aa9..0e9e51d6 100644 --- a/addon/index.ts +++ b/addon/index.ts @@ -1,150 +1,11 @@ -import { DEBUG } from '@glimmer/env'; - -type WaiterName = string; - -export interface IWaiter { - name: WaiterName; - waitUntil(): boolean; - debugInfo(): unknown[] | undefined | void; -} - -export interface ISimpleWaiterDebugInfo { - stack: string | undefined; - label: string | undefined; -} - -export class SimpleWaiter implements IWaiter { - public name: WaiterName; - - items = new Map(); - - constructor(name: WaiterName) { - this.name = name; - } - - add(item: T, label: string) { - this.items.set(item, { - stack: new Error().stack, - label, - }); - } - - delete(item: T) { - this.items.delete(item); - } - - waitUntil() { - return this.items.size === 0; - } - - debugInfo(): ISimpleWaiterDebugInfo[] { - let output: ISimpleWaiterDebugInfo[] = []; - - this.items.forEach(item => output.push(item)); - - return output; - } -} - -class PromiseWaiter implements IWaiter { - name = 'promise-waiter'; - items = new Map, ISimpleWaiterDebugInfo>(); - - add(promise: Promise, label?: string) { - this.items.set(promise, { - stack: new Error().stack, - label, - }); - } - - delete(promise: Promise) { - this.items.delete(promise); - } - - waitUntil(): boolean { - return this.items.size === 0; - } - - debugInfo(): ISimpleWaiterDebugInfo[] { - let output: ISimpleWaiterDebugInfo[] = []; - - this.items.forEach(item => output.push(item)); - - return output; - } -} - -const PROMISE_WAITER = new PromiseWaiter(); -export function waitForPromise(promise: Promise, label?: string) { - let result = promise; - - if (DEBUG) { - PROMISE_WAITER.add(promise, label); - - result = promise.then( - value => { - PROMISE_WAITER.delete(promise); - return value; - }, - error => { - PROMISE_WAITER.delete(promise); - throw error; - } - ); - } - - return result; -} - -const WAITERS = new Set(); - -export function register(waiter: IWaiter) { - WAITERS.add(waiter); -} - -export function unregister(waiter: IWaiter) { - WAITERS.delete(waiter); -} - -export function getWaiters(): IWaiter[] { - let result: IWaiter[] = []; - - WAITERS.forEach(item => result.push(item)); - - return result; -} - -export function reset() { - WAITERS.clear(); -} - -interface IPendingWaiterState { - pending: number; - waiters: { - [waiterName: string]: true | unknown[]; - }; -} - -export function getPendingWaiterState(): IPendingWaiterState { - let result: IPendingWaiterState = { - pending: 0, - waiters: {}, - }; - - WAITERS.forEach(waiter => { - if (waiter.waitUntil()) { - result.pending++; - - let debugInfo = waiter.debugInfo(); - result.waiters[waiter.name] = debugInfo || true; - } - }); - - return result; -} - -export function shouldWait(): boolean { - let state = getPendingWaiterState(); - - return state.pending > 0; -} +export { + register, + unregister, + getWaiters, + reset, + getPendingWaiterState, + shouldWait, +} from './waiters'; + +export { SimpleWaiter } from './simple-waiter'; +export { PromiseWaiter, waitForPromise } from './promise-waiter'; diff --git a/addon/promise-waiter.ts b/addon/promise-waiter.ts new file mode 100644 index 00000000..897563e2 --- /dev/null +++ b/addon/promise-waiter.ts @@ -0,0 +1,52 @@ +import { DEBUG } from '@glimmer/env'; +import { IWaiter, ISimpleWaiterDebugInfo } from './types'; + +export class PromiseWaiter implements IWaiter { + name = 'promise-waiter'; + items = new Map, ISimpleWaiterDebugInfo>(); + + add(promise: Promise, label?: string) { + this.items.set(promise, { + stack: new Error().stack, + label, + }); + } + + delete(promise: Promise) { + this.items.delete(promise); + } + + waitUntil(): boolean { + return this.items.size === 0; + } + + debugInfo(): ISimpleWaiterDebugInfo[] { + let output: ISimpleWaiterDebugInfo[] = []; + + this.items.forEach(item => output.push(item)); + + return output; + } +} + +const PROMISE_WAITER = new PromiseWaiter(); +export function waitForPromise(promise: Promise, label?: string) { + let result = promise; + + if (DEBUG) { + PROMISE_WAITER.add(promise, label); + + result = promise.then( + value => { + PROMISE_WAITER.delete(promise); + return value; + }, + error => { + PROMISE_WAITER.delete(promise); + throw error; + } + ); + } + + return result; +} diff --git a/addon/simple-waiter.ts b/addon/simple-waiter.ts new file mode 100644 index 00000000..088cfe78 --- /dev/null +++ b/addon/simple-waiter.ts @@ -0,0 +1,34 @@ +import { IWaiter, WaiterName, ISimpleWaiterDebugInfo } from './types'; + +export class SimpleWaiter implements IWaiter { + public name: WaiterName; + + items = new Map(); + + constructor(name: WaiterName) { + this.name = name; + } + + add(item: T, label: string) { + this.items.set(item, { + stack: new Error().stack, + label, + }); + } + + delete(item: T) { + this.items.delete(item); + } + + waitUntil() { + return this.items.size === 0; + } + + debugInfo(): ISimpleWaiterDebugInfo[] { + let output: ISimpleWaiterDebugInfo[] = []; + + this.items.forEach(item => output.push(item)); + + return output; + } +} diff --git a/addon/types.ts b/addon/types.ts new file mode 100644 index 00000000..b0f994b3 --- /dev/null +++ b/addon/types.ts @@ -0,0 +1,19 @@ +export type WaiterName = string; + +export interface IWaiter { + name: WaiterName; + waitUntil(): boolean; + debugInfo(): unknown[] | undefined | void; +} + +export interface ISimpleWaiterDebugInfo { + stack: string | undefined; + label: string | undefined; +} + +export interface IPendingWaiterState { + pending: number; + waiters: { + [waiterName: string]: true | unknown[]; + }; +} diff --git a/addon/waiters.ts b/addon/waiters.ts new file mode 100644 index 00000000..683035b2 --- /dev/null +++ b/addon/waiters.ts @@ -0,0 +1,47 @@ +import { IWaiter, IPendingWaiterState } from './types'; + +const WAITERS = new Set(); + +export function register(waiter: IWaiter) { + WAITERS.add(waiter); +} + +export function unregister(waiter: IWaiter) { + WAITERS.delete(waiter); +} + +export function getWaiters(): IWaiter[] { + let result: IWaiter[] = []; + + WAITERS.forEach(item => result.push(item)); + + return result; +} + +export function reset() { + WAITERS.clear(); +} + +export function getPendingWaiterState(): IPendingWaiterState { + let result: IPendingWaiterState = { + pending: 0, + waiters: {}, + }; + + WAITERS.forEach(waiter => { + if (waiter.waitUntil()) { + result.pending++; + + let debugInfo = waiter.debugInfo(); + result.waiters[waiter.name] = debugInfo || true; + } + }); + + return result; +} + +export function shouldWait(): boolean { + let state = getPendingWaiterState(); + + return state.pending > 0; +} From f27bef9ff10c5b3a2b838859c365cdbc99c54a8d Mon Sep 17 00:00:00 2001 From: Steve Calvert Date: Tue, 12 Mar 2019 19:11:40 -0700 Subject: [PATCH 2/3] Fixing eslint config --- .eslintrc.js | 5 +- .template-lintrc.js | 5 - .travis.yml | 11 +- addon/{types.ts => types/index.ts} | 0 package.json | 3 +- yarn.lock | 245 ++++------------------------- 6 files changed, 40 insertions(+), 229 deletions(-) delete mode 100644 .template-lintrc.js rename addon/{types.ts => types/index.ts} (100%) diff --git a/.eslintrc.js b/.eslintrc.js index b3dc9f83..0fab37c6 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -5,13 +5,16 @@ module.exports = { ecmaVersion: 2017, sourceType: 'module', }, - plugins: ['ember', 'prettier'], + plugins: ['ember', 'prettier', '@typescript-eslint'], extends: ['eslint:recommended', 'plugin:ember/recommended', 'prettier'], env: { browser: true, + node: false, }, rules: { 'prettier/prettier': 'error', + 'no-unused-vars': 'off', + '@typescript-eslint/no-unused-vars': 'warn', }, overrides: [ // node files diff --git a/.template-lintrc.js b/.template-lintrc.js deleted file mode 100644 index f35f61c7..00000000 --- a/.template-lintrc.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = { - extends: 'recommended', -}; diff --git a/.travis.yml b/.travis.yml index c8cec197..aa8d8010 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,7 @@ language: node_js node_js: # we recommend testing addons with the same minimum supported node version as Ember CLI # so that your addon works for all apps - - "6" + - '6' sudo: false dist: trusty @@ -33,22 +33,21 @@ jobs: include: # runs linting and tests with current locked deps - - stage: "Tests" - name: "Tests" + - stage: 'Tests' + name: 'Tests' install: - yarn install --non-interactive script: - - yarn lint:hbs - yarn lint:js - yarn test - - name: "Floating Dependencies" + - name: 'Floating Dependencies' script: - yarn test # we recommend new addons test the current and previous LTS # as well as latest stable release (bonus points to beta/canary) - - stage: "Additional Tests" + - stage: 'Additional Tests' env: EMBER_TRY_SCENARIO=ember-lts-2.18 - env: EMBER_TRY_SCENARIO=ember-lts-3.4 - env: EMBER_TRY_SCENARIO=ember-release diff --git a/addon/types.ts b/addon/types/index.ts similarity index 100% rename from addon/types.ts rename to addon/types/index.ts diff --git a/package.json b/package.json index 5ab84b2a..bd60d2c0 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,6 @@ }, "scripts": { "build": "ember build", - "lint:hbs": "ember-template-lint .", "lint:js": "eslint --ext ts,js .", "start": "ember serve", "test": "ember test", @@ -35,6 +34,7 @@ "@types/ember__test-helpers": "^0.7.7", "@types/qunit": "^2.5.4", "@types/rsvp": "^4.0.2", + "@typescript-eslint/eslint-plugin": "^1.4.2", "@typescript-eslint/parser": "^1.4.2", "broccoli-asset-rev": "^2.7.0", "ember-cli": "~3.8.1", @@ -43,7 +43,6 @@ "ember-cli-htmlbars-inline-precompile": "^1.0.3", "ember-cli-inject-live-reload": "^1.8.2", "ember-cli-sri": "^2.1.1", - "ember-cli-template-lint": "^1.0.0-beta.1", "ember-cli-typescript": "^1.5.0", "ember-cli-uglify": "^2.1.0", "ember-disable-prototype-extensions": "^1.1.3", diff --git a/yarn.lock b/yarn.lock index 5c2d5a99..8f8c06a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -649,16 +649,6 @@ ember-cli-babel "^6.12.0" ember-cli-htmlbars-inline-precompile "^1.0.0" -"@glimmer/compiler@^0.38.0": - version "0.38.1" - resolved "https://registry.yarnpkg.com/@glimmer/compiler/-/compiler-0.38.1.tgz#03b43a2a8a04b1ed39517862158e8897d0f6798b" - integrity sha512-V4wRYRPH6FSVZw9dNfZn3IRxBofUBL0oGeBLm7wNdUOg4oXE26BMmxRVtYzTsBmmSj7SqB+B6VKuH1jEuvOOhQ== - dependencies: - "@glimmer/interfaces" "^0.38.1" - "@glimmer/syntax" "^0.38.1" - "@glimmer/util" "^0.38.1" - "@glimmer/wire-format" "^0.38.1" - "@glimmer/di@^0.2.0": version "0.2.1" resolved "https://registry.yarnpkg.com/@glimmer/di/-/di-0.2.1.tgz#5286b6b32040232b751138f6d006130c728d4b3d" @@ -669,14 +659,6 @@ resolved "https://registry.yarnpkg.com/@glimmer/env/-/env-0.1.7.tgz#fd2d2b55a9029c6b37a6c935e8c8871ae70dfa07" integrity sha1-/S0rVakCnGs3psk16MiHGucN+gc= -"@glimmer/interfaces@^0.38.1": - version "0.38.1" - resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.38.1.tgz#5b1c174363396b99d6a6bddb35538151e4c4c989" - integrity sha512-YXnzRR7IviHdN+k2Llp8rQ+ADrdzme++A5EFZRxcUoD14Eu1u2S3al7FlLLfwHhp5R2leO+x3zSYoWsuzfvsqw== - dependencies: - "@glimmer/wire-format" "^0.38.1" - "@simple-dom/interface" "1.4.0" - "@glimmer/resolver@^0.4.1": version "0.4.3" resolved "https://registry.yarnpkg.com/@glimmer/resolver/-/resolver-0.4.3.tgz#b1baae5c3291b4621002ccf8d7870466097e841d" @@ -684,46 +666,6 @@ dependencies: "@glimmer/di" "^0.2.0" -"@glimmer/syntax@^0.38.1": - version "0.38.1" - resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.38.1.tgz#625875da5f1e827ad5806fdaa23e2cd00369fda8" - integrity sha512-tzc1NeUd7hbBWqIlgSY5Oq8bEiMpp7ClawVt8hWUarbr9G+qR0toDEQYqZmeRtCXjHAIh9M9oYbpbzLP6+iiag== - dependencies: - "@glimmer/interfaces" "^0.38.1" - "@glimmer/util" "^0.38.1" - handlebars "^4.0.6" - simple-html-tokenizer "^0.5.6" - -"@glimmer/util@^0.38.1": - version "0.38.1" - resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.38.1.tgz#41ca0544f95ec980bc492f4f0e5a85564964c028" - integrity sha512-WAe+bqJSFBR8EmA/NsxcqWmyi2AfOyW9x1jpWczZHJiBkvssiRF6nre39CJVwwMPlFDtdKzvnRQkWVl8ZBhcNw== - -"@glimmer/wire-format@^0.38.1": - version "0.38.1" - resolved "https://registry.yarnpkg.com/@glimmer/wire-format/-/wire-format-0.38.1.tgz#a77963cf7193ab23cbce242116aac613f17cd3dc" - integrity sha512-AT1dToybQxbY29XpkNra9/j7svq65ZNnSXmRs1zUKAarvgh6qxOBsnYeVBNrxBFduNuNJOxP8G0Y+nXEGrUoRQ== - dependencies: - "@glimmer/util" "^0.38.1" - -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" - integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== - dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" - -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" - integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== - -"@simple-dom/interface@1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@simple-dom/interface/-/interface-1.4.0.tgz#e8feea579232017f89b0138e2726facda6fbb71f" - integrity sha512-l5qumKFWU0S+4ZzMaLXFU8tQZsicHEMEyAxI5kDFGhJsRqDwe0a7/iPA/GdxlGyDKseQQAgIz5kzU7eXTrlSpA== - "@sindresorhus/is@^0.7.0": version "0.7.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" @@ -900,20 +842,6 @@ resolved "https://registry.yarnpkg.com/@types/ember__utils/-/ember__utils-3.0.2.tgz#d4c32007d0c84c95faa9221a1582b87ac3b1b4f3" integrity sha512-d6fswmNDozslgUk+0DfC1oG0vD8R5ivvrEe0t3BuWSnF+TVyYhj24KZINecpBySg/4RODCg2IVV1GeRsimqzkg== -"@types/events@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== - -"@types/glob@^7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== - dependencies: - "@types/events" "*" - "@types/minimatch" "*" - "@types/node" "*" - "@types/htmlbars-inline-precompile@*": version "1.0.1" resolved "https://registry.yarnpkg.com/@types/htmlbars-inline-precompile/-/htmlbars-inline-precompile-1.0.1.tgz#de564513fabb165746aecd76369c87bd85e5bbb4" @@ -926,16 +854,11 @@ dependencies: "@types/sizzle" "*" -"@types/minimatch@*", "@types/minimatch@^3.0.3": +"@types/minimatch@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== -"@types/node@*": - version "11.11.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.2.tgz#873d2c3f3824212cc16130074699e1bcb38c0231" - integrity sha512-iEaHiDNkHv4Jrm9O5T37OYEUwjJesiyt6ZlhLFK0sbo4CLD0jyCOB4Pc2F9iD3MbW2397SLNxZKdDGntGaBjQQ== - "@types/qunit@^2.5.4": version "2.5.4" resolved "https://registry.yarnpkg.com/@types/qunit/-/qunit-2.5.4.tgz#0518940acc6013259a8619a1ec34ce0e4ff8d1c4" @@ -951,7 +874,17 @@ resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== -"@typescript-eslint/parser@^1.4.2": +"@typescript-eslint/eslint-plugin@^1.4.2": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.4.2.tgz#370bc32022d1cc884a5dcf62624ef2024182769d" + integrity sha512-6WInypy/cK4rM1dirKbD5p7iFW28DbSRKT/+PGn+DYzBWEvHq5KnZAqQ5cX25JBc0qMkFxJNxNfBbFXJyyzVcw== + dependencies: + "@typescript-eslint/parser" "1.4.2" + "@typescript-eslint/typescript-estree" "1.4.2" + requireindex "^1.2.0" + tsutils "^3.7.0" + +"@typescript-eslint/parser@1.4.2", "@typescript-eslint/parser@^1.4.2": version "1.4.2" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-1.4.2.tgz#acfdee2019958a41d308d768e53ded975ef90ce8" integrity sha512-OqLkY9295DXXaWToItUv3olO2//rmzh6Th6Sc7YjFFEpEuennsm5zhygLLvHZjPxPlzrQgE8UDaOPurDylaUuw== @@ -1071,13 +1004,6 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -aot-test-generators@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/aot-test-generators/-/aot-test-generators-0.1.0.tgz#43f0f615f97cb298d7919c1b0b4e6b7310b03cd0" - integrity sha1-Q/D2Ffl8spjXkZwbC05rcxCwPNA= - dependencies: - jsesc "^2.5.0" - aproba@^1.0.3: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -1135,18 +1061,6 @@ array-to-sentence@^1.1.0: resolved "https://registry.yarnpkg.com/array-to-sentence/-/array-to-sentence-1.1.0.tgz#c804956dafa53232495b205a9452753a258d39fc" integrity sha1-yASVba+lMjJJWyBalFJ1OiWNOfw= -array-union@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" @@ -2054,7 +1968,7 @@ broccoli-clean-css@^1.1.0: inline-source-map-comment "^1.0.5" json-stable-stringify "^1.0.0" -broccoli-concat@^3.7.1, broccoli-concat@^3.7.3: +broccoli-concat@^3.7.3: version "3.7.3" resolved "https://registry.yarnpkg.com/broccoli-concat/-/broccoli-concat-3.7.3.tgz#0dca01311567ffb13180e6b4eb111824628e4885" integrity sha512-2Ma9h81EJ0PRb9n4sW0i8KZlcnpTQfKxcj87zvi5DFe1fd8CTDEdseHDotK2beuA2l+LbgVPfd8EHaBJKm/Y8g== @@ -2498,11 +2412,6 @@ calculate-cache-key-for-tree@^1.1.0: dependencies: json-stable-stringify "^1.0.1" -call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" - integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= - callsite@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" @@ -3082,13 +2991,6 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff" integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q== -dir-glob@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" - integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== - dependencies: - path-type "^3.0.0" - doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" @@ -3279,23 +3181,6 @@ ember-cli-string-utils@^1.0.0, ember-cli-string-utils@^1.1.0: resolved "https://registry.yarnpkg.com/ember-cli-string-utils/-/ember-cli-string-utils-1.1.0.tgz#39b677fc2805f55173735376fcef278eaa4452a1" integrity sha1-ObZ3/CgF9VFzc1N2/O8njqpEUqE= -ember-cli-template-lint@^1.0.0-beta.1: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/ember-cli-template-lint/-/ember-cli-template-lint-1.0.0-beta.2.tgz#0ebd2f8c1f9ca47f9ee3b42755d66262440c14f6" - integrity sha512-i37mJhz+dll7eP/Y3Yh8oLw5aRqfdnIiutqdLsrvTSLb4VphDXbujXCO8XravvZtGeGBVYKXGsjTxobbPXgsgw== - dependencies: - aot-test-generators "^0.1.0" - broccoli-concat "^3.7.1" - broccoli-persistent-filter "^1.4.3" - chalk "^2.4.1" - debug "^3.1.0" - ember-cli-version-checker "^2.1.2" - ember-template-lint "^1.0.0-beta.5" - json-stable-stringify "^1.0.1" - md5-hex "^2.0.0" - strip-ansi "^4.0.0" - walk-sync "^0.3.3" - ember-cli-test-info@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ember-cli-test-info/-/ember-cli-test-info-1.0.0.tgz#ed4e960f249e97523cf891e4aed2072ce84577b4" @@ -3573,18 +3458,6 @@ ember-source@~3.7.0: jquery "^3.3.1" resolve "^1.6.0" -ember-template-lint@^1.0.0-beta.5: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ember-template-lint/-/ember-template-lint-1.1.0.tgz#312e101728452bf082f54cbe429ed9b52273ba64" - integrity sha512-DPEWdjaNVIC58wJqeJStvQzk2gyKN5/u6dJfDKQ7mRJaouoLP1hZjSZwwpyO9bj10E9/3OJZnLmx1jjJ9/nqWA== - dependencies: - "@glimmer/compiler" "^0.38.0" - chalk "^2.0.0" - globby "^9.0.0" - minimatch "^3.0.4" - resolve "^1.1.3" - strip-bom "^3.0.0" - ember-try-config@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ember-try-config/-/ember-try-config-3.0.0.tgz#012d8c90cae9eb624e2b62040bf7e76a1aa58edc" @@ -4073,18 +3946,6 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@^2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.6.tgz#a5d5b697ec8deda468d85a74035290a025a95295" - integrity sha512-0BvMaZc1k9F+MeWWMe8pL6YltFzZYcJsYU7D4JyDA6PAczaXvxqQQ/z+mDF7/4Mw01DeUc+i3CTKajnkANkV4w== - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" - fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" @@ -4503,11 +4364,6 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= - glob@^5.0.10: version "5.0.15" resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" @@ -4561,20 +4417,6 @@ globals@^9.18.0: resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== -globby@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-9.1.0.tgz#e90f4d5134109e6d855abdd31bdb1b085428592e" - integrity sha512-VtYjhHr7ncls724Of5W6Kaahz0ag7dB4G62/2HsN+xEKG6SrPzM1AJMerGxQTwJGnN9reeyxdvXbuZYpfssCvg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^1.0.2" - dir-glob "^2.2.1" - fast-glob "^2.2.6" - glob "^7.1.3" - ignore "^4.0.3" - pify "^4.0.1" - slash "^2.0.0" - got@^6.7.1: version "6.7.1" resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" @@ -4630,7 +4472,7 @@ growly@^1.3.0: resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= -handlebars@^4.0.11, handlebars@^4.0.4, handlebars@^4.0.6: +handlebars@^4.0.11, handlebars@^4.0.4: version "4.1.0" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.0.tgz#0d6a6f34ff1f63cecec8423aa4169827bf787c3a" integrity sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w== @@ -4835,7 +4677,7 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" -ignore@^4.0.2, ignore@^4.0.3, ignore@^4.0.6: +ignore@^4.0.2, ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== @@ -5248,7 +5090,7 @@ jsesc@^1.3.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= -jsesc@^2.5.0, jsesc@^2.5.1: +jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== @@ -5880,18 +5722,6 @@ matcher-collection@^1.0.0, matcher-collection@^1.0.5, matcher-collection@^1.1.1: dependencies: minimatch "^3.0.2" -md5-hex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-2.0.0.tgz#d0588e9f1c74954492ecd24ac0ac6ce997d92e33" - integrity sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM= - dependencies: - md5-o-matic "^0.1.1" - -md5-o-matic@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" - integrity sha1-givM1l4RfFFPqxdrJZRdVBAKA8M= - mdurl@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" @@ -5934,11 +5764,6 @@ merge-trees@^2.0.0: fs-updater "^1.0.4" heimdalljs "^0.2.5" -merge2@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" - integrity sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA== - merge@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" @@ -6551,23 +6376,11 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -6984,6 +6797,11 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" +requireindex@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" + integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== + requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -7035,7 +6853,7 @@ resolve@1.5.0: dependencies: path-parse "^1.0.5" -resolve@^1.1.3, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.6.0, resolve@^1.8.1: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.6.0, resolve@^1.8.1: version "1.10.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg== @@ -7266,21 +7084,11 @@ silent-error@^1.0.0, silent-error@^1.0.1, silent-error@^1.1.0: dependencies: debug "^2.2.0" -simple-html-tokenizer@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/simple-html-tokenizer/-/simple-html-tokenizer-0.5.7.tgz#8eca336ecfbe2b3c6166cbb31b2682088de79f40" - integrity sha512-APW9iYbkJ5cijjX4Ljhf3VG8SwYPUJT5gZrwci/wieMabQxWFiV5VwsrP5c6GMRvXKEQMGkAB1d9dvW66dTqpg== - slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" @@ -7825,11 +7633,18 @@ trim-right@^1.0.1: resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= -tslib@^1.9.0: +tslib@^1.8.1, tslib@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== +tsutils@^3.7.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.9.1.tgz#2a40dc742943c71eca6d5c1994fcf999956be387" + integrity sha512-hrxVtLtPqQr//p8/msPT1X1UYXUjizqSit5d9AQ5k38TcV38NyecL5xODNxa73cLe/5sdiJ+w1FqzDhRBA/anA== + dependencies: + tslib "^1.8.1" + type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" From de414d04abf37f8544840a12eac61c74b459c98f Mon Sep 17 00:00:00 2001 From: Steve Calvert Date: Tue, 12 Mar 2019 19:14:38 -0700 Subject: [PATCH 3/3] Duh, error --- .eslintrc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.eslintrc.js b/.eslintrc.js index 0fab37c6..0093029d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -14,7 +14,7 @@ module.exports = { rules: { 'prettier/prettier': 'error', 'no-unused-vars': 'off', - '@typescript-eslint/no-unused-vars': 'warn', + '@typescript-eslint/no-unused-vars': 'error', }, overrides: [ // node files