3.0.0
Major release of textlint-scripts!
Also, update [email protected].
You can create TypeScript project for textlint rule:
$ npx create-textlint-rule example --typescript
Summary
- Support Async Function #23
- Inline static resources in building for Browser #31
- Support TypeScript #27
Breaking Changes 🔥
textlint-script build
output compatible code for ES2015+.
It means that output code is not work on IE11.
Support Async Function ⭐️
Async/Await is supported by default.
Inline static resources by default ⭐️
For Web Browser support, textlint-script build
inline static file by default.
textlint-script build
inline Node fs calls with babel-plugin-static-fs for browser compatibility.
const fs = require("fs");
const path = require("path");
const text = fs.readFileSync(path.join(__dirname, "readme.md"), "utf-8");
will be
const text = "README CONTENT"
Web Browser does not support Node.js's fs
module, this inlining feature aim to improve compatibility between Node.js and Web Browser.
ℹ️ @textlint/browser-run help you to test your textlint rule work on browser.
📝 You want to disable this behavior, set NO_INLINE
env like NO_INLINE=1 textlint-scripts build
.
Support TypeScript 🌟
textlint-script build
and textlint-script test
support TypeScript.
You can write textlint rule with TypeScript.
ℹ️ textlint-script
detect the project is TypeScript by tsconfig.json
.
Start Guide
You just pass --typescript
flag to create-textlint-rule.
$ npx create-textlint-rule example --typescript
Migration Guide
- Migration Script: @textlint/migrate-textlint-scripts-typescript
If you want to write textlint rule with TypeScript, you can migrate it by following steps:
- Install TypeScript env
npm install textlint-scripts@beta --save-dev
npm install --save-dev typescript ts-node @textlint/types @types/node
npx tsc --init # create tsconfig.json
- Rename
.js
to.ts
- Fix TypeScript Error
@textlint/types provide types for textlint rule.
import { TextlintRuleModule, TextlintRuleReporter } from "@textlint/types";
export interface RuleOptions {
foo: boolean;
}
const report: TextlintRuleReporter<RuleOptions> = function(context, options = {}) {
const { Syntax, RuleError, report, getSource } = context;
return {
[Syntax.Str](node) {
// ...
}
};
};
export default {
linter: report,
fixer: report
} as TextlintRuleModule;
npm test
andnpm run build
.
Migration Scrips: @textlint/migrate-textlint-scripts-typescript
We also prepare migration script from textlint-script with JavaScript to textlint-script with TypeScript.
Migration script help you to do step 1.
# in you textlint rule project
npx @textlint/migrate-textlint-scripts-typescript
For more details, see @textlint/migrate-textlint-scripts-typescript.
Examples:
Following examples are migrated to TypeScript from JavaScript.