casper-context 0.1.0
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/README.md +253 -0
- package/dist/index.js +9 -0
- package/dist/lifecycle/post.js +239 -0
- package/dist/lifecycle/pre.js +113 -0
- package/dist/plugin.js +57 -0
- package/dist/transforms/autoContextTransform.js +1 -0
- package/dist/transforms/contextTransform.js +1 -0
- package/dist/transforms/stateTransform.js +1 -0
- package/dist/types/plugin.d.js +1 -0
- package/dist/utils/astHelpers.js +644 -0
- package/dist/utils/constants.js +111 -0
- package/dist/utils/names.js +1 -0
- package/dist/utils/scope.js +1 -0
- package/dist/utils/utilityHelpers.js +606 -0
- package/dist/visitors/AssignmentExpression.js +104 -0
- package/dist/visitors/CallExpression.js +1 -0
- package/dist/visitors/FunctionDeclaration.js +116 -0
- package/dist/visitors/Identifier.js +123 -0
- package/dist/visitors/JSXElement.js +1 -0
- package/dist/visitors/Program.js +278 -0
- package/dist/visitors/ReturnStatement.js +81 -0
- package/dist/visitors/VariableDeclaration.js +209 -0
- package/package.json +60 -0
- package/src/index.js +2 -0
- package/src/lifecycle/post.js +237 -0
- package/src/lifecycle/pre.js +103 -0
- package/src/plugin.js +51 -0
- package/src/transforms/autoContextTransform.js +0 -0
- package/src/transforms/contextTransform.js +0 -0
- package/src/transforms/stateTransform.js +0 -0
- package/src/types/plugin.d.ts +0 -0
- package/src/utils/astHelpers.js +767 -0
- package/src/utils/constants.js +102 -0
- package/src/utils/names.js +0 -0
- package/src/utils/scope.js +0 -0
- package/src/utils/utilityHelpers.js +636 -0
- package/src/visitors/AssignmentExpression.js +100 -0
- package/src/visitors/CallExpression.js +0 -0
- package/src/visitors/FunctionDeclaration.js +114 -0
- package/src/visitors/Identifier.js +142 -0
- package/src/visitors/JSXElement.js +0 -0
- package/src/visitors/Program.js +280 -0
- package/src/visitors/ReturnStatement.js +75 -0
- package/src/visitors/VariableDeclaration.js +216 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Centralized constants for the Casper Context Babel Plugin.
|
|
3
|
+
* This module contains all configuration strings, AST node identifiers,
|
|
4
|
+
* and environment-specific constants used for state management and code injection.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/** * Plugin Identity & Configuration */
|
|
8
|
+
export const PLUGIN_NAME = 'casper-context';
|
|
9
|
+
export const CASPER_CONFIG_FILE = '.casperctxrc.json';
|
|
10
|
+
export const CASPER_DEBUG_LOG_FILE_NAME = '.casperctx.debug.log';
|
|
11
|
+
export const USE_STRICT = 'use strict';
|
|
12
|
+
export const CASPER_LOG_TYPE_ERROR = 'error';
|
|
13
|
+
|
|
14
|
+
/** * Context Logic & Namespacing
|
|
15
|
+
* @description Variables used to identify and scope the custom context transformation.
|
|
16
|
+
*/
|
|
17
|
+
export const GLOBAL_PREFIX = '_$_';
|
|
18
|
+
export const CONTEXT_NAMESPACE = '__CASPER_CONTEXT__';
|
|
19
|
+
export const CONTEXT_FOLDER_NAME = 'src/scopeContext';
|
|
20
|
+
export const CONTEXT_FILE_NAME = 'gblContext.js';
|
|
21
|
+
export const GBL_CONTEXT_JS = 'gblContext.js';
|
|
22
|
+
export const _CCTX_CMP_NAME_PREFIX = '_$_ctx_';
|
|
23
|
+
export const _CCTX_ = 'CTX_'; // Internal prefix for generated context variables
|
|
24
|
+
|
|
25
|
+
/** * React & Framework Identifiers
|
|
26
|
+
* @description Standard React hook names and internal library aliases for injection.
|
|
27
|
+
*/
|
|
28
|
+
export const REACT_IMPORT_CORE_NAME = 'react';
|
|
29
|
+
export const REACT_IMPORT_USE_STATE_HOOKS_NAME = 'useState';
|
|
30
|
+
export const _CCTX_REACT = 'react';
|
|
31
|
+
export const _CCTX_USE_CONTEXT = 'useContext';
|
|
32
|
+
export const _CCTX_CREATE_ELEMENT = 'createElement';
|
|
33
|
+
export const _CCTX_PROVIDER = 'Provider';
|
|
34
|
+
export const _CCTX_VALUE = 'value';
|
|
35
|
+
|
|
36
|
+
/** * AST Node Type Mapping
|
|
37
|
+
* @description Strings matching Babel's internal node types for safe AST traversal.
|
|
38
|
+
*/
|
|
39
|
+
export const IDENTIFIER = 'Identifier';
|
|
40
|
+
export const NUMERIC_LITERAL = 'NumericLiteral';
|
|
41
|
+
export const STRING_LITERAL = 'StringLiteral';
|
|
42
|
+
export const BOOLEAN_LITERAL = 'BooleanLiteral';
|
|
43
|
+
export const ARRAY_EXPRESSION = 'ArrayExpression';
|
|
44
|
+
export const OBJECT_EXPRESSION = 'ObjectExpression';
|
|
45
|
+
export const VARIABLE_DECLARATOR = 'VariableDeclarator';
|
|
46
|
+
export const ASSIGNMENT_EXPRESSION = 'AssignmentExpression';
|
|
47
|
+
export const UPDATE_EXPRESSION = 'UpdateExpression';
|
|
48
|
+
|
|
49
|
+
/** * AST Node Property Keys
|
|
50
|
+
* @description Specific keys within Babel nodes used for targeting during transformation.
|
|
51
|
+
*/
|
|
52
|
+
export const _CCTX_ID = 'id';
|
|
53
|
+
export const _CCTX_LEFT = 'left'; // Used in AssignmentExpressions
|
|
54
|
+
export const _CCTX_ARGUMENT = 'argument'; // Used in UpdateExpressions
|
|
55
|
+
export const _CCTX_KEY = 'key';
|
|
56
|
+
export const _CCTX_BODY = 'body';
|
|
57
|
+
|
|
58
|
+
/** * Internal Transformation Aliases
|
|
59
|
+
* @description Identifiers and keywords used for generating new code structures.
|
|
60
|
+
*/
|
|
61
|
+
export const _CCTX_VAR = 'var';
|
|
62
|
+
export const _CCTX_CONST = 'const';
|
|
63
|
+
export const _CCTX_REQUIRE = 'require';
|
|
64
|
+
export const _CCTX_UNDUS_CORE_REACT = '_react';
|
|
65
|
+
export const _CCTX_UNDUS_CORE_GBL_CONTEXT = '_gblContext';
|
|
66
|
+
export const PREV_STATE = 'prevState'; // For functional state updates: (prevState) => ...
|
|
67
|
+
export const _CCTX_SET = 'set'; // Prefix for state setter functions
|
|
68
|
+
|
|
69
|
+
/** * Component & Scope Classification */
|
|
70
|
+
export const COMPONENT = 'component';
|
|
71
|
+
export const ANONYMOUS_FUNCTION = 'anonymous_function';
|
|
72
|
+
export const ANONYMOUS_CLASS = 'anonymous_class';
|
|
73
|
+
|
|
74
|
+
/** * File System & Build Tooling
|
|
75
|
+
* @description Constants for file manipulation, hashing, and distribution paths.
|
|
76
|
+
*/
|
|
77
|
+
export const UNICODE_UTF8 = 'utf8';
|
|
78
|
+
export const FILE_HASH_MD5 = 'md5';
|
|
79
|
+
export const DIGEST_HEX = 'hex';
|
|
80
|
+
export const NODE_MODULES = 'node_modules';
|
|
81
|
+
export const FOLDER_DIST = '/dist/';
|
|
82
|
+
export const FOLDER_BUILD = '/build/';
|
|
83
|
+
export const ESLINT_RC_FILE = '.eslintrc.js';
|
|
84
|
+
export const CASPER_ESLINT_GLOBAL_JS = 'casper-eslint.global.js';
|
|
85
|
+
export const CASPER_STRING_TYPE = 'string';
|
|
86
|
+
export const CASPER_READ_ONLY_TYPE = 'readonly';
|
|
87
|
+
|
|
88
|
+
/** * Sentinel, Fallback & Literal Values */
|
|
89
|
+
export const _CCTX_EMPTY = '';
|
|
90
|
+
export const _CCTX_UNDEFINED = 'undefined';
|
|
91
|
+
export const _CCTX_UNKNOW = 'Unknown';
|
|
92
|
+
export const NO_FILE = 'noFile';
|
|
93
|
+
export const NON_LITERAL = 'NON_LITERAL';
|
|
94
|
+
|
|
95
|
+
export const COLORS = {
|
|
96
|
+
reset: "\x1b[0m",
|
|
97
|
+
info: "\x1b[36m", // Cyan
|
|
98
|
+
warn: "\x1b[33m", // Yellow
|
|
99
|
+
error: "\x1b[31m", // Red
|
|
100
|
+
debug: "\x1b[35m", // Magenta
|
|
101
|
+
trace: "\x1b[90m" // Gray
|
|
102
|
+
};
|
|
File without changes
|
|
File without changes
|