diff --git a/packages/content-fetch/Dockerfile b/packages/content-fetch/Dockerfile index fd025629c..1201c497d 100644 --- a/packages/content-fetch/Dockerfile +++ b/packages/content-fetch/Dockerfile @@ -29,11 +29,19 @@ COPY tsconfig.json . COPY .prettierrc . COPY .eslintrc . -COPY /packages/content-fetch ./packages/content-fetch -COPY /packages/content-handler ./packages/content-handler +COPY /packages/content-handler/package.json ./packages/content-handler/package.json RUN yarn install --pure-lockfile +ADD /packages/content-fetch ./packages/content-fetch +ADD /packages/content-handler ./packages/content-handler +RUN yarn workspace @omnivore/content-handler build + +# After building, fetch the production dependencies +RUN rm -rf /app/packages/content-fetch/node_modules +RUN rm -rf /app/node_modules +RUN yarn install --pure-lockfile --production + EXPOSE 8080 CMD ["yarn", "workspace", "@omnivore/content-fetch", "start"] diff --git a/packages/content-fetch/Dockerfile-local b/packages/content-fetch/Dockerfile-local index 505e4c2da..694ef1a08 100644 --- a/packages/content-fetch/Dockerfile-local +++ b/packages/content-fetch/Dockerfile-local @@ -33,11 +33,19 @@ COPY tsconfig.json . COPY .prettierrc . COPY .eslintrc . -COPY /packages/content-fetch ./packages/content-fetch -COPY /packages/content-handler ./packages/content-handler +COPY /packages/content-handler/package.json ./packages/content-handler/package.json RUN yarn install --pure-lockfile +ADD /packages/content-fetch ./packages/content-fetch +ADD /packages/content-handler ./packages/content-handler +RUN yarn workspace @omnivore/content-handler build + +# After building, fetch the production dependencies +RUN rm -rf /app/packages/content-fetch/node_modules +RUN rm -rf /app/node_modules +RUN yarn install --pure-lockfile --production + EXPOSE 8080 CMD ["yarn", "workspace", "@omnivore/content-fetch", "start"] diff --git a/packages/content-handler/package.json b/packages/content-handler/package.json index e4021b3e4..dc4edb4b1 100644 --- a/packages/content-handler/package.json +++ b/packages/content-handler/package.json @@ -15,6 +15,11 @@ "build": "tsc" }, "devDependencies": { + "@types/addressparser": "^1.0.1", + "@types/luxon": "^3.0.1", + "@types/rfc2047": "^2.0.1", + "@types/underscore": "^1.11.4", + "@types/uuid": "^8.3.4", "chai": "^4.3.6", "chai-as-promised": "^7.1.1", "chai-string": "^1.5.0", diff --git a/packages/content-handler/test/newsletter.test.ts b/packages/content-handler/test/newsletter.test.ts index dd3b7941c..b8748b832 100644 --- a/packages/content-handler/test/newsletter.test.ts +++ b/packages/content-handler/test/newsletter.test.ts @@ -172,7 +172,7 @@ describe('Newsletter email test', () => { expect(url).to.startWith( 'https://www.milkroad.com/p/talked-guy-spent-30m-beeple' ) - }) + }).timeout(10000) it('returns undefined if it is not a newsletter', async () => { const html = load('./test/data/substack-forwarded-welcome-email.html') const url = await new SubstackHandler().findNewsletterUrl(html) diff --git a/yarn.lock b/yarn.lock index 1edbd4c7a..25ddf6de0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7896,6 +7896,11 @@ resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-1.27.1.tgz#aceeb2d5be8fccf541237e184e37ecff5faa9096" integrity sha512-cPiXpOvPFDr2edMnOXlz3UBDApwUfR+cpizvxCy0n3vp9bz/qe8BWzHPIEFcy+ogUOyjKuCISgyq77ELZPmkkg== +"@types/luxon@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.0.1.tgz#2b1657096473e24b049bdedf3710f99645f3a17f" + integrity sha512-/LAvk1cMOJt0ghzMFrZEvByUhsiEfeeT2IF53Le+Ki3A538yEL9pRZ7a6MuCxdrYK+YNqNIDmrKU/r2nnw04zQ== + "@types/mdast@^3.0.0": version "3.0.10" resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" @@ -8260,7 +8265,7 @@ dependencies: "@types/node" "*" -"@types/uuid@^8.3.0", "@types/uuid@^8.3.1": +"@types/uuid@^8.3.0", "@types/uuid@^8.3.1", "@types/uuid@^8.3.4": version "8.3.4" resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==