|  |  | 
|  | /* | 
|  | * Licensed to the Apache Software Foundation (ASF) under one | 
|  | * or more contributor license agreements.  See the NOTICE file | 
|  | * distributed with this work for additional information | 
|  | * regarding copyright ownership.  The ASF licenses this file | 
|  | * to you under the Apache License, Version 2.0 (the | 
|  | * "License"); you may not use this file except in compliance | 
|  | * with the License.  You may obtain a copy of the License at | 
|  | * | 
|  | *   http://www.apache.org/licenses/LICENSE-2.0 | 
|  | * | 
|  | * Unless required by applicable law or agreed to in writing, | 
|  | * software distributed under the License is distributed on an | 
|  | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
|  | * KIND, either express or implied.  See the License for the | 
|  | * specific language governing permissions and limitations | 
|  | * under the License. | 
|  | */ | 
|  |  | 
|  | const { TypeScriptVersion } = require('@definitelytyped/typescript-versions'); | 
|  | const { | 
|  | cleanTypeScriptInstalls, | 
|  | installAllTypeScriptVersions, | 
|  | typeScriptPath | 
|  | } = require('@definitelytyped/utils'); | 
|  | const { runTsCompile } = require('./pre-publish'); | 
|  | const globby = require('globby'); | 
|  | const semver = require('semver'); | 
|  |  | 
|  | const MIN_VERSION = '3.5.0'; | 
|  |  | 
|  | async function installTs() { | 
|  | // await cleanTypeScriptInstalls(); | 
|  | await installAllTypeScriptVersions(); | 
|  | } | 
|  |  | 
|  | async function runTests() { | 
|  | const compilerOptions = { | 
|  | declaration: false, | 
|  | importHelpers: false, | 
|  | sourceMap: false, | 
|  | pretty: false, | 
|  | removeComments: false, | 
|  | allowJs: false, | 
|  | outDir: __dirname + '/../test/types/tmp', | 
|  | typeRoots: [__dirname + '/../types/dist'], | 
|  | rootDir: __dirname + '/../test/types', | 
|  |  | 
|  | // Must pass in most strict cases | 
|  | strict: true | 
|  | }; | 
|  | const testsList = await globby(__dirname + '/../test/types/*.ts'); | 
|  |  | 
|  | for (let version of TypeScriptVersion.shipped) { | 
|  | if (semver.lt(version + '.0', MIN_VERSION)) { | 
|  | continue; | 
|  | } | 
|  |  | 
|  | console.log(`Testing ts version ${version}`); | 
|  | const ts = require(typeScriptPath(version)); | 
|  | await runTsCompile(ts, compilerOptions, testsList); | 
|  |  | 
|  | console.log(`Finished test of ts version ${version}`); | 
|  | } | 
|  | } | 
|  |  | 
|  | async function main() { | 
|  | await installTs(); | 
|  | await runTests(); | 
|  | } | 
|  |  | 
|  | module.exports = main; | 
|  |  | 
|  | main(); |