@js-toolkit/configs 3.87.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +7 -0
- package/appEnv.d.ts +40 -0
- package/appEnv.js +1 -0
- package/apprc.d.ts +3 -0
- package/apprc.js +1 -0
- package/babel/env.babelrc.d.ts +1 -0
- package/babel/env.babelrc.js +1 -0
- package/babel/getInstalledPlugin.d.ts +1 -0
- package/babel/getInstalledPlugin.js +1 -0
- package/babel/react.babelrc.d.ts +0 -0
- package/babel/react.babelrc.js +1 -0
- package/babel/rhl.babelrc.d.ts +0 -0
- package/babel/rhl.babelrc.js +1 -0
- package/babel/ts.env.babelrc.d.ts +0 -0
- package/babel/ts.env.babelrc.js +1 -0
- package/babel/ts.react.babelrc.d.ts +0 -0
- package/babel/ts.react.babelrc.js +1 -0
- package/buildConfig.d.ts +15 -0
- package/buildConfig.js +1 -0
- package/buildConfigDefaults.d.ts +67 -0
- package/buildConfigDefaults.js +1 -0
- package/css/postcssConfig.d.ts +12 -0
- package/css/postcssConfig.js +1 -0
- package/css/stylelintrc.d.ts +1 -0
- package/css/stylelintrc.js +1 -0
- package/eslint/common.d.ts +1 -0
- package/eslint/common.js +1 -0
- package/eslint/consts.d.ts +1 -0
- package/eslint/consts.js +1 -0
- package/eslint/node.d.ts +1 -0
- package/eslint/node.js +1 -0
- package/eslint/react.d.ts +1 -0
- package/eslint/react.js +1 -0
- package/eslint/universal.d.ts +1 -0
- package/eslint/universal.js +1 -0
- package/getInstalledPackage.d.ts +2 -0
- package/getInstalledPackage.js +1 -0
- package/index.d.ts +4 -0
- package/index.js +1 -0
- package/js/common.jsconfig.json +10 -0
- package/package.json +45 -0
- package/paths.d.ts +75 -0
- package/paths.js +1 -0
- package/prettier/index.d.ts +0 -0
- package/prettier/index.js +1 -0
- package/ts/bundler.tsconfig.json +8 -0
- package/ts/common.tsconfig.json +25 -0
- package/types/assets/index.d.ts +16 -0
- package/types/assets/index.js +1 -0
- package/types/index.d.ts +1 -0
- package/types/index.js +1 -0
- package/webpack/client.config.d.ts +18 -0
- package/webpack/client.config.js +1 -0
- package/webpack/common.config.d.ts +22 -0
- package/webpack/common.config.js +1 -0
- package/webpack/loaders.d.ts +150 -0
- package/webpack/loaders.js +1 -0
- package/webpack/nodeRequire.d.ts +4 -0
- package/webpack/nodeRequire.js +1 -0
- package/webpack/server.config.d.ts +11 -0
- package/webpack/server.config.js +1 -0
- package/webpack/types.d.ts +6 -0
- package/webpack/types.js +1 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2017 Vladimir Zhukov
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Utils for projects configuration and build
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.org/package/@js-toolkit/configs)
|
|
4
|
+
|
|
5
|
+
Preconfigured configurations for Webpack, ESLint, Babel, Prettier, TypeScript, JavaScript, CSS, etc.
|
|
6
|
+
|
|
7
|
+
Utilities for project custom environment variables and useful project configuration file.
|
package/appEnv.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export type NodeEnv = 'development' | 'production';
|
|
2
|
+
export type EnvVarType = string | number | boolean | undefined;
|
|
3
|
+
/** Useful with module augmentation */
|
|
4
|
+
export interface AppEnvVars {
|
|
5
|
+
NODE_ENV: NodeEnv;
|
|
6
|
+
APP_SSR: boolean;
|
|
7
|
+
}
|
|
8
|
+
type ValueGetter<T> = () => T;
|
|
9
|
+
type ValueOrGetter<T> = T | ValueGetter<T>;
|
|
10
|
+
export interface AppEnvironment {
|
|
11
|
+
/** Object with keys and their default values so we can feed into Webpack EnvironmentPlugin. */
|
|
12
|
+
raw: AppEnvVars & AnyObject;
|
|
13
|
+
/** Stringify all values that we can feed into Webpack DefinePlugin. */
|
|
14
|
+
envStringify(): {
|
|
15
|
+
'process.env': Record<string, string>;
|
|
16
|
+
};
|
|
17
|
+
has<T extends keyof AppEnvVars>(envVarName: T): boolean;
|
|
18
|
+
get<T extends keyof AppEnvVars>(envVarName: T): AppEnvVars[T];
|
|
19
|
+
/** Use APP_SSR environment variable */
|
|
20
|
+
ssr: boolean;
|
|
21
|
+
/** Use NODE_ENV environment variable */
|
|
22
|
+
dev: boolean;
|
|
23
|
+
/** Use NODE_ENV environment variable */
|
|
24
|
+
prod: boolean;
|
|
25
|
+
/** Use NODE_ENV environment variable */
|
|
26
|
+
ifDev<T>(devModeValue: ValueOrGetter<T>, elseValue: ValueOrGetter<T>): T;
|
|
27
|
+
/** Use NODE_ENV environment variable */
|
|
28
|
+
ifProd<T>(prodModeValue: ValueOrGetter<T>, elseValue: ValueOrGetter<T>): T;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Grab NODE_ENV and APP_* environment variables and prepare them to be
|
|
32
|
+
* injected into the application via DefinePlugin in Webpack configuration.
|
|
33
|
+
*/
|
|
34
|
+
export declare function getAppEnvironment(): AppEnvironment;
|
|
35
|
+
/**
|
|
36
|
+
* App environment variables.
|
|
37
|
+
* User defined environment variables must start with APP_.
|
|
38
|
+
*/
|
|
39
|
+
declare const appEnv: AppEnvironment;
|
|
40
|
+
export default appEnv;
|
package/appEnv.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAppEnvironment=void 0;const APP=/^APP_/i;function tryParse(e){if(null==e)return e;try{return JSON.parse(e)}catch(t){return e}}function getAppEnvironment(){const e=process.env,t=Object.keys(e).filter((e=>APP.test(e))).reduce(((t,r)=>(t[r]=tryParse(e[r]),t)),{NODE_ENV:tryParse(e.NODE_ENV||"development"),APP_SSR:!1}),r={raw:t,envStringify(){return{"process.env":Object.keys(this.raw).reduce(((e,t)=>(e[t]=JSON.stringify(this.raw[t]),e)),{})}},has:e=>e in t,get:e=>t[e],get ssr(){return!0===this.raw.APP_SSR},get dev(){return"development"===this.raw.NODE_ENV},get prod(){return"production"===this.raw.NODE_ENV},ifDev(e,t){return this.dev?"function"==typeof e?e():e:"function"==typeof t?t():t},ifProd(e,t){return this.prod?"function"==typeof e?e():e:"function"==typeof t?t():t}};return("undefined"==typeof window?global:window).Proxy?new Proxy(r,{get:(e,t)=>"string"!=typeof t||t in e?e[t]:e.raw[t],has:(e,t)=>t in e||t in e.raw}):r}exports.getAppEnvironment=getAppEnvironment;const appEnv=getAppEnvironment();exports.default=appEnv;
|
package/apprc.d.ts
ADDED
package/apprc.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,o)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),__exportStar=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||__createBinding(t,e,r)},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var buildConfig_1=require("./buildConfig");Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return __importDefault(buildConfig_1).default}}),__exportStar(require("./buildConfig"),exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const getInstalledPlugin_1=require("./getInstalledPlugin");module.exports={presets:[["@babel/preset-env",{loose:!0}]],plugins:[(0,getInstalledPlugin_1.getInstalledPlugin)("@babel/plugin-transform-runtime"),(0,getInstalledPlugin_1.getInstalledPlugin)("@babel/plugin-proposal-decorators",{legacy:!0})].filter((e=>!!e))};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getInstalledPlugin(name: string, options?: AnyObject | undefined): string | [string, AnyObject] | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getInstalledPlugin=void 0;const getInstalledPackage_1=require("../getInstalledPackage");function getInstalledPlugin(e,t){const l=(0,getInstalledPackage_1.getInstalledPackage)(e);if(l)return t?[l,t]:l}exports.getInstalledPlugin=getInstalledPlugin;
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";module.exports={extends:"./env.babelrc.js",presets:["@babel/preset-react"]};
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";module.exports={plugins:["react-hot-loader/babel"]};
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";module.exports={extends:"./env.babelrc.js",presets:["@babel/preset-typescript"]};
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";module.exports={extends:"./react.babelrc.js",presets:["@babel/preset-typescript"]};
|
package/buildConfig.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type BuildConfigDefaults } from './buildConfigDefaults';
|
|
2
|
+
export interface BuildConfig extends Omit<BuildConfigDefaults, 'client' | 'server' | 'shared'> {
|
|
3
|
+
client: BuildConfigDefaults['client'] | false | undefined;
|
|
4
|
+
server: BuildConfigDefaults['server'] | false | undefined;
|
|
5
|
+
shared: BuildConfigDefaults['shared'] | false | undefined;
|
|
6
|
+
default: BuildConfigDefaults;
|
|
7
|
+
envStringify(): {
|
|
8
|
+
'process.env.buildConfig': string;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export declare function resolveConfigPath(moduleNames?: string[], paths?: string[]): string;
|
|
12
|
+
export declare function getBuildConfig(configPath?: string): BuildConfig;
|
|
13
|
+
/** Use in runtime in browser environment only JSON convertable values, not functions! */
|
|
14
|
+
declare const buildConfig: BuildConfig;
|
|
15
|
+
export default buildConfig;
|
package/buildConfig.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBuildConfig=exports.resolveConfigPath=void 0;const buildConfigDefaults_1=__importDefault(require("./buildConfigDefaults"));function resolveConfigPath(e=["build.config","apprc"],t=[process.cwd()]){let r="";for(let o=0,i=e[o];o<e.length;o+=1)try{if(r=require.resolve(`./${i}`,{paths:t}),r)return r}catch(e){}return r}function merge(e,t){return Array.from(new Set([...Object.getOwnPropertyNames(e),...Object.getOwnPropertyNames(t)])).reduce(((r,o)=>{var i,n;const s=o;return Array.isArray(e[s])||Array.isArray(t[s])?r[s]=null!==(i=t[s])&&void 0!==i?i:e[s]:"object"==typeof e[s]&&"object"==typeof t[s]?r[s]=merge(e[s],null!==(n=t[s])&&void 0!==n?n:{}):r[s]=s in t?t[s]:e[s],r}),{})}function getBuildConfig(e=resolveConfigPath()){const t=process.env.buildConfig||process.env.apprc||process.env.appConfig||(e?merge(buildConfigDefaults_1.default,require(e)):{output:buildConfigDefaults_1.default.output,client:!1,server:!1,shared:!1});return Object.assign(Object.assign({},t),{default:buildConfigDefaults_1.default,envStringify(){const e=JSON.stringify(this);return{"process.env.buildConfig":e,"process.env.apprc":e,"process.env.appConfig":e}}})}exports.resolveConfigPath=resolveConfigPath,exports.getBuildConfig=getBuildConfig;const buildConfig=getBuildConfig();exports.default=buildConfig;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
type HtmlOptions = import('html-webpack-plugin').Options & {
|
|
2
|
+
readonly main?: boolean | undefined;
|
|
3
|
+
};
|
|
4
|
+
type StaticContentOptions = (string | {
|
|
5
|
+
path: string;
|
|
6
|
+
ignore?: (string | RegExp)[] | undefined;
|
|
7
|
+
})[];
|
|
8
|
+
export declare function getClientConfig(root?: string): {
|
|
9
|
+
root: string;
|
|
10
|
+
sources: string;
|
|
11
|
+
assets: string;
|
|
12
|
+
staticContent: StaticContentOptions;
|
|
13
|
+
/** Generating html options */
|
|
14
|
+
html: HtmlOptions | HtmlOptions[];
|
|
15
|
+
/** Used by eslint webpack resolver */
|
|
16
|
+
webpackConfig: string;
|
|
17
|
+
/** Used by webpack loaders and plugins */
|
|
18
|
+
tsconfig: string;
|
|
19
|
+
/** Plug'n'Play resolver for Webpack */
|
|
20
|
+
webpackPnpEnabled: boolean;
|
|
21
|
+
output: {
|
|
22
|
+
root: string;
|
|
23
|
+
js: string;
|
|
24
|
+
styles: string;
|
|
25
|
+
assets: string;
|
|
26
|
+
external: string;
|
|
27
|
+
publicPath: string;
|
|
28
|
+
/** Generated asset manifest */
|
|
29
|
+
assetManifest: {
|
|
30
|
+
/** For example: `asset-manifest.json` */
|
|
31
|
+
fileName: string;
|
|
32
|
+
filterTemplate: {};
|
|
33
|
+
};
|
|
34
|
+
/** Generating service worker options (workbox-webpack-plugin) */
|
|
35
|
+
sw: {
|
|
36
|
+
/** For example: `service-worker.js` */
|
|
37
|
+
swDest: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
export declare function getServerConfig(root?: string): {
|
|
42
|
+
root: string;
|
|
43
|
+
sources: string;
|
|
44
|
+
/** Used by eslint webpack resolver */
|
|
45
|
+
webpackConfig: string;
|
|
46
|
+
/** Used by webpack loaders and plugins */
|
|
47
|
+
tsconfig: string;
|
|
48
|
+
output: {
|
|
49
|
+
root: string;
|
|
50
|
+
publicPath: string;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
export declare function getSharedConfig(root?: string): {
|
|
54
|
+
root: string;
|
|
55
|
+
sources: string;
|
|
56
|
+
tsconfig: string;
|
|
57
|
+
};
|
|
58
|
+
export type BuildConfigDefaults = {
|
|
59
|
+
output: {
|
|
60
|
+
root: string;
|
|
61
|
+
};
|
|
62
|
+
client: ReturnType<typeof getClientConfig>;
|
|
63
|
+
server: ReturnType<typeof getServerConfig>;
|
|
64
|
+
shared: ReturnType<typeof getSharedConfig>;
|
|
65
|
+
};
|
|
66
|
+
declare const _default: Readonly<BuildConfigDefaults>;
|
|
67
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function getClientConfig(e="client"){return{root:e,sources:"src",assets:"src/assets",staticContent:["public"],html:[],webpackConfig:"",tsconfig:"tsconfig.json",webpackPnpEnabled:!1,output:{root:e,js:"js",styles:"styles",assets:"assets",external:"lib",publicPath:"/",assetManifest:{fileName:"",filterTemplate:{}},sw:{swDest:""}}}}function getServerConfig(e="server"){return{root:e,sources:"src",webpackConfig:"",tsconfig:"tsconfig.json",output:{root:e,publicPath:"/"}}}function getSharedConfig(e="shared"){return{root:e,sources:"src",tsconfig:"tsconfig.json"}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getSharedConfig=exports.getServerConfig=exports.getClientConfig=void 0,exports.getClientConfig=getClientConfig,exports.getServerConfig=getServerConfig,exports.getSharedConfig=getSharedConfig;const buildConfigDefaults={output:{root:"dist"},client:getClientConfig(),server:getServerConfig(),shared:getSharedConfig()};exports.default=Object.freeze(buildConfigDefaults);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface Options {
|
|
2
|
+
import?: {
|
|
3
|
+
path: string[] | string;
|
|
4
|
+
} | false | undefined;
|
|
5
|
+
presetEnv?: Record<string, any> | undefined;
|
|
6
|
+
nested?: boolean | undefined;
|
|
7
|
+
/** You need to install cssnano and cssnano-preset-default */
|
|
8
|
+
minimizer?: boolean | undefined;
|
|
9
|
+
autoprefixer?: boolean | undefined;
|
|
10
|
+
}
|
|
11
|
+
declare const _default: ({ import: importConfig, presetEnv, nested, minimizer, autoprefixer, }?: Options) => Record<string, any>;
|
|
12
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const appEnv_1=__importDefault(require("../appEnv")),paths_1=__importDefault(require("../paths"));exports.default=({import:e=!!paths_1.default.client.sources&&{path:[paths_1.default.client.sources]},presetEnv:t,nested:s=!0,minimizer:a=appEnv_1.default.prod,autoprefixer:r=appEnv_1.default.prod}={})=>({sourceMap:appEnv_1.default.dev,plugins:[e&&["postcss-import",e],s&&"postcss-nested",["postcss-preset-env",Object.assign(Object.assign({stage:2},t),{features:Object.assign({"custom-media-queries":!0,autoprefixer:r},t?t.features:void 0)})],a&&["cssnano",{preset:["default",{discardComments:{removeAll:!0}}]}]].filter(Boolean)});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const path_1=__importDefault(require("path")),paths_1=__importDefault(require("../paths"));module.exports={extends:["stylelint-config-standard","stylelint-config-css-modules"],plugins:["stylelint-prettier"],defaultSeverity:"error",ignoreFiles:[path_1.default.join(paths_1.default.nodeModules.root,"/**"),path_1.default.join(paths_1.default.output.root,"/**")],rules:{"prettier/prettier":!0,"comment-empty-line-before":null,"no-descending-specificity":null,indentation:null,"max-line-length":null,"value-list-comma-newline-after":null,"declaration-colon-newline-after":null,"selector-descendant-combinator-no-non-space":null}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/eslint/common.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,s,r){void 0===r&&(r=s);var n=Object.getOwnPropertyDescriptor(t,s);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,r,n)}:function(e,t,s,r){void 0===r&&(r=s),e[r]=t[s]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&__createBinding(t,e,s);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const fs_1=__importDefault(require("fs")),eslint_config_airbnb_base_1=__importDefault(require("eslint-config-airbnb-base")),style_1=__importDefault(require("eslint-config-airbnb-base/rules/style")),paths_1=__importStar(require("../paths")),getInstalledPackage_1=require("../getInstalledPackage"),consts_1=require("./consts"),hasImportPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-import"),hasTsDocPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-tsdoc"),airbnbExtends=hasImportPlugin?eslint_config_airbnb_base_1.default.extends:eslint_config_airbnb_base_1.default.extends.filter((e=>!e.includes("rules/imports.js"))),config={extends:[...airbnbExtends,"plugin:prettier/recommended"],env:{es2020:!0},parser:"@babel/eslint-parser",parserOptions:{ecmaVersion:2020},reportUnusedDisableDirectives:!0,settings:{"import/resolver":{node:{extensions:paths_1.moduleExtensions.filter((e=>!e.includes("ts"))),moduleDirectory:["node_modules",paths_1.default.client.sources,paths_1.default.server.sources,paths_1.default.shared.sources].filter((e=>!!e))},typescript:{}},"import/extensions":paths_1.moduleExtensions.filter((e=>!e.includes("ts")))},rules:Object.assign({"no-console":"off","no-unused-expressions":["error",{allowShortCircuit:!0}],"lines-between-class-members":["error","always",{exceptAfterSingleLine:!0}],"no-restricted-exports":["error",{restrictedNamedExports:["then"],restrictDefaultExports:{named:!0,namedFrom:!0,namespaceFrom:!0,defaultFrom:!1}}]},hasImportPlugin&&{"import/no-extraneous-dependencies":["error",{devDependencies:!0}],"import/extensions":["error","ignorePackages",paths_1.moduleExtensions.reduce(((e,t)=>Object.assign(Object.assign({},e),{[t.substring(1)]:"never"})),{"":"never"})],"import/order":["error",{groups:["builtin","external","internal","parent","sibling","index","object"]}],"import/prefer-default-export":"off"}),overrides:[{files:paths_1.moduleExtensions.filter((e=>e.includes("ts"))).map((e=>`*${e}`)),extends:["plugin:@typescript-eslint/recommended","plugin:@typescript-eslint/recommended-requiring-type-checking"],parser:"@typescript-eslint/parser",parserOptions:{project:fs_1.default.existsSync(consts_1.eslintTsProject)?consts_1.eslintTsProject:"tsconfig.json"},plugins:["@typescript-eslint",...hasTsDocPlugin?["eslint-plugin-tsdoc"]:[]],settings:{"import/parsers":{"@typescript-eslint/parser":paths_1.moduleExtensions},"import/resolver":{node:{extensions:paths_1.moduleExtensions},typescript:{project:fs_1.default.existsSync(consts_1.eslintTsProject)?consts_1.eslintTsProject:"tsconfig.json"}},"import/extensions":paths_1.moduleExtensions,"import/external-module-folders":["node_modules","node_modules/@types"]},rules:Object.assign(Object.assign(Object.assign({"no-restricted-syntax":Array.isArray(style_1.default.rules["no-restricted-syntax"])?style_1.default.rules["no-restricted-syntax"].filter((e=>"object"!=typeof e||"ForOfStatement"!==e.selector)):style_1.default.rules["no-restricted-syntax"],"no-useless-constructor":"off","no-void":["error",{allowAsStatement:!0}]},hasImportPlugin&&{"import/export":"off","import/named":"off"}),{"@typescript-eslint/explicit-member-accessibility":"off","@typescript-eslint/explicit-function-return-type":["warn",{allowExpressions:!0,allowTypedFunctionExpressions:!0,allowHigherOrderFunctions:!0,allowDirectConstAssertionInArrowFunctions:!0,allowConciseArrowFunctionExpressionsStartingWithVoid:!0}]}),hasTsDocPlugin&&{"tsdoc/syntax":"warn"}),overrides:[{files:["*.d.ts"],rules:{"max-classes-per-file":"off"}}]}]};module.exports=config;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const eslintTsProject = "tsconfig.eslint.json";
|
package/eslint/consts.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.eslintTsProject=void 0,exports.eslintTsProject="tsconfig.eslint.json";
|
package/eslint/node.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/eslint/node.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,s)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path")),buildConfig_1=__importDefault(require("../buildConfig")),paths_1=__importStar(require("../paths")),consts_1=require("./consts"),enabled=buildConfig_1.default.server&&fs_1.default.existsSync(paths_1.default.server.root),config={extends:[require.resolve("./common")],env:{node:!0},settings:{"import/resolver":Object.assign({node:{}},enabled&&buildConfig_1.default.server&&buildConfig_1.default.server.webpackConfig?{webpack:{config:buildConfig_1.default.server.webpackConfig}}:void 0)},overrides:[{files:paths_1.moduleExtensions.filter((e=>e.includes("ts"))).map((e=>`*${e}`)),parserOptions:{project:(()=>{if(enabled){const e=path_1.default.join(paths_1.default.server.root,consts_1.eslintTsProject);if(fs_1.default.existsSync(e))return e;if(fs_1.default.existsSync(paths_1.default.server.tsconfig))return paths_1.default.server.tsconfig}return fs_1.default.existsSync(consts_1.eslintTsProject)?consts_1.eslintTsProject:"tsconfig.json"})()}}]};module.exports=config;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/eslint/react.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,n,s){void 0===s&&(s=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,s,i)}:function(e,t,n,s){void 0===s&&(s=n),e[s]=t[n]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&__createBinding(t,e,n);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path")),eslint_config_airbnb_1=__importDefault(require("eslint-config-airbnb")),buildConfig_1=__importDefault(require("../buildConfig")),paths_1=__importStar(require("../paths")),getInstalledPackage_1=require("../getInstalledPackage"),consts_1=require("./consts"),enabled=buildConfig_1.default.client&&fs_1.default.existsSync(paths_1.default.client.root),hasReactPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-react"),hasA11yPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-jsx-a11y"),hasReactHooksPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-react-hooks"),hasMobxPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-mobx"),airbnbExtends=eslint_config_airbnb_1.default.extends.filter((e=>!(e.includes("eslint-config-airbnb-base")||!hasReactPlugin&&e.includes("rules/react.js")||!hasA11yPlugin&&e.includes("rules/react-a11y.js")))),config={extends:[...airbnbExtends,require.resolve("./common"),...hasReactHooksPlugin?["plugin:react-hooks/recommended"]:[],...hasMobxPlugin?["plugin:mobx/recommended"]:[]],env:{browser:!0},settings:{"import/resolver":Object.assign({node:{}},enabled&&buildConfig_1.default.client&&buildConfig_1.default.client.webpackConfig?{webpack:{config:buildConfig_1.default.client.webpackConfig}}:void 0)},rules:Object.assign(Object.assign(Object.assign({},hasReactPlugin&&{"react/prop-types":"off","react/sort-comp":"off","react/destructuring-assignment":["error","always",{ignoreClassFields:!0}],"react/jsx-filename-extension":["error",{extensions:[".jsx"]}],"react/jsx-wrap-multilines":"off","react/jsx-props-no-spreading":"off","react/function-component-definition":["error",{namedComponents:"function-declaration",unnamedComponents:"arrow-function"}]}),hasA11yPlugin&&{"jsx-a11y/anchor-is-valid":["error",{specialLink:["to"]}],"jsx-a11y/label-has-for":["error",{allowChildren:!0}]}),hasReactHooksPlugin&&{"react-hooks/exhaustive-deps":"error"}),overrides:[{files:paths_1.moduleExtensions.filter((e=>e.includes("ts"))).map((e=>`*${e}`)),parserOptions:{project:(()=>{if(enabled){const e=path_1.default.join(paths_1.default.client.root,consts_1.eslintTsProject);if(fs_1.default.existsSync(e))return e;if(fs_1.default.existsSync(paths_1.default.client.tsconfig))return paths_1.default.client.tsconfig}return fs_1.default.existsSync(consts_1.eslintTsProject)?consts_1.eslintTsProject:"tsconfig.json"})()},rules:Object.assign({},hasReactPlugin&&{"react/jsx-filename-extension":["error",{extensions:paths_1.moduleExtensions.filter((e=>e.includes("sx")))}]})}]};module.exports=config;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,s,r){void 0===r&&(r=s);var l=Object.getOwnPropertyDescriptor(t,s);l&&!("get"in l?!t.__esModule:l.writable||l.configurable)||(l={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,r,l)}:function(e,t,s,r){void 0===r&&(r=s),e[r]=t[s]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&__createBinding(t,e,s);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path")),buildConfig_1=__importDefault(require("../buildConfig")),paths_1=__importStar(require("../paths")),consts_1=require("./consts");function getFilesGlob(e){return paths_1.moduleExtensions.map((t=>`${e||"."}/**/*${t}`))}const filesGlobs={client:buildConfig_1.default.client&&fs_1.default.existsSync(paths_1.default.client.root)?getFilesGlob(buildConfig_1.default.client.root):[],server:buildConfig_1.default.server&&fs_1.default.existsSync(paths_1.default.server.root)?getFilesGlob(buildConfig_1.default.server.root):[],shared:buildConfig_1.default.shared&&fs_1.default.existsSync(paths_1.default.shared.root)?getFilesGlob(buildConfig_1.default.shared.root):[],other:paths_1.moduleExtensions.map((e=>`*${e}`))},config={settings:{filesGlobs:filesGlobs,getFilesGlob:getFilesGlob},overrides:[...filesGlobs.client.length>0?[{files:filesGlobs.client,extends:[require.resolve("./react")],rules:{}}]:[],...filesGlobs.server.length>0?[{files:filesGlobs.server,extends:[require.resolve("./react"),require.resolve("./node")],rules:{}}]:[],...filesGlobs.shared.length>0?[{files:filesGlobs.shared,extends:[require.resolve("./common")],env:{"shared-node-browser":!0},parserOptions:{project:(()=>{const e=path_1.default.join(paths_1.default.shared.root,consts_1.eslintTsProject);return fs_1.default.existsSync(e)?e:fs_1.default.existsSync(paths_1.default.shared.tsconfig)?paths_1.default.shared.tsconfig:fs_1.default.existsSync(consts_1.eslintTsProject)?consts_1.eslintTsProject:"tsconfig.json"})()},rules:{}}]:[],{files:filesGlobs.other,excludedFiles:[...filesGlobs.client,...filesGlobs.server,...filesGlobs.shared].filter((e=>!!e)),extends:[require.resolve("./common")],rules:{}}]};module.exports=config;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function getInstalledPackage(e,t=require){try{return t(e),e}catch(e){return}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getInstalledPackage=void 0,exports.getInstalledPackage=getInstalledPackage;
|
package/index.d.ts
ADDED
package/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.paths=exports.apprc=exports.buildConfig=exports.appEnv=void 0;var appEnv_1=require("./appEnv");Object.defineProperty(exports,"appEnv",{enumerable:!0,get:function(){return __importDefault(appEnv_1).default}});var buildConfig_1=require("./buildConfig");Object.defineProperty(exports,"buildConfig",{enumerable:!0,get:function(){return __importDefault(buildConfig_1).default}});var apprc_1=require("./apprc");Object.defineProperty(exports,"apprc",{enumerable:!0,get:function(){return __importDefault(apprc_1).default}});var paths_1=require("./paths");Object.defineProperty(exports,"paths",{enumerable:!0,get:function(){return __importDefault(paths_1).default}});
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@js-toolkit/configs",
|
|
3
|
+
"version": "3.87.4",
|
|
4
|
+
"description": "Preconfigured configurations",
|
|
5
|
+
"author": "VZH",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"main": "./",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/js-toolkit/configs"
|
|
11
|
+
},
|
|
12
|
+
"scripts": {
|
|
13
|
+
"clean": "rimraf dist/*",
|
|
14
|
+
"copy:configs": "copyfiles package.json .npmignore README.md LICENSE ./dist/",
|
|
15
|
+
"copy": "copyfiles --exclude './src/**/*.ts' --up 1 './src/**/*' ./dist/ && npm run copy:configs",
|
|
16
|
+
"minify": "node ../node-utils/dist/bin/minify.js --replace ./dist",
|
|
17
|
+
"build": "yarn run clean && tsc --project ./tsconfig.json",
|
|
18
|
+
"patch-publish": "yarn run build && yarn run minify && npm version patch --no-workspaces-update -m 'v%s' && yarn run copy && cd ./dist && npm publish --access public && git push --follow-tags",
|
|
19
|
+
"minor-publish": "yarn run build && yarn run minify && npm version minor --no-workspaces-update -m 'v%s' && yarn run copy && cd ./dist && npm publish --access public && git push --follow-tags"
|
|
20
|
+
},
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@types/eslint": "^8.44.2",
|
|
23
|
+
"@types/webpack-node-externals": "^3.0.0",
|
|
24
|
+
"@typescript-eslint/eslint-plugin": "^6.3.0",
|
|
25
|
+
"@typescript-eslint/parser": "^6.3.0",
|
|
26
|
+
"copy-webpack-plugin": "^11.0.0",
|
|
27
|
+
"copyfiles": "^2.4.1",
|
|
28
|
+
"eslint": "^8.47.0",
|
|
29
|
+
"eslint-config-airbnb": "^19.0.4",
|
|
30
|
+
"eslint-config-airbnb-base": "^15.0.0",
|
|
31
|
+
"eslint-config-prettier": "^9.0.0",
|
|
32
|
+
"eslint-plugin-import": "^2.28.0",
|
|
33
|
+
"eslint-plugin-jsx-a11y": "^6.7.1",
|
|
34
|
+
"eslint-plugin-prettier": "^5.0.0",
|
|
35
|
+
"eslint-plugin-react": "^7.33.1",
|
|
36
|
+
"eslint-plugin-react-hooks": "^4.6.0",
|
|
37
|
+
"html-webpack-plugin": "^5.5.3",
|
|
38
|
+
"prettier": "^3.0.1",
|
|
39
|
+
"rimraf": "^5.0.1",
|
|
40
|
+
"typescript": "^5.1.6",
|
|
41
|
+
"webpack": "^5.88.2",
|
|
42
|
+
"webpack-dev-server": "^4.15.1",
|
|
43
|
+
"webpack-node-externals": "^3.0.0"
|
|
44
|
+
}
|
|
45
|
+
}
|
package/paths.d.ts
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
export declare const moduleExtensions: string[];
|
|
2
|
+
export declare function getPaths(baseDir?: string, buildConfig?: import("./buildConfig").BuildConfig): Readonly<{
|
|
3
|
+
root: string;
|
|
4
|
+
nodeModules: {
|
|
5
|
+
root: string;
|
|
6
|
+
};
|
|
7
|
+
output: {
|
|
8
|
+
root: string;
|
|
9
|
+
};
|
|
10
|
+
client: {
|
|
11
|
+
root: string;
|
|
12
|
+
sources: string;
|
|
13
|
+
assets: string;
|
|
14
|
+
staticContent: {
|
|
15
|
+
path: string;
|
|
16
|
+
ignore?: (string | RegExp)[] | undefined;
|
|
17
|
+
}[];
|
|
18
|
+
tsconfig: string;
|
|
19
|
+
output: {
|
|
20
|
+
path: string;
|
|
21
|
+
jsPath: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
server: {
|
|
25
|
+
root: string;
|
|
26
|
+
sources: string;
|
|
27
|
+
tsconfig: string;
|
|
28
|
+
output: {
|
|
29
|
+
path: string;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
shared: {
|
|
33
|
+
root: string;
|
|
34
|
+
sources: string;
|
|
35
|
+
tsconfig: string;
|
|
36
|
+
};
|
|
37
|
+
}>;
|
|
38
|
+
/** Do not use it in runtime in browser environment! */
|
|
39
|
+
declare const paths: Readonly<{
|
|
40
|
+
root: string;
|
|
41
|
+
nodeModules: {
|
|
42
|
+
root: string;
|
|
43
|
+
};
|
|
44
|
+
output: {
|
|
45
|
+
root: string;
|
|
46
|
+
};
|
|
47
|
+
client: {
|
|
48
|
+
root: string;
|
|
49
|
+
sources: string;
|
|
50
|
+
assets: string;
|
|
51
|
+
staticContent: {
|
|
52
|
+
path: string;
|
|
53
|
+
ignore?: (string | RegExp)[] | undefined;
|
|
54
|
+
}[];
|
|
55
|
+
tsconfig: string;
|
|
56
|
+
output: {
|
|
57
|
+
path: string;
|
|
58
|
+
jsPath: string;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
server: {
|
|
62
|
+
root: string;
|
|
63
|
+
sources: string;
|
|
64
|
+
tsconfig: string;
|
|
65
|
+
output: {
|
|
66
|
+
path: string;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
shared: {
|
|
70
|
+
root: string;
|
|
71
|
+
sources: string;
|
|
72
|
+
tsconfig: string;
|
|
73
|
+
};
|
|
74
|
+
}>;
|
|
75
|
+
export default paths;
|
package/paths.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getPaths=exports.moduleExtensions=void 0;const path_1=__importDefault(require("path")),buildConfig_1=require("./buildConfig");function getPaths(t=process.cwd(),o=(0,buildConfig_1.getBuildConfig)()){return Object.freeze({root:t,nodeModules:{root:(()=>{const o="node_modules";try{const e=__dirname.indexOf(o);return e>=0?__dirname.substring(0,e+o.length):path_1.default.resolve(t,o)}catch(e){return path_1.default.resolve(t,o)}})()},output:{root:path_1.default.resolve(t,o.output.root)},client:(()=>{const{client:e}=o;return e?{root:path_1.default.resolve(t,e.root),sources:path_1.default.resolve(t,e.root,e.sources),assets:path_1.default.resolve(t,e.root,e.assets),staticContent:e.staticContent.map((o=>{const s="string"==typeof o?{path:o}:o;return path_1.default.isAbsolute(s.path)?s:Object.assign(Object.assign({},s),{path:path_1.default.resolve(t,e.root,s.path)})})),tsconfig:path_1.default.resolve(t,e.root,e.tsconfig),output:{path:path_1.default.resolve(t,o.output.root,e.output.root),jsPath:path_1.default.resolve(t,o.output.root,e.output.root,e.output.js)}}:{root:"",sources:"",assets:"",staticContent:[],tsconfig:"",output:{path:"",jsPath:""}}})(),server:(()=>{const{server:e}=o;return e?{root:path_1.default.resolve(t,e.root),sources:path_1.default.resolve(t,e.root,e.sources),tsconfig:path_1.default.resolve(t,e.root,e.tsconfig),output:{path:path_1.default.resolve(t,o.output.root,e.output.root)}}:{root:"",sources:"",tsconfig:"",output:{path:""}}})(),shared:(()=>{const{shared:e}=o;return e?{root:path_1.default.resolve(t,e.root),sources:path_1.default.resolve(t,e.root,e.sources),tsconfig:path_1.default.resolve(t,e.root,e.tsconfig)}:{root:"",sources:"",tsconfig:""}})()})}exports.moduleExtensions=[".js",".mjs",".cjs",".jsx",".ts",".tsx",".d.ts"],exports.getPaths=getPaths;const paths=getPaths();exports.default=paths;
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";module.exports={printWidth:100,singleQuote:!0,trailingComma:"es5",arrowParens:"always",endOfLine:"lf"};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../js/common.jsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"target": "ES2015",
|
|
5
|
+
"module": "ES2015",
|
|
6
|
+
"moduleResolution": "node",
|
|
7
|
+
"allowJs": false,
|
|
8
|
+
"sourceMap": true,
|
|
9
|
+
"experimentalDecorators": true,
|
|
10
|
+
"verbatimModuleSyntax": true,
|
|
11
|
+
"esModuleInterop": true,
|
|
12
|
+
"resolveJsonModule": true,
|
|
13
|
+
"strict": true,
|
|
14
|
+
"noUnusedLocals": true,
|
|
15
|
+
"noUnusedParameters": true,
|
|
16
|
+
"noImplicitReturns": true,
|
|
17
|
+
"noFallthroughCasesInSwitch": true,
|
|
18
|
+
"noImplicitOverride": true,
|
|
19
|
+
"noUncheckedIndexedAccess": false,
|
|
20
|
+
"skipLibCheck": true,
|
|
21
|
+
"jsx": "react",
|
|
22
|
+
"importHelpers": true,
|
|
23
|
+
"incremental": true
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
declare module '*.svg' {
|
|
2
|
+
const path: string;
|
|
3
|
+
export default path;
|
|
4
|
+
}
|
|
5
|
+
declare module '*.jpg' {
|
|
6
|
+
const path: string;
|
|
7
|
+
export default path;
|
|
8
|
+
}
|
|
9
|
+
declare module '*.png' {
|
|
10
|
+
const path: string;
|
|
11
|
+
export default path;
|
|
12
|
+
}
|
|
13
|
+
declare module '*.mp3' {
|
|
14
|
+
const path: string;
|
|
15
|
+
export default path;
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
type AnyObject = Record<string, any>;
|
package/types/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Configuration, RuleSetRule } from 'webpack';
|
|
2
|
+
import { type CommonConfigOptions } from './common.config';
|
|
3
|
+
export declare const clientDefaultRules: Record<'jsRule' | 'tsBaseRule' | 'cssRule' | 'cssNodeModulesRule' | 'svgRule' | 'fontRule' | 'assetsRule', RuleSetRule>;
|
|
4
|
+
type DefaultRuleValue = RuleSetRule | ((defaults: RuleSetRule) => RuleSetRule);
|
|
5
|
+
type ClientDefaultRules = Record<Exclude<keyof typeof clientDefaultRules, 'tsBaseRule'>, DefaultRuleValue> & {
|
|
6
|
+
tsRule: (defaults: RuleSetRule) => RuleSetRule;
|
|
7
|
+
};
|
|
8
|
+
export interface ClientConfigOptions extends Omit<CommonConfigOptions, 'typescript'> {
|
|
9
|
+
typescript?: (CommonConfigOptions['typescript'] & {
|
|
10
|
+
loaderOptions?: Record<string, any> | undefined;
|
|
11
|
+
threadLoader?: boolean | undefined;
|
|
12
|
+
threadLoaderOptions?: Record<string, any> | undefined;
|
|
13
|
+
}) | boolean | undefined;
|
|
14
|
+
rules?: (Partial<ClientDefaultRules> & Record<string, RuleSetRule>) | undefined;
|
|
15
|
+
}
|
|
16
|
+
export declare function prepareRules(rules: Record<string, DefaultRuleValue>, defaultRules: Record<string, RuleSetRule>): Record<string, RuleSetRule>;
|
|
17
|
+
declare const _default: ({ outputPath, outputPublicPath, outputJsDir, hash, chunkSuffix, typescript, rules: { tsBaseRule, ...rules }, ...restOptions }: ClientConfigOptions) => Configuration;
|
|
18
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __rest=this&&this.__rest||function(e,t){var s={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(s[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(o=Object.getOwnPropertySymbols(e);a<o.length;a++)t.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(e,o[a])&&(s[o[a]]=e[o[a]])}return s},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.prepareRules=exports.clientDefaultRules=void 0;const path_1=__importDefault(require("path")),appEnv_1=__importDefault(require("../appEnv")),paths_1=__importDefault(require("../paths")),buildConfig_1=__importDefault(require("../buildConfig")),common_config_1=__importDefault(require("./common.config")),loaders_1=require("./loaders"),nodeRequire_1=__importDefault(require("./nodeRequire"));function containsLoader(e,t){const s=e=>"string"==typeof e?e.includes(t):Array.isArray(e)?e.some(s):!("function"==typeof e||!e||!e.loader)&&e.loader.includes(t);return Object.getOwnPropertyNames(e).some((t=>{const o=e[t];return o&&s(o.loader||o.use)}))}function prepareRules(e,t){return Object.entries(e).reduce(((e,[s,o])=>("function"==typeof o&&s in t&&t[s]?e[s]=o(t[s]):e[s]=o,e)),{})}function getPnpWebpackPlugin(){return(0,nodeRequire_1.default)("pnp-webpack-plugin")}function normalizeHtml(e){return Array.isArray(e)?e:[e]}exports.clientDefaultRules={jsRule:{test:/\.m?jsx?$/,include:[paths_1.default.client.sources,paths_1.default.shared.sources].filter((e=>!!e)),use:(0,loaders_1.babelLoader)()},tsBaseRule:{test:/\.tsx?$/,include:[paths_1.default.client.sources,paths_1.default.shared.sources].filter((e=>!!e))},cssRule:{test:/\.css$/,include:[paths_1.default.client.sources,path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/react-components"),path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/editors"),path_1.default.join(paths_1.default.nodeModules.root,"reflexy")],use:(0,loaders_1.css)()},cssNodeModulesRule:{test:/\.css$/,include:[paths_1.default.nodeModules.root],exclude:[path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/react-components"),path_1.default.join(paths_1.default.nodeModules.root,"@jstoolkit/editors"),path_1.default.join(paths_1.default.nodeModules.root,"reflexy")],use:(0,loaders_1.cssNodeModules)()},svgRule:{test:/\.svg$/,include:[paths_1.default.client.sources,paths_1.default.nodeModules.root],use:(0,loaders_1.assets)({limit:void 0})},fontRule:{test:/\.(eot|ttf|woff|woff2|otf)$/,include:[paths_1.default.client.assets,paths_1.default.nodeModules.root],use:(0,loaders_1.assets)()},assetsRule:{test:/\.(png|jpg|gif|ico)$/,include:[paths_1.default.client.assets,paths_1.default.nodeModules.root],use:(0,loaders_1.assets)()}},exports.prepareRules=prepareRules;const clientBuildConfig=buildConfig_1.default.client||buildConfig_1.default.default.client;exports.default=e=>{var t,s,o,{outputPath:a=paths_1.default.client.output.path,outputPublicPath:n=clientBuildConfig.output.publicPath,outputJsDir:l=clientBuildConfig.output.js,hash:i=!0,chunkSuffix:r=".chunk",typescript:u}=e,c=e.rules,d=void 0===c?{}:c,{tsBaseRule:p}=d,f=__rest(d,["tsBaseRule"]),g=__rest(e,["outputPath","outputPublicPath","outputJsDir","hash","chunkSuffix","typescript","rules"]);const h=Object.assign({configFile:paths_1.default.client.tsconfig,loader:loaders_1.TsLoaderType.Default,loaderOptions:{},forkedChecks:!1,checkerOptions:{},threadLoader:!1,threadLoaderOptions:{}},"object"==typeof u?u:void 0),{tsBaseRule:_}=exports.clientDefaultRules,m=__rest(exports.clientDefaultRules,["tsBaseRule"]),b=Object.assign({tsRule:Object.assign(Object.assign(Object.assign({},_),p),{use:(0,loaders_1.getTsLoader)(Object.assign(Object.assign({tsconfig:h.configFile,forkedChecks:h.forkedChecks,useThreadLoader:h.threadLoader,threadLoaderOptions:h.threadLoaderOptions},h.loaderOptions),{loaderType:h.loader}))})},m),O=prepareRules(f,b),j=Object.assign(Object.assign({},b),O);return(0,common_config_1.default)(Object.assign(Object.assign({outputPath:a,outputPublicPath:n,outputJsDir:l,hash:i,chunkSuffix:r,typescript:u?Object.assign(Object.assign({},h),{checkerOptions:Object.assign(Object.assign({},h.checkerOptions),{typescript:Object.assign(Object.assign({},h.checkerOptions.typescript),{diagnosticsOptions:Object.assign({syntactic:h.threadLoader},null===(t=h.checkerOptions.typescript)||void 0===t?void 0:t.diagnosticsOptions)})})}):void 0,name:clientBuildConfig.root,target:"web",context:paths_1.default.client.sources,stats:appEnv_1.default.ifDev("minimal",void 0)},g),{resolve:Object.assign(Object.assign({},g.resolve),{modules:[paths_1.default.client.sources,...g.resolve&&g.resolve.modules||[]],alias:Object.assign(Object.assign({},paths_1.default.shared.sources?{shared:paths_1.default.shared.sources}:void 0),g.resolve&&g.resolve.alias||void 0),plugins:[...clientBuildConfig.webpackPnpEnabled?[getPnpWebpackPlugin()]:[],...g.resolve&&g.resolve.plugins||[]]}),resolveLoader:Object.assign(Object.assign({},g.resolveLoader),{plugins:[...clientBuildConfig.webpackPnpEnabled?[getPnpWebpackPlugin().moduleLoader(module)]:[],...g.resolveLoader&&g.resolveLoader.plugins||[]]}),module:Object.assign(Object.assign({},g.module),{rules:[...Object.getOwnPropertyNames(j).map((e=>j[e]||{})),...normalizeHtml(clientBuildConfig.html).some((({template:e})=>e&&e.endsWith(".pug")))?[{test:/\.pug$/,use:{loader:"pug-loader"}}]:[],...g.module&&g.module.rules||[]]}),plugins:[...(()=>{const e=normalizeHtml(clientBuildConfig.html);return e.filter((e=>!!e.template)).map((e=>{var{inject:t,template:s}=e,o=__rest(e,["inject","template"]);return new((0,nodeRequire_1.default)("html-webpack-plugin"))(Object.assign({inject:null!=t&&t,template:path_1.default.join(paths_1.default.client.sources,s)},o))}))})(),containsLoader(j,loaders_1.cssExtractLoader)&&(()=>{const e=(0,nodeRequire_1.default)("extract-css-chunks-webpack-plugin"),t=!0===i||"object"==typeof i&&i.entry,s=!0===i||"object"==typeof i&&i.chunk,o=appEnv_1.default.prod&&t?".[contenthash:8]":"",a=appEnv_1.default.prod&&s?".[contenthash:8]":"",n=clientBuildConfig.output.styles;return new e({filename:`${n}/[name]${o}.css`,chunkFilename:`${n}/[name]${a}${null!=r?r:""}.css`})})(),(null===(o=null===(s=g.optimization)||void 0===s?void 0:s.minimize)||void 0===o||o)&&containsLoader(j,loaders_1.cssExtractLoader)&&new((0,nodeRequire_1.default)("optimize-css-assets-webpack-plugin"))({cssProcessorPluginOptions:{preset:["default",{discardComments:{removeAll:!0}}]}}),clientBuildConfig.output.assetManifest.fileName&&(()=>{const{fileName:e,filterTemplate:t}=clientBuildConfig.output.assetManifest,s=!!t&&!!Object.getOwnPropertyNames(t).length;return new((0,nodeRequire_1.default)("webpack-manifest-plugin"))({fileName:e,filter:s?e=>Object.getOwnPropertyNames(t).every((s=>!(s in e)||e[s]===t[s])):void 0})})(),appEnv_1.default.prod&&clientBuildConfig.output.sw.swDest&&(()=>{var e;const{GenerateSW:t}=(0,nodeRequire_1.default)("workbox-webpack-plugin"),s=normalizeHtml(clientBuildConfig.html),o=1===s.length?s[0].filename:null===(e=s.find((({main:e})=>!!e)))||void 0===e?void 0:e.filename;return new t(Object.assign({clientsClaim:!0,importWorkboxFrom:"cdn",exclude:[/\.map$/,new RegExp(`${clientBuildConfig.output.assetManifest.fileName}$`)],navigateFallback:o&&"string"==typeof o?`${clientBuildConfig.output.publicPath}${o}`:void 0,navigateFallbackBlacklist:[/^\/_/,/\/[^/]+\.[^/]+$/]},clientBuildConfig.output.sw))})(),appEnv_1.default.prod&&paths_1.default.client.staticContent.length>0&&(()=>{const e=paths_1.default.client.staticContent.filter((e=>e.path!==paths_1.default.client.root&&e.path!==paths_1.default.client.sources));if(0===e.length)return;return new((0,nodeRequire_1.default)("copy-webpack-plugin"))({patterns:e.map((e=>{var{path:t,ignore:s}=e,o=__rest(e,["path","ignore"]);return Object.assign(Object.assign({from:t},s&&{globOptions:{ignore:s}}),o)}))})})(),...g.plugins||[]].filter(Boolean),devServer:Object.assign({static:paths_1.default.client.staticContent.map((({path:e,ignore:t})=>Object.assign({directory:e},t&&{watch:{ignored:t}}))),historyApiFallback:!0,host:"0.0.0.0",port:9e3,hot:"only"},g.devServer)}))};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import webpack from 'webpack';
|
|
2
|
+
import { TsLoaderType } from './loaders';
|
|
3
|
+
export interface CommonConfigOptions extends OptionalToUndefined<webpack.Configuration> {
|
|
4
|
+
outputPath: string;
|
|
5
|
+
outputPublicPath: string;
|
|
6
|
+
outputJsDir: string;
|
|
7
|
+
hash?: boolean | {
|
|
8
|
+
entry: boolean;
|
|
9
|
+
chunk: boolean;
|
|
10
|
+
} | undefined;
|
|
11
|
+
chunkSuffix?: string | undefined;
|
|
12
|
+
typescript?: {
|
|
13
|
+
configFile?: string | undefined;
|
|
14
|
+
loader?: TsLoaderType | undefined;
|
|
15
|
+
forkedChecks?: boolean | undefined;
|
|
16
|
+
/** Forked checks webpack plugin options */
|
|
17
|
+
checkerOptions?: Record<string, any> | undefined;
|
|
18
|
+
} | undefined;
|
|
19
|
+
terserPluginOptions?: Record<string, any> | undefined;
|
|
20
|
+
}
|
|
21
|
+
declare const _default: ({ outputPath, outputPublicPath, outputJsDir, hash, chunkSuffix, typescript, terserPluginOptions, ...restOptions }: CommonConfigOptions) => webpack.Configuration;
|
|
22
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&__createBinding(t,e,n);return __setModuleDefault(t,e),t},__rest=this&&this.__rest||function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(i=Object.getOwnPropertySymbols(e);o<i.length;o++)t.indexOf(i[o])<0&&Object.prototype.propertyIsEnumerable.call(e,i[o])&&(n[i[o]]=e[i[o]])}return n},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const webpack_1=__importDefault(require("webpack")),path_1=__importDefault(require("path")),appEnv_1=__importDefault(require("../appEnv")),buildConfig_1=__importDefault(require("../buildConfig")),paths_1=__importStar(require("../paths")),loaders_1=require("./loaders"),nodeRequire_1=__importDefault(require("./nodeRequire"));exports.default=e=>{var t,n,i,{outputPath:o,outputPublicPath:r,outputJsDir:s,hash:u,chunkSuffix:a=".chunk",typescript:l,terserPluginOptions:p}=e,c=__rest(e,["outputPath","outputPublicPath","outputJsDir","hash","chunkSuffix","typescript","terserPluginOptions"]);const d=!0===u||"object"==typeof u&&u.entry,f=!0===u||"object"==typeof u&&u.chunk;return Object.assign(Object.assign({context:paths_1.default.root,mode:appEnv_1.default.raw.NODE_ENV,bail:appEnv_1.default.prod,devtool:appEnv_1.default.ifDev("eval-cheap-module-source-map",!1)},c),{output:Object.assign({path:o,publicPath:r,pathinfo:!1,filename:path_1.default.join(s,`[name]${appEnv_1.default.prod&&d?".[contenthash:8]":""}.js`),chunkFilename:path_1.default.join(s,`[name]${appEnv_1.default.prod&&f?".[contenthash:8]":""}${null!=a?a:""}.js`)},c.output),optimization:Object.assign(Object.assign({},c.optimization),appEnv_1.default.ifProd((()=>{var e,t;return{minimizer:[new((0,nodeRequire_1.default)("terser-webpack-plugin"))(Object.assign(Object.assign({extractComments:!1},p),{terserOptions:Object.assign(Object.assign({},null==p?void 0:p.terserOptions),{output:Object.assign({comments:!1},null===(e=null==p?void 0:p.terserOptions)||void 0===e?void 0:e.output)})})),...(null===(t=c.optimization)||void 0===t?void 0:t.minimizer)||[]]}}),void 0)),plugins:[new webpack_1.default.DefinePlugin(Object.assign(Object.assign({},appEnv_1.default.envStringify()),buildConfig_1.default.envStringify())),...l&&l.forkedChecks&&l.configFile?[(0,loaders_1.getTsCheckerPlugin)(Object.assign(Object.assign({loaderType:null!==(t=l.loader)&&void 0!==t?t:loaders_1.TsLoaderType.Default},l.checkerOptions),{typescript:Object.assign({configFile:l.configFile},null===(n=l.checkerOptions)||void 0===n?void 0:n.typescript)}))]:[],new webpack_1.default.IgnorePlugin({contextRegExp:/moment$/,resourceRegExp:/^\.\/locale$/}),...c.plugins||[]],resolve:(()=>{const e=[...l?paths_1.moduleExtensions:paths_1.moduleExtensions.filter((e=>!e.includes("ts"))),...c.resolve&&c.resolve.extensions||[]];return Object.assign(Object.assign({},c.resolve),{extensions:e,modules:["node_modules",paths_1.default.root,...c.resolve&&c.resolve.modules||[]],plugins:[...l?[new((0,nodeRequire_1.default)("tsconfig-paths-webpack-plugin"))({configFile:l.configFile,extensions:e})]:[],...c.resolve&&c.resolve.plugins||[]]})})(),ignoreWarnings:[...l?[/export .* was not found in/]:[],...null!==(i=c.ignoreWarnings)&&void 0!==i?i:[]],module:Object.assign(Object.assign({exprContextCritical:!1,unknownContextCritical:!1},c.module),{rules:c.module&&c.module.rules||[]})})};
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import type { RuleSetUseItem } from 'webpack';
|
|
2
|
+
export interface BaseTsOptions {
|
|
3
|
+
tsconfig: string;
|
|
4
|
+
}
|
|
5
|
+
export declare enum TsLoaderType {
|
|
6
|
+
Default = "ts",
|
|
7
|
+
ATL = "atl",
|
|
8
|
+
Babel = "babel"
|
|
9
|
+
}
|
|
10
|
+
interface GetTsLoaderOptionsBase extends BaseTsOptions {
|
|
11
|
+
loaderType: TsLoaderType;
|
|
12
|
+
}
|
|
13
|
+
interface GetTsDefaultLoaderOptions extends GetTsLoaderOptionsBase {
|
|
14
|
+
loaderType: TsLoaderType.Default;
|
|
15
|
+
forkedChecks?: boolean | undefined;
|
|
16
|
+
useThreadLoader?: boolean | undefined;
|
|
17
|
+
threadLoaderOptions?: Record<string, any> | undefined;
|
|
18
|
+
afterLoaders?: Exclude<RuleSetUseItem, Function>[] | undefined;
|
|
19
|
+
}
|
|
20
|
+
type TsDefaultLoaderOptions = Omit<GetTsDefaultLoaderOptions, 'loaderType'> & Record<string, any>;
|
|
21
|
+
export type GetTsLoaderOptions = (GetTsLoaderOptionsBase | GetTsDefaultLoaderOptions) & Record<string, any>;
|
|
22
|
+
export type GetTsCheckerPluginOptions = {
|
|
23
|
+
loaderType: TsLoaderType;
|
|
24
|
+
} & Record<string, any>;
|
|
25
|
+
export declare function ts({ tsconfig, forkedChecks, useThreadLoader, threadLoaderOptions, afterLoaders, ...rest }: TsDefaultLoaderOptions): (string | {
|
|
26
|
+
ident?: string;
|
|
27
|
+
loader?: string;
|
|
28
|
+
options?: string | {
|
|
29
|
+
[index: string]: any;
|
|
30
|
+
};
|
|
31
|
+
} | {
|
|
32
|
+
loader: string;
|
|
33
|
+
options: {
|
|
34
|
+
workers: number;
|
|
35
|
+
poolTimeout: number | undefined;
|
|
36
|
+
};
|
|
37
|
+
} | {
|
|
38
|
+
loader: string;
|
|
39
|
+
options: {
|
|
40
|
+
compilerOptions: any;
|
|
41
|
+
configFile: string;
|
|
42
|
+
transpileOnly: boolean | undefined;
|
|
43
|
+
happyPackMode: boolean | undefined;
|
|
44
|
+
};
|
|
45
|
+
})[];
|
|
46
|
+
export declare function getTsLoader({ loaderType, ...rest }: GetTsLoaderOptions): (string | {
|
|
47
|
+
ident?: string;
|
|
48
|
+
loader?: string;
|
|
49
|
+
options?: string | {
|
|
50
|
+
[index: string]: any;
|
|
51
|
+
};
|
|
52
|
+
} | {
|
|
53
|
+
loader: string;
|
|
54
|
+
options: {
|
|
55
|
+
workers: number;
|
|
56
|
+
poolTimeout: number | undefined;
|
|
57
|
+
};
|
|
58
|
+
} | {
|
|
59
|
+
loader: string;
|
|
60
|
+
options: {
|
|
61
|
+
compilerOptions: any;
|
|
62
|
+
configFile: string;
|
|
63
|
+
transpileOnly: boolean | undefined;
|
|
64
|
+
happyPackMode: boolean | undefined;
|
|
65
|
+
};
|
|
66
|
+
})[] | {
|
|
67
|
+
loader: string;
|
|
68
|
+
options: {
|
|
69
|
+
configFileName: string;
|
|
70
|
+
useBabel: boolean;
|
|
71
|
+
useCache: boolean;
|
|
72
|
+
};
|
|
73
|
+
} | {
|
|
74
|
+
loader: string;
|
|
75
|
+
options: {
|
|
76
|
+
cacheDirectory: boolean;
|
|
77
|
+
cacheCompression: boolean;
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
/** In order to runs typescript type checker on a separate process. */
|
|
81
|
+
export declare function atlCheckerPlugin(): any;
|
|
82
|
+
/** In order to runs typescript type checker on a separate process. */
|
|
83
|
+
export declare function tsCheckerPlugin(options?: Record<string, any>): any;
|
|
84
|
+
export declare function atl({ tsconfig, ...rest }: BaseTsOptions & Record<string, any>): {
|
|
85
|
+
loader: string;
|
|
86
|
+
options: {
|
|
87
|
+
configFileName: string;
|
|
88
|
+
useBabel: boolean;
|
|
89
|
+
useCache: boolean;
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
export declare function getTsCheckerPlugin({ loaderType, ...rest }: GetTsCheckerPluginOptions): any;
|
|
93
|
+
export declare function tsRHL({ afterLoaders, ...rest }: TsDefaultLoaderOptions): (string | {
|
|
94
|
+
ident?: string;
|
|
95
|
+
loader?: string;
|
|
96
|
+
options?: string | {
|
|
97
|
+
[index: string]: any;
|
|
98
|
+
};
|
|
99
|
+
} | {
|
|
100
|
+
loader: string;
|
|
101
|
+
options: {
|
|
102
|
+
workers: number;
|
|
103
|
+
poolTimeout: number | undefined;
|
|
104
|
+
};
|
|
105
|
+
} | {
|
|
106
|
+
loader: string;
|
|
107
|
+
options: {
|
|
108
|
+
compilerOptions: any;
|
|
109
|
+
configFile: string;
|
|
110
|
+
transpileOnly: boolean | undefined;
|
|
111
|
+
happyPackMode: boolean | undefined;
|
|
112
|
+
};
|
|
113
|
+
})[];
|
|
114
|
+
export declare function atsRHL({ tsconfig, ...rest }: BaseTsOptions & Record<string, any>): {
|
|
115
|
+
loader: string;
|
|
116
|
+
}[];
|
|
117
|
+
export declare function babelLoader(options?: Record<PropertyKey, any> | undefined): {
|
|
118
|
+
loader: string;
|
|
119
|
+
options: {
|
|
120
|
+
cacheDirectory: boolean;
|
|
121
|
+
cacheCompression: boolean;
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
export declare const cssExtractLoader = "extract-css-chunks-webpack-plugin/dist/loader";
|
|
125
|
+
/**
|
|
126
|
+
* Problem of duplication css classes when use composes with css file from node_modules directory.
|
|
127
|
+
* 1. It can occur when use different loaders for source and composing files.
|
|
128
|
+
* Solution: use the same loaders for source and composing files.
|
|
129
|
+
*/
|
|
130
|
+
export declare function css({ ssr, pattern, prodPattern, postcss, extractor, modules, styleLoaderOptions, postcssLoaderOptions, ...cssLoaderOptions }?: {
|
|
131
|
+
ssr?: boolean | undefined;
|
|
132
|
+
pattern?: string | undefined;
|
|
133
|
+
prodPattern?: string | undefined;
|
|
134
|
+
postcss?: boolean | undefined;
|
|
135
|
+
extractor?: boolean | undefined;
|
|
136
|
+
modules?: Record<string, any> | boolean | undefined;
|
|
137
|
+
styleLoaderOptions?: Record<string, unknown> | undefined;
|
|
138
|
+
postcssLoaderOptions?: Record<string, unknown> | undefined;
|
|
139
|
+
} & Record<string, any>): RuleSetUseItem[];
|
|
140
|
+
export declare function cssNodeModules(options?: Record<string, any>): RuleSetUseItem[];
|
|
141
|
+
export declare function assets({ ssr, ...restOptions }?: Record<string, any>): {
|
|
142
|
+
loader: string;
|
|
143
|
+
options: {
|
|
144
|
+
limit: number;
|
|
145
|
+
fallback: string;
|
|
146
|
+
emitFile: boolean;
|
|
147
|
+
name: string;
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __rest=this&&this.__rest||function(e,t){var s={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(s[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(s[r[o]]=e[r[o]])}return s},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.assets=exports.cssNodeModules=exports.css=exports.cssExtractLoader=exports.babelLoader=exports.atsRHL=exports.tsRHL=exports.getTsCheckerPlugin=exports.atl=exports.tsCheckerPlugin=exports.atlCheckerPlugin=exports.getTsLoader=exports.ts=exports.TsLoaderType=void 0;const appEnv_1=__importDefault(require("../appEnv")),paths_1=__importDefault(require("../paths")),buildConfig_1=__importDefault(require("../buildConfig")),nodeRequire_1=__importDefault(require("./nodeRequire"));var TsLoaderType;function ts(e){var{tsconfig:t,forkedChecks:s,useThreadLoader:r,threadLoaderOptions:o,afterLoaders:a}=e,n=__rest(e,["tsconfig","forkedChecks","useThreadLoader","threadLoaderOptions","afterLoaders"]);return[...r?[{loader:"thread-loader",options:Object.assign({workers:1,poolTimeout:appEnv_1.default.ifDev(1/0,void 0)},o)}]:[],...a||[],{loader:"ts-loader",options:Object.assign(Object.assign({configFile:t,transpileOnly:s,happyPackMode:r},n),{compilerOptions:Object.assign(Object.assign({},appEnv_1.default.ifProd((()=>({sourceMap:!1})),void 0)),n.compilerOptions)})}]}function getTsLoader(e){var{loaderType:t}=e,s=__rest(e,["loaderType"]);return t===TsLoaderType.ATL?atl(s):t===TsLoaderType.Babel?babelLoader():ts(s)}function atlCheckerPlugin(){const{CheckerPlugin:e}=(0,nodeRequire_1.default)("awesome-typescript-loader");return new e}function tsCheckerPlugin(e={}){var t;return new((0,nodeRequire_1.default)("fork-ts-checker-webpack-plugin"))(Object.assign(Object.assign({},e),{typescript:Object.assign(Object.assign({memoryLimit:1024},e.typescript),{diagnosticsOptions:Object.assign({syntactic:!1,semantic:!0,declaration:!1,global:!1},null===(t=e.typescript)||void 0===t?void 0:t.diagnosticsOptions)})}))}function atl(e){var{tsconfig:t}=e,s=__rest(e,["tsconfig"]);return{loader:"awesome-typescript-loader",options:Object.assign({configFileName:t,useBabel:!1,useCache:!0},s)}}function getTsCheckerPlugin(e){var{loaderType:t}=e,s=__rest(e,["loaderType"]);return t===TsLoaderType.ATL?atlCheckerPlugin():tsCheckerPlugin(s)}function tsRHL(e){var{afterLoaders:t}=e,s=__rest(e,["afterLoaders"]);return ts(Object.assign({afterLoaders:[...t||[],...appEnv_1.default.ifDev((()=>[{loader:"babel-loader"}]),[])]},s))}function atsRHL(e){var{tsconfig:t}=e,s=__rest(e,["tsconfig"]);return[...appEnv_1.default.ifDev((()=>[{loader:"babel-loader"}]),[]),atl(Object.assign({tsconfig:t},s))]}function babelLoader(e){return{loader:"babel-loader",options:Object.assign({cacheDirectory:!0,cacheCompression:!1},e)}}function css(e={}){var{ssr:t=!1,pattern:s="[name]__[local]--[hash:5]",prodPattern:r="[hash:5]",postcss:o=!0,extractor:a=!0,modules:n,styleLoaderOptions:i,postcssLoaderOptions:l}=e,p=__rest(e,["ssr","pattern","prodPattern","postcss","extractor","modules","styleLoaderOptions","postcssLoaderOptions"]);return[...t?[]:[appEnv_1.default.dev||!a?{loader:"style-loader",options:i}:exports.cssExtractLoader],{loader:"css-loader",options:Object.assign({modules:null!=n&&"object"!=typeof n?n:Object.assign({mode:"local",localIdentName:appEnv_1.default.ifDev(s,r),localIdentContext:paths_1.default.root,exportOnlyLocals:t},n),importLoaders:o?1:void 0},p)},...o?[{loader:"postcss-loader",options:l}]:[]]}function cssNodeModules(e={}){return css(Object.assign({pattern:"[local]",prodPattern:"[local]",modules:!1},e))}function assets(e={}){var{ssr:t=!1}=e,s=__rest(e,["ssr"]);return{loader:"url-loader",options:Object.assign({limit:1024,fallback:"file-loader",emitFile:!t,name:`${(buildConfig_1.default.client||buildConfig_1.default.default.client).output.assets}/[name].[hash:8].[ext]`},s)}}!function(e){e.Default="ts",e.ATL="atl",e.Babel="babel"}(TsLoaderType||(exports.TsLoaderType=TsLoaderType={})),exports.ts=ts,exports.getTsLoader=getTsLoader,exports.atlCheckerPlugin=atlCheckerPlugin,exports.tsCheckerPlugin=tsCheckerPlugin,exports.atl=atl,exports.getTsCheckerPlugin=getTsCheckerPlugin,exports.tsRHL=tsRHL,exports.atsRHL=atsRHL,exports.babelLoader=babelLoader,exports.cssExtractLoader="extract-css-chunks-webpack-plugin/dist/loader",exports.css=css,exports.cssNodeModules=cssNodeModules,exports.assets=assets;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default="function"==typeof __webpack_require__?__non_webpack_require__:require;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Configuration } from 'webpack';
|
|
2
|
+
import webpackNodeExternals from 'webpack-node-externals';
|
|
3
|
+
import { clientDefaultRules, type ClientConfigOptions } from './client.config';
|
|
4
|
+
export declare const serverDefaultRules: Pick<typeof clientDefaultRules, 'jsRule' | 'tsBaseRule'>;
|
|
5
|
+
export declare const universalDefaultRules: typeof clientDefaultRules;
|
|
6
|
+
export interface ServerConfigOptions extends ClientConfigOptions {
|
|
7
|
+
nodeExternalsOptions?: webpackNodeExternals.Options | undefined;
|
|
8
|
+
isUniversal?: boolean | undefined;
|
|
9
|
+
}
|
|
10
|
+
declare const _default: ({ outputPath, outputPublicPath, outputJsDir, hash, chunkSuffix, typescript, rules: { tsBaseRule, ...rules }, nodeExternalsOptions, isUniversal, ...restOptions }: ServerConfigOptions) => Configuration;
|
|
11
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __rest=this&&this.__rest||function(e,s){var t={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&s.indexOf(a)<0&&(t[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)s.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(t[a[r]]=e[a[r]])}return t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.universalDefaultRules=exports.serverDefaultRules=void 0;const webpack_node_externals_1=__importDefault(require("webpack-node-externals")),appEnv_1=__importDefault(require("../appEnv")),paths_1=__importDefault(require("../paths")),buildConfig_1=__importDefault(require("../buildConfig")),common_config_1=__importDefault(require("./common.config")),client_config_1=require("./client.config"),loaders_1=require("./loaders");exports.serverDefaultRules={jsRule:Object.assign(Object.assign({},client_config_1.clientDefaultRules.jsRule),{include:[paths_1.default.server.sources,paths_1.default.shared.sources].filter((e=>!!e))}),tsBaseRule:Object.assign(Object.assign({},client_config_1.clientDefaultRules.tsBaseRule),{include:[paths_1.default.server.sources,paths_1.default.shared.sources].filter((e=>!!e))})},exports.universalDefaultRules={jsRule:Object.assign(Object.assign({},client_config_1.clientDefaultRules.jsRule),{include:[...client_config_1.clientDefaultRules.jsRule.include,paths_1.default.server.sources]}),tsBaseRule:Object.assign(Object.assign({},exports.serverDefaultRules.tsBaseRule),{include:[...client_config_1.clientDefaultRules.jsRule.include,paths_1.default.server.sources]}),cssRule:Object.assign(Object.assign({},client_config_1.clientDefaultRules.cssRule),{use:(0,loaders_1.css)({ssr:!0})}),cssNodeModulesRule:Object.assign(Object.assign({},client_config_1.clientDefaultRules.cssNodeModulesRule),{use:(0,loaders_1.cssNodeModules)({ssr:!0})}),svgRule:Object.assign(Object.assign({},client_config_1.clientDefaultRules.svgRule),{use:(0,loaders_1.assets)({limit:void 0,ssr:!0})}),fontRule:Object.assign(Object.assign({},client_config_1.clientDefaultRules.fontRule),{use:(0,loaders_1.assets)({ssr:!0})}),assetsRule:Object.assign(Object.assign({},client_config_1.clientDefaultRules.assetsRule),{use:(0,loaders_1.assets)({ssr:!0})})};const serverBuildConfig=buildConfig_1.default.server||buildConfig_1.default.default.server;exports.default=e=>{var s,{outputPath:t=paths_1.default.server.output.path,outputPublicPath:a=serverBuildConfig.output.publicPath,outputJsDir:r="",hash:l=!1,chunkSuffix:i=".chunk",typescript:u}=e,o=e.rules,n=void 0===o?{}:o,{tsBaseRule:c}=n,d=__rest(n,["tsBaseRule"]),{nodeExternalsOptions:p,isUniversal:f}=e,_=__rest(e,["outputPath","outputPublicPath","outputJsDir","hash","chunkSuffix","typescript","rules","nodeExternalsOptions","isUniversal"]);const g=Object.assign({configFile:paths_1.default.server.tsconfig,loader:loaders_1.TsLoaderType.Default,loaderOptions:{},forkedChecks:!1,checkerOptions:{},threadLoader:!1,threadLoaderOptions:{}},"object"==typeof u?u:void 0),O=f?exports.universalDefaultRules:exports.serverDefaultRules,{tsBaseRule:b}=O,h=__rest(O,["tsBaseRule"]),j=Object.assign({tsRule:Object.assign(Object.assign(Object.assign({},b),c),{use:(0,loaders_1.getTsLoader)(Object.assign(Object.assign({tsconfig:g.configFile,forkedChecks:g.forkedChecks,useThreadLoader:g.threadLoader,threadLoaderOptions:g.threadLoaderOptions},g.loaderOptions),{loaderType:g.loader}))})},h),v=(0,client_config_1.prepareRules)(d,j),R=Object.assign(Object.assign({},j),v);return(0,common_config_1.default)(Object.assign(Object.assign({outputPath:t,outputPublicPath:a,outputJsDir:r,hash:l,chunkSuffix:i,typescript:u?Object.assign(Object.assign({},g),{checkerOptions:Object.assign(Object.assign({},g.checkerOptions),{typescript:Object.assign(Object.assign({},g.checkerOptions.typescript),{diagnosticsOptions:Object.assign({syntactic:g.threadLoader},null===(s=g.checkerOptions.typescript)||void 0===s?void 0:s.diagnosticsOptions)})})}):void 0,name:serverBuildConfig.root,target:"node",context:f?paths_1.default.root:paths_1.default.server.sources},_),{stats:!1===_.stats||_.stats&&"object"!=typeof _.stats?_.stats:Object.assign({all:!1,errors:!0,errorDetails:!0,warnings:!0,version:!0,timings:!0,builtAt:!0,entrypoints:!0},_.stats),externals:[(0,webpack_node_externals_1.default)(p),..._.externals&&(Array.isArray(_.externals)?_.externals:[_.externals])||[]],resolve:Object.assign(Object.assign({},_.resolve),{modules:[f?paths_1.default.client.sources:paths_1.default.server.sources,..._.resolve&&_.resolve.modules||[]],alias:Object.assign(Object.assign(Object.assign({},f?{server:paths_1.default.server.sources,client:paths_1.default.client.sources}:void 0),paths_1.default.shared.sources?{shared:paths_1.default.shared.sources}:void 0),_.resolve&&_.resolve.alias||void 0)}),module:Object.assign(Object.assign({},_.module),{rules:[...Object.getOwnPropertyNames(R).map((e=>R[e]||{})),..._.module&&_.module.rules||[]]}),watchOptions:Object.assign({ignored:[paths_1.default.nodeModules.root,...f&&!appEnv_1.default.ssr?[paths_1.default.client.root]:[]]},_.watchOptions)}))};
|
package/webpack/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|