diff --git a/.gitignore b/.gitignore index ba304f9..c51c8d2 100644 --- a/.gitignore +++ b/.gitignore @@ -76,5 +76,6 @@ sample/**/*-sw.js #amp metadata amp_metadata.json -# no javascript in source dir -src/**/*.js \ No newline at end of file +# no javascript in source dir, or builder dir +src/**/*.js +test/builder/*.js \ No newline at end of file diff --git a/package.json b/package.json index 1beeba1..21c98f9 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "build": "webpack", "build:prod": "npm run build -- --public-path='https://cdn.ampproject.org/sw/'", - "transpile": "tsc -p ./src/tsconfig.json", + "transpile": "tsc -p ./src/tsconfig.json && tsc -p ./test/builder/tsconfig.json", "pretest": "npm run transpile && npm run build -- --public-path='/test/dist/' && mkdir -p test/dist && cp -R dist/* test/dist", "test": "npm-run-all test:*", "test:e2e": "node -r esm ./test/index.js", diff --git a/src/builder/asset-gatherer.ts b/test/builder/asset-gatherer.ts similarity index 100% rename from src/builder/asset-gatherer.ts rename to test/builder/asset-gatherer.ts diff --git a/src/builder/index.ts b/test/builder/index.ts similarity index 95% rename from src/builder/index.ts rename to test/builder/index.ts index 2026498..2380b05 100644 --- a/src/builder/index.ts +++ b/test/builder/index.ts @@ -15,7 +15,7 @@ */ import { serializeObject } from './serialize'; -import { ServiceWorkerConfiguration } from '../configuration'; +import { ServiceWorkerConfiguration } from '../../src/configuration'; import { fetchRequiredAssetsForUrl } from './asset-gatherer'; export async function buildSW( diff --git a/src/builder/serialize.ts b/test/builder/serialize.ts similarity index 100% rename from src/builder/serialize.ts rename to test/builder/serialize.ts diff --git a/test/builder/tsconfig.json b/test/builder/tsconfig.json new file mode 100644 index 0000000..6f3b345 --- /dev/null +++ b/test/builder/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compileOnSave": true, + "compilerOptions": { + "lib": [ + "es2017", + "webworker" + ], + "sourceMap": false, + "moduleResolution": "node", + "target": "esnext", + "module": "esnext", + "allowJs": false, + "noUnusedLocals": true, + "strictNullChecks": true, + "noImplicitAny": true, + "noImplicitThis": true, + "alwaysStrict": true + }, + "include": [ + "*.ts", + "**/*.ts" + ] + } \ No newline at end of file diff --git a/test/modules/amp-caching/amp-caching-e2e-test.js b/test/modules/amp-caching/amp-caching-e2e-test.js index 14b8a3d..b643b52 100644 --- a/test/modules/amp-caching/amp-caching-e2e-test.js +++ b/test/modules/amp-caching/amp-caching-e2e-test.js @@ -14,7 +14,7 @@ * limitations under the License. */ -import { buildSW } from '../../../src/builder/index'; +import { buildSW } from '../../builder/index'; import { promisify } from 'util'; import * as fs from 'fs'; import { join } from 'path'; diff --git a/test/modules/asset-caching/asset-caching-e2e-test.js b/test/modules/asset-caching/asset-caching-e2e-test.js index f9a1157..2f6f6fa 100644 --- a/test/modules/asset-caching/asset-caching-e2e-test.js +++ b/test/modules/asset-caching/asset-caching-e2e-test.js @@ -14,7 +14,7 @@ * limitations under the License. */ -import { buildSW } from '../../../src/builder/index'; +import { buildSW } from '../../builder/index'; import { promisify } from 'util'; import * as fs from 'fs'; import { join } from 'path'; diff --git a/test/modules/document-caching/document-caching-e2e-test.js b/test/modules/document-caching/document-caching-e2e-test.js index e144e24..676258f 100644 --- a/test/modules/document-caching/document-caching-e2e-test.js +++ b/test/modules/document-caching/document-caching-e2e-test.js @@ -14,7 +14,7 @@ * limitations under the License. */ -import { buildSW } from '../../../src/builder/index'; +import { buildSW } from '../../builder/index'; import { promisify } from 'util'; import * as fs from 'fs'; import { join } from 'path'; diff --git a/test/modules/link-prefetch/link-prefetch-e2e-test.js b/test/modules/link-prefetch/link-prefetch-e2e-test.js index beb042d..a83305e 100644 --- a/test/modules/link-prefetch/link-prefetch-e2e-test.js +++ b/test/modules/link-prefetch/link-prefetch-e2e-test.js @@ -14,7 +14,7 @@ * limitations under the License. */ -import { buildSW } from '../../../src/builder/index'; +import { buildSW } from '../../builder/index'; import { promisify } from 'util'; import * as fs from 'fs'; import { join } from 'path'; diff --git a/test/modules/offline-page/offline-page-e2e-test.js b/test/modules/offline-page/offline-page-e2e-test.js index df37b64..0d109f4 100644 --- a/test/modules/offline-page/offline-page-e2e-test.js +++ b/test/modules/offline-page/offline-page-e2e-test.js @@ -15,7 +15,7 @@ */ const fs = require('fs'); -const { buildSW } = require('../../../src/builder/index'); +const { buildSW } = require('../../builder/index'); const { promisify } = require('util'); const { join } = require('path'); diff --git a/test/modules/service-worker-remover/service-worker-remover-e2e-test.js b/test/modules/service-worker-remover/service-worker-remover-e2e-test.js index 0839686..2a7905f 100644 --- a/test/modules/service-worker-remover/service-worker-remover-e2e-test.js +++ b/test/modules/service-worker-remover/service-worker-remover-e2e-test.js @@ -14,7 +14,7 @@ * limitations under the License. */ -import { buildSW } from '../../../src/builder/index'; +import { buildSW } from '../../builder/index'; import { promisify } from 'util'; import * as fs from 'fs'; import { join } from 'path'; diff --git a/test/performance-test/amp-caching-module-test.js b/test/performance-test/amp-caching-module-test.js index 6a08382..6fe0d86 100644 --- a/test/performance-test/amp-caching-module-test.js +++ b/test/performance-test/amp-caching-module-test.js @@ -18,7 +18,7 @@ import puppeteer from 'puppeteer'; import fetch from 'node-fetch'; import * as fs from 'fs'; import test from 'ava'; -import { buildSW } from '../../src/builder/index'; +import { buildSW } from '../builder/index'; import { join } from 'path'; import { createServer, startServer } from '../server'; import { promisify } from 'util';