|   | 
| /* | 
| * 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(); |