mirror of
https://github.com/sasjs/core.git
synced 2026-01-10 02:40:05 +00:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1af52a6683 | ||
|
|
fc0c96dd94 | ||
|
|
b9c4882553 | ||
|
|
011b2b185c | ||
|
|
dbc23550ac | ||
|
|
8910840ccc | ||
|
|
4ef571032d | ||
|
|
e01cd8cd16 | ||
|
|
00628ec78a | ||
|
|
f4e6a487f3 |
23
.sasjslint
23
.sasjslint
@@ -1,13 +1,14 @@
|
|||||||
{
|
{
|
||||||
"noTrailingSpaces": true,
|
"noTrailingSpaces": true,
|
||||||
"noEncodedPasswords": true,
|
"noEncodedPasswords": true,
|
||||||
"hasDoxygenHeader": true,
|
"hasDoxygenHeader": true,
|
||||||
"hasMacroNameInMend": true,
|
"hasMacroNameInMend": true,
|
||||||
"hasMacroParentheses": true,
|
"hasMacroParentheses": true,
|
||||||
"noNestedMacros": false,
|
"noGremlins": true,
|
||||||
"noSpacesInFileNames": true,
|
"noNestedMacros": false,
|
||||||
"maxLineLength": 300,
|
"noSpacesInFileNames": true,
|
||||||
"lowerCaseFileNames": true,
|
"maxLineLength": 300,
|
||||||
"noTabIndentation": true,
|
"lowerCaseFileNames": true,
|
||||||
"indentationMultiple": 2
|
"noTabs": true,
|
||||||
|
"indentationMultiple": 2
|
||||||
}
|
}
|
||||||
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
@@ -6,5 +6,7 @@
|
|||||||
"editor.rulers": [
|
"editor.rulers": [
|
||||||
80
|
80
|
||||||
],
|
],
|
||||||
"files.trimTrailingWhitespace": true
|
"files.trimTrailingWhitespace": true,
|
||||||
|
"sasjs-for-vscode.target": "docsonly",
|
||||||
|
"sasjs-for-vscode.isLocal": true
|
||||||
}
|
}
|
||||||
@@ -2,8 +2,6 @@
|
|||||||
[![npm package][npm-image]][npm-url]
|
[![npm package][npm-image]][npm-url]
|
||||||
[![Github Workflow][githubworkflow-image]][githubworkflow-url]
|
[![Github Workflow][githubworkflow-image]][githubworkflow-url]
|
||||||

|

|
||||||

|
|
||||||
[](/LICENSE)
|
|
||||||

|

|
||||||
[](https://github.com/sasjs/core/issues?q=is%3Aissue+is%3Aclosed)
|
[](https://github.com/sasjs/core/issues?q=is%3Aissue+is%3Aclosed)
|
||||||
[](https://github.com/sasjs/core/issues)
|
[](https://github.com/sasjs/core/issues)
|
||||||
|
|||||||
24
all.sas
24
all.sas
@@ -30,7 +30,7 @@ options noquotelenmax;
|
|||||||
**/
|
**/
|
||||||
|
|
||||||
%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)
|
%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)
|
||||||
)/*/STORE SOURCE*/;
|
)/des='ungraceful abort' /*STORE SOURCE*/;
|
||||||
|
|
||||||
%if not(%eval(%unquote(&iftrue))) %then %return;
|
%if not(%eval(%unquote(&iftrue))) %then %return;
|
||||||
|
|
||||||
@@ -42,7 +42,8 @@ options noquotelenmax;
|
|||||||
|
|
||||||
%mend mf_abort;
|
%mend mf_abort;
|
||||||
|
|
||||||
/** @endcond *//**
|
/** @endcond */
|
||||||
|
/**
|
||||||
@file
|
@file
|
||||||
@brief de-duplicates a macro string
|
@brief de-duplicates a macro string
|
||||||
@details Removes all duplicates from a string of words. A delimeter can be
|
@details Removes all duplicates from a string of words. A delimeter can be
|
||||||
@@ -247,7 +248,8 @@ options noquotelenmax;
|
|||||||
0
|
0
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
%mend mf_existfileref;/**
|
%mend mf_existfileref;
|
||||||
|
/**
|
||||||
@file
|
@file
|
||||||
@brief Checks if a function exists
|
@brief Checks if a function exists
|
||||||
@details Returns 1 if the function exists, else 0. Note that this function
|
@details Returns 1 if the function exists, else 0. Note that this function
|
||||||
@@ -16439,7 +16441,7 @@ data _null_;
|
|||||||
put ' put " ""&wt"" : {"; ';
|
put ' put " ""&wt"" : {"; ';
|
||||||
put ' put ''"nlobs":'' nlobs; ';
|
put ' put ''"nlobs":'' nlobs; ';
|
||||||
put ' put '',"nvars":'' nvars; ';
|
put ' put '',"nvars":'' nvars; ';
|
||||||
put ' %mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10 ';
|
put ' %mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y ';
|
||||||
put ' ,maxobs=&workobs ';
|
put ' ,maxobs=&workobs ';
|
||||||
put ' ) ';
|
put ' ) ';
|
||||||
put ' data _null_; file _sjsref mod encoding=''utf-8''; ';
|
put ' data _null_; file _sjsref mod encoding=''utf-8''; ';
|
||||||
@@ -20121,7 +20123,7 @@ run;
|
|||||||
put " ""&wt"" : {";
|
put " ""&wt"" : {";
|
||||||
put '"nlobs":' nlobs;
|
put '"nlobs":' nlobs;
|
||||||
put ',"nvars":' nvars;
|
put ',"nvars":' nvars;
|
||||||
%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10
|
%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y
|
||||||
,maxobs=&workobs
|
,maxobs=&workobs
|
||||||
)
|
)
|
||||||
data _null_; file _sjsref mod encoding='utf-8';
|
data _null_; file _sjsref mod encoding='utf-8';
|
||||||
@@ -21525,7 +21527,7 @@ data _null_;
|
|||||||
put ' put " ""&wt"" : {"; ';
|
put ' put " ""&wt"" : {"; ';
|
||||||
put ' put ''"nlobs":'' nlobs; ';
|
put ' put ''"nlobs":'' nlobs; ';
|
||||||
put ' put '',"nvars":'' nvars; ';
|
put ' put '',"nvars":'' nvars; ';
|
||||||
put ' %mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y,maxobs=10 ';
|
put ' %mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y ';
|
||||||
put ' ,maxobs=&workobs ';
|
put ' ,maxobs=&workobs ';
|
||||||
put ' ) ';
|
put ' ) ';
|
||||||
put ' data _null_; file &fref mod encoding=''utf-8'' termstr=lf; ';
|
put ' data _null_; file &fref mod encoding=''utf-8'' termstr=lf; ';
|
||||||
@@ -21792,7 +21794,7 @@ filename &headref clear;
|
|||||||
@param [in] uid= (0) Provide the userid on which to filter
|
@param [in] uid= (0) Provide the userid on which to filter
|
||||||
@param [out] outds= (work.ms_getgroups) This output dataset will contain the
|
@param [out] outds= (work.ms_getgroups) This output dataset will contain the
|
||||||
list of groups. Format:
|
list of groups. Format:
|
||||||
|NAME:$32.|DESCRIPTION:$64.|GROUPID:best.|
|
|NAME:$32.|DESCRIPTION:$256.|GROUPID:best.|
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
|`SomeGroup `|`A group `|`1`|
|
|`SomeGroup `|`A group `|`1`|
|
||||||
|`Another Group`|`this is a different group`|`2`|
|
|`Another Group`|`this is a different group`|`2`|
|
||||||
@@ -21828,7 +21830,7 @@ filename &headref clear;
|
|||||||
%if %sysget(MODE)=desktop %then %do;
|
%if %sysget(MODE)=desktop %then %do;
|
||||||
/* groups api does not exist in desktop mode */
|
/* groups api does not exist in desktop mode */
|
||||||
data &outds;
|
data &outds;
|
||||||
length NAME $32 DESCRIPTION $64. GROUPID 8;
|
length NAME $32 DESCRIPTION $256. GROUPID 8;
|
||||||
name="&sysuserid";
|
name="&sysuserid";
|
||||||
description="&sysuserid (group - desktop mode)";
|
description="&sysuserid (group - desktop mode)";
|
||||||
groupid=1;
|
groupid=1;
|
||||||
@@ -21884,7 +21886,7 @@ libname &libref JSON fileref=&fref1;
|
|||||||
|
|
||||||
%if "&user"="0" and "&uid"="0" %then %do;
|
%if "&user"="0" and "&uid"="0" %then %do;
|
||||||
data &outds;
|
data &outds;
|
||||||
length NAME $32 DESCRIPTION $64. GROUPID 8;
|
length NAME $32 DESCRIPTION $256. GROUPID 8;
|
||||||
if _n_=1 then call missing(of _all_);
|
if _n_=1 then call missing(of _all_);
|
||||||
set &libref..root;
|
set &libref..root;
|
||||||
drop ordinal_root;
|
drop ordinal_root;
|
||||||
@@ -21892,7 +21894,7 @@ libname &libref JSON fileref=&fref1;
|
|||||||
%end;
|
%end;
|
||||||
%else %do;
|
%else %do;
|
||||||
data &outds;
|
data &outds;
|
||||||
length NAME $32 DESCRIPTION $64. GROUPID 8;
|
length NAME $32 DESCRIPTION $256. GROUPID 8;
|
||||||
if _n_=1 then call missing(of _all_);
|
if _n_=1 then call missing(of _all_);
|
||||||
set &libref..groups;
|
set &libref..groups;
|
||||||
drop ordinal_:;
|
drop ordinal_:;
|
||||||
@@ -22558,7 +22560,7 @@ run;
|
|||||||
put " ""&wt"" : {";
|
put " ""&wt"" : {";
|
||||||
put '"nlobs":' nlobs;
|
put '"nlobs":' nlobs;
|
||||||
put ',"nvars":' nvars;
|
put ',"nvars":' nvars;
|
||||||
%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y,maxobs=10
|
%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y
|
||||||
,maxobs=&workobs
|
,maxobs=&workobs
|
||||||
)
|
)
|
||||||
data _null_; file &fref mod encoding='utf-8' termstr=lf;
|
data _null_; file &fref mod encoding='utf-8' termstr=lf;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
**/
|
**/
|
||||||
|
|
||||||
%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)
|
%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)
|
||||||
)/*/STORE SOURCE*/;
|
)/des='ungraceful abort' /*STORE SOURCE*/;
|
||||||
|
|
||||||
%if not(%eval(%unquote(&iftrue))) %then %return;
|
%if not(%eval(%unquote(&iftrue))) %then %return;
|
||||||
|
|
||||||
|
|||||||
@@ -546,7 +546,7 @@ data _null_;
|
|||||||
put ' put " ""&wt"" : {"; ';
|
put ' put " ""&wt"" : {"; ';
|
||||||
put ' put ''"nlobs":'' nlobs; ';
|
put ' put ''"nlobs":'' nlobs; ';
|
||||||
put ' put '',"nvars":'' nvars; ';
|
put ' put '',"nvars":'' nvars; ';
|
||||||
put ' %mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10 ';
|
put ' %mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y ';
|
||||||
put ' ,maxobs=&workobs ';
|
put ' ,maxobs=&workobs ';
|
||||||
put ' ) ';
|
put ' ) ';
|
||||||
put ' data _null_; file _sjsref mod encoding=''utf-8''; ';
|
put ' data _null_; file _sjsref mod encoding=''utf-8''; ';
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
put " ""&wt"" : {";
|
put " ""&wt"" : {";
|
||||||
put '"nlobs":' nlobs;
|
put '"nlobs":' nlobs;
|
||||||
put ',"nvars":' nvars;
|
put ',"nvars":' nvars;
|
||||||
%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10
|
%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y
|
||||||
,maxobs=&workobs
|
,maxobs=&workobs
|
||||||
)
|
)
|
||||||
data _null_; file _sjsref mod encoding='utf-8';
|
data _null_; file _sjsref mod encoding='utf-8';
|
||||||
|
|||||||
668
package-lock.json
generated
668
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -33,6 +33,6 @@
|
|||||||
"prepare": "git rev-parse --git-dir && git config core.hooksPath ./.git-hooks || true"
|
"prepare": "git rev-parse --git-dir && git config core.hooksPath ./.git-hooks || true"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@sasjs/cli": "3.13.0"
|
"@sasjs/cli": "3.24.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,7 +85,7 @@
|
|||||||
{
|
{
|
||||||
"name": "docsonly",
|
"name": "docsonly",
|
||||||
"serverType": "SASJS",
|
"serverType": "SASJS",
|
||||||
"appLoc": "dummy",
|
"appLoc": "/dummy",
|
||||||
"macroFolders": [
|
"macroFolders": [
|
||||||
"meta",
|
"meta",
|
||||||
"metax",
|
"metax",
|
||||||
|
|||||||
@@ -539,7 +539,7 @@ data _null_;
|
|||||||
put ' put " ""&wt"" : {"; ';
|
put ' put " ""&wt"" : {"; ';
|
||||||
put ' put ''"nlobs":'' nlobs; ';
|
put ' put ''"nlobs":'' nlobs; ';
|
||||||
put ' put '',"nvars":'' nvars; ';
|
put ' put '',"nvars":'' nvars; ';
|
||||||
put ' %mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y,maxobs=10 ';
|
put ' %mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y ';
|
||||||
put ' ,maxobs=&workobs ';
|
put ' ,maxobs=&workobs ';
|
||||||
put ' ) ';
|
put ' ) ';
|
||||||
put ' data _null_; file &fref mod encoding=''utf-8'' termstr=lf; ';
|
put ' data _null_; file &fref mod encoding=''utf-8'' termstr=lf; ';
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
@param [in] uid= (0) Provide the userid on which to filter
|
@param [in] uid= (0) Provide the userid on which to filter
|
||||||
@param [out] outds= (work.ms_getgroups) This output dataset will contain the
|
@param [out] outds= (work.ms_getgroups) This output dataset will contain the
|
||||||
list of groups. Format:
|
list of groups. Format:
|
||||||
|NAME:$32.|DESCRIPTION:$64.|GROUPID:best.|
|
|NAME:$32.|DESCRIPTION:$256.|GROUPID:best.|
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
|`SomeGroup `|`A group `|`1`|
|
|`SomeGroup `|`A group `|`1`|
|
||||||
|`Another Group`|`this is a different group`|`2`|
|
|`Another Group`|`this is a different group`|`2`|
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
%if %sysget(MODE)=desktop %then %do;
|
%if %sysget(MODE)=desktop %then %do;
|
||||||
/* groups api does not exist in desktop mode */
|
/* groups api does not exist in desktop mode */
|
||||||
data &outds;
|
data &outds;
|
||||||
length NAME $32 DESCRIPTION $64. GROUPID 8;
|
length NAME $32 DESCRIPTION $256. GROUPID 8;
|
||||||
name="&sysuserid";
|
name="&sysuserid";
|
||||||
description="&sysuserid (group - desktop mode)";
|
description="&sysuserid (group - desktop mode)";
|
||||||
groupid=1;
|
groupid=1;
|
||||||
@@ -114,7 +114,7 @@ libname &libref JSON fileref=&fref1;
|
|||||||
|
|
||||||
%if "&user"="0" and "&uid"="0" %then %do;
|
%if "&user"="0" and "&uid"="0" %then %do;
|
||||||
data &outds;
|
data &outds;
|
||||||
length NAME $32 DESCRIPTION $64. GROUPID 8;
|
length NAME $32 DESCRIPTION $256. GROUPID 8;
|
||||||
if _n_=1 then call missing(of _all_);
|
if _n_=1 then call missing(of _all_);
|
||||||
set &libref..root;
|
set &libref..root;
|
||||||
drop ordinal_root;
|
drop ordinal_root;
|
||||||
@@ -122,7 +122,7 @@ libname &libref JSON fileref=&fref1;
|
|||||||
%end;
|
%end;
|
||||||
%else %do;
|
%else %do;
|
||||||
data &outds;
|
data &outds;
|
||||||
length NAME $32 DESCRIPTION $64. GROUPID 8;
|
length NAME $32 DESCRIPTION $256. GROUPID 8;
|
||||||
if _n_=1 then call missing(of _all_);
|
if _n_=1 then call missing(of _all_);
|
||||||
set &libref..groups;
|
set &libref..groups;
|
||||||
drop ordinal_:;
|
drop ordinal_:;
|
||||||
|
|||||||
@@ -141,7 +141,7 @@
|
|||||||
put " ""&wt"" : {";
|
put " ""&wt"" : {";
|
||||||
put '"nlobs":' nlobs;
|
put '"nlobs":' nlobs;
|
||||||
put ',"nvars":' nvars;
|
put ',"nvars":' nvars;
|
||||||
%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y,maxobs=10
|
%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y
|
||||||
,maxobs=&workobs
|
,maxobs=&workobs
|
||||||
)
|
)
|
||||||
data _null_; file &fref mod encoding='utf-8' termstr=lf;
|
data _null_; file &fref mod encoding='utf-8' termstr=lf;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
@brief Testing mv_jobflow macro
|
@brief Testing mv_jobflow macro
|
||||||
@details One of the remote jobs aborts with syscc>0 - test to
|
@details One of the remote jobs aborts with syscc>0 - test to
|
||||||
make sure this comes back to the calling session
|
make sure this comes back to the calling session
|
||||||
|
|
||||||
<h4> SAS Macros </h4>
|
<h4> SAS Macros </h4>
|
||||||
@li mp_assert.sas
|
@li mp_assert.sas
|
||||||
@li mv_createjob.sas
|
@li mv_createjob.sas
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
@brief Testing mv_jobflow macro
|
@brief Testing mv_jobflow macro
|
||||||
@details All jobs complete successfully with syscc = 0 - test to
|
@details All jobs complete successfully with syscc = 0 - test to
|
||||||
make sure this comes back to the calling session
|
make sure this comes back to the calling session
|
||||||
|
|
||||||
<h4> SAS Macros </h4>
|
<h4> SAS Macros </h4>
|
||||||
@li mp_assert.sas
|
@li mp_assert.sas
|
||||||
@li mv_createjob.sas
|
@li mv_createjob.sas
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
@brief Testing mv_registerclient.sas macro
|
@brief Testing mv_registerclient.sas macro
|
||||||
@details Tests for successful registration. For this to work, the test
|
@details Tests for successful registration. For this to work, the test
|
||||||
account must be an admin.
|
account must be an admin.
|
||||||
|
|
||||||
<h4> SAS Macros </h4>
|
<h4> SAS Macros </h4>
|
||||||
@li mf_getuniquename.sas
|
@li mf_getuniquename.sas
|
||||||
@li mp_assertcolvals.sas
|
@li mp_assertcolvals.sas
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
/**
|
/**
|
||||||
|
|
||||||
@file
|
@file
|
||||||
@brief Testing mv_registerclient.sas macro
|
@brief Testing mv_registerclient.sas macro
|
||||||
@details Tests for unsuccessful registration. To do this, overrides are
|
@details Tests for unsuccessful registration. To do this, overrides are
|
||||||
applied for the mf_loc.sas and mp_abort.sas macros.
|
applied for the mf_loc.sas and mp_abort.sas macros.
|
||||||
|
|
||||||
<h4> SAS Macros </h4>
|
<h4> SAS Macros </h4>
|
||||||
@li mp_assert.sas
|
@li mp_assert.sas
|
||||||
@li mv_registerclient.sas
|
@li mv_registerclient.sas
|
||||||
|
|||||||
Reference in New Issue
Block a user