/typescript-types-test

typescript @types test with tsc & gulp-typescript

Primary LanguageJavaScriptMIT LicenseMIT

Typescripts Types Test

using requestIdleCallback in typescript requires using @types/requestidlecallback

Example

import {requestIdleCallback} from "requestidlecallback";

export async function Test() : Promise<void> {
	return new Promise((yup) => {
		requestIdleCallback(() => {
			alert('done');

			yup();
		});
	});
}

npm run build

import { requestIdleCallback } from "requestidlecallback";
export async function Test() {
    return new Promise((yup) => {
        requestIdleCallback(() => {
            alert('done');
            yup();
        });
    });
}

gulp

export async function Test() {
	return new Promise((yup) => {
		requestIdleCallback(() => {
			alert('done');
			yup();
		});
	});
}

//# sourceMappingURL=test.module.js.map

gulpfile.js

gulp-replace is used mostly to strip out the import statement, but also to force typescript to behave and use tabs instead of spaces (input tabs, you output spaces for some reason), as per discussion on twitter & reddit regarding the accessibility impact of tabs & spaces.

const gulp = require('gulp');
const typescript = require('gulp-typescript');
const replace = require('gulp-replace');
const sourcemaps = require('gulp-sourcemaps');

gulp.task('default', () => {
	return gulp.src(
		'./ts/**/*.module.ts'
	).pipe(
		sourcemaps.init()
	).pipe(
		typescript.createProject('./tsconfig.json')()
	).pipe(
		replace(
			'import { requestIdleCallback } from "requestidlecallback";\n',
			''
		)
	).pipe(
		replace(
			/ {4}/g,
			'\t'
		)
	).pipe(
		sourcemaps.write('./', {
			includeContent: false,
		})
	).pipe(
		gulp.dest('./js/')
	);
});