Merge pull request #30103 from pd4d10/patch-2

add string-replace-webpack-plugin types
This commit is contained in:
Daniel Rosenwasser
2018-10-31 17:57:03 -07:00
committed by GitHub
4 changed files with 82 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
// Type definitions for string-replace-webpack-plugin 0.1
// Project: https://github.com/jamesandersen/string-replace-webpack-plugin
// Definitions by: Rongjian Zhang <https://github.com/pd4d10>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
import { Plugin, RuleSetUse } from "webpack";
export = StringReplacePlugin;
declare class StringReplacePlugin extends Plugin {
static replace(
options: StringReplacePlugin.Options,
/**
* loaders to follow the replacement
*/
nextLoaders?: string
): RuleSetUse;
static replace(
/**
* loaders to apply prior to the replacement
*/
prevLoaders: string,
options: StringReplacePlugin.Options,
/**
* loaders to follow the replacement
*/
nextLoaders?: string
): RuleSetUse;
}
declare namespace StringReplacePlugin {
interface Options {
replacements: ReplacementItem[];
}
interface ReplacementItem {
/**
* a regex to match against the file contents
*/
pattern: RegExp;
/**
* an ECMAScript string replacement function
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_function_as_a_parameter
*/
replacement: (substring: string, ...args: any[]) => string;
}
}
@@ -0,0 +1,17 @@
import StringReplacePlugin = require('string-replace-webpack-plugin');
StringReplacePlugin.replace('babel-loader', {
replacements: [
{
// Taken from:
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_function_as_a_parameter
pattern: /([^\d]*)(\d*)([^\w]*)/,
replacement: (match, p1, p2, p3, offset, string) => {
// p1 is nondigits, p2 digits, and p3 non-alphanumerics
return [p1, p2, p3].join(' - ');
}
}
]
});
new StringReplacePlugin();
@@ -0,0 +1,16 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": ["es6"],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": false,
"strictFunctionTypes": true,
"baseUrl": "../",
"typeRoots": ["../"],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": ["index.d.ts", "string-replace-webpack-plugin-tests.ts"]
}
@@ -0,0 +1 @@
{ "extends": "dtslint/dt.json" }