1. 08 Feb, 2021 5 commits
  2. 05 Feb, 2021 8 commits
  3. 03 Feb, 2021 6 commits
    • Robert Knight's avatar
      Add license and description to frontend-shared package · d90a4519
      Robert Knight authored
      All npm packages should have a license, and yarn complains if there
      isn't one. The license chosen here is the same as in the client's
      package.json.
      d90a4519
    • Robert Knight's avatar
      Generate `.d.ts` files as part of the frontend-shared package · 480b6d77
      Robert Knight authored
      Generate TypeScript definition files as part of the frontend-shared
      package so that TS can typecheck code that uses the package in other
      projects. Within the client repository we don't need to generate these files
      because TypeScript will read the JSDoc comments. When the package is
      consumed from other projects however, it seems that it does not read the
      JSDoc comments. Note that when these `.d.ts` files exist, they are used in preference
      to JSDoc comments by other code in the client repository. Therefore they
      need to be kept up to date when the files are recompiled in watch mode.
      
      In the process of adding this I discovered an issue that the method of
      running CLI commands in gulp tasks in `scripts/gulp/frontend-shared.js` did not
      fail if the exit status was non-zero. I created a `run` utility that
      handles this correctly along with providing the desired defaults.
      480b6d77
    • Robert Knight's avatar
      898e61b8
    • Robert Knight's avatar
      Adjust glob used to exclude frontend-shared tests from typechecking · f9b33888
      Robert Knight authored
      Change the glob to allow for `test/` dirs inside subdirectories of
      `frontend-shared/src`.
      f9b33888
    • Robert Knight's avatar
      Do not instrument `frontend-shared/lib` for code coverage · ce0f4599
      Robert Knight authored
      This directory contains the compiled version of code from `frontend-shared/src`.
      Only the source should be instrumented.
      ce0f4599
    • Robert Knight's avatar
      Move `useElementShouldClose` and `normalizeKeyName` into frontend-shared package · 9aa02026
      Robert Knight authored
      `useElementShouldClose` is a useful generic hook for implementing non-modal dialogs. We
      also use it in the LMS frontend, so it makes sense to share the implementation.
      
      This function depends on `normalizeKeyName`, so I moved that as well.
      
      `useElementShouldClose` also depended on a `listen` helper. This helper
      is not currently used by any other code so I moved it into
      `use-element-should-close.js` as a non-exported helper function and
      simplified it.
      
      In the process I found it was necessary to change the gulp task that
      builds the frontend-shared/lib/ directory to handle subdirectories under
      frontend-shared/src/.
      9aa02026
  4. 02 Feb, 2021 5 commits
  5. 01 Feb, 2021 12 commits
  6. 29 Jan, 2021 2 commits
  7. 26 Jan, 2021 2 commits
    • Kyle Keating's avatar
      34062d5d
    • Kyle Keating's avatar
      Add svg-icon to frontend-shared package · a6b77079
      Kyle Keating authored
      - Add babel presets for frontend-shared to transpile js/jsx
      - Add `build` script to transpile frontend-shared and output sourcemaps and transpiled js code to /lib
      - Add frontend-shared /src/index.js as a way to serve as a root import location for the frontend-shared lib
      - Fix up frontend-shared/package.json so publishing will work as expecting and include only intended files
      - Add a browserify config in the frontend-shared package.json file so that driving client will be able to bundle it and still import svg and html files that are nested inside /frontend-shared/src
      - Add svg-icon to serve as the first shared js component
      - Move several .svg files into the lib that are relaxant for testing svg-icon that also seem share-worthy
      - Make modifications to ensure that typechecking, linting, and testing all work as expected and ignore /lib folder
      - Change karma config so that tests will automatically run on /frontend-shared, driven from the client's gulp command
      - Added new gulp tasks to help with building and linking the frontend-shared package so that is it fully transparent with existing tooling
      - Add gulp-babel and gulp-sourcemaps packages to help with build tasks for /frontend-shared that are necessary for symlinking / building the package
      - Used new SvgIcon sidebar/index.js as a tester. This requires making two copies of registerIcons while we make the transition. Replacing all call sites of SvgIcon would be too large for an already overwhelming commit
      a6b77079