Skip to content

Commit fb5304e

Browse files
committed
add "/**/" operator; readme updates
1 parent 864f27d commit fb5304e

File tree

8 files changed

+450
-152
lines changed

8 files changed

+450
-152
lines changed

.eslintrc

+159-5
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,163 @@
1919
"no-undef": 1 ,
2020
"no-console" : 0
2121
},
22-
"env": {
23-
"es6": true,
24-
"node": true
25-
},
26-
"extends": "eslint:recommended"
22+
"extends": "eslint:recommended" ,
23+
"globals" : {
24+
"nlapiDecrypt" : false ,
25+
"nlapiCreateSearch" : false ,
26+
"nlapiCopyRecord" : false ,
27+
"nlapiLoadRecord" : false ,
28+
"nlapiCreateRecord" : false ,
29+
"nlapiSubmitRecord" : false ,
30+
"nlapiDeleteRecord" : false ,
31+
"nlapiSearchRecord" : false ,
32+
"nlapiSearchGlobal" : false ,
33+
"nlapiSearchDuplicate" : false ,
34+
"nlapiTransformRecord" : false ,
35+
"nlapiVoidTransaction " : false ,
36+
"nlapiLookupField" : false ,
37+
"nlapiSubmitField" : false ,
38+
"nlapiAttachRecord" : false ,
39+
"nlapiDetachRecord" : false ,
40+
"nlapiResolveURL" : false ,
41+
"nlapiSetRedirectURL" : false ,
42+
"nlapiRequestURL" : false ,
43+
"nlapiGetContext" : false ,
44+
"nlapiGetUser" : false ,
45+
"nlapiGetRole" : false ,
46+
"nlapiGetDepartment" : false ,
47+
"nlapiGetLocation" : false ,
48+
"nlapiGetSubsidiary" : false ,
49+
"nlapiGetRecordType" : false ,
50+
"nlapiGetRecordId" : false ,
51+
"nlapiSendEmail" : false ,
52+
"nlapiSendCampaignEmail" : false ,
53+
"nlapiSendFax" : false ,
54+
"nlapiGetField" : false ,
55+
"nlapiGetMatrixField" : false ,
56+
"nlapiGetLineItemField" : false ,
57+
"nlapiGetLineItemMatrixField" : false ,
58+
"nlapiGetFieldValue" : false ,
59+
"nlapiSetFieldValue" : false ,
60+
"nlapiGetFieldText" : false ,
61+
"nlapiSetFieldText" : false ,
62+
"nlapiGetFieldValues" : false ,
63+
"nlapiSetFieldValues" : false ,
64+
"nlapiGetFieldTexts" : false ,
65+
"nlapiSetFieldTexts" : false ,
66+
"nlapiGetMatrixValue" : false ,
67+
"nlapiSetMatrixValue" : false ,
68+
"nlapiGetCurrentLineItemMatrixValue" : false ,
69+
"nlapiSetCurrentLineItemMatrixValue" : false ,
70+
"nlapiGetLineItemMatrixValue" : false ,
71+
"nlapiGetLineItemValue" : false ,
72+
"nlapiGetLineItemDateTimeValue" : false ,
73+
"nlapiSetLineItemValue" : false ,
74+
"nlapiSetLineItemDateTimeValue" : false ,
75+
"nlapiGetLineItemText" : false ,
76+
"nlapiFindLineItemValue" : false ,
77+
"nlapiFindLineItemMatrixValue" : false ,
78+
"nlapiGetMatrixCount" : false ,
79+
"nlapiGetLineItemCount" : false ,
80+
"nlapiInsertLineItem" : false ,
81+
"nlapiRemoveLineItem" : false ,
82+
"nlapiSetCurrentLineItemValue" : false ,
83+
"nlapiSetCurrentLineItemDateTimeValue" : false ,
84+
"nlapiSetCurrentLineItemText" : false ,
85+
"nlapiGetCurrentLineItemValue" : false ,
86+
"nlapiGetCurrentLineItemDateTimeValue" : false ,
87+
"nlapiGetCurrentLineItemText" : false ,
88+
"nlapiGetCurrentLineItemIndex" : false ,
89+
"nlapiSetLineItemDisabled" : false ,
90+
"nlapiGetFieldMandatory" : false ,
91+
"nlapiGetLineItemMandatory" : false ,
92+
"nlapiSetFieldMandatory" : false ,
93+
"nlapiSetLineItemMandatory" : false ,
94+
"nlapiSelectLineItem" : false ,
95+
"nlapiCommitLineItem" : false ,
96+
"nlapiCancelLineItem" : false ,
97+
"nlapiSelectNewLineItem" : false ,
98+
"nlapiRefreshLineItems" : false ,
99+
"nlapiInsertSelectOption" : false ,
100+
"nlapiRemoveSelectOption" : false ,
101+
"nlapiInsertLineItemOption" : false ,
102+
"nlapiRemoveLineItemOption" : false ,
103+
"nlapiIsLineItemChanged" : false ,
104+
"nlapiGetNewRecord" : false ,
105+
"nlapiGetOldRecord" : false ,
106+
"nlapiCreateError" : false ,
107+
"nlapiCreateForm" : false ,
108+
"nlapiCreateList" : false ,
109+
"nlapiCreateAssistant" : false ,
110+
"nlapiLoadFile" : false ,
111+
"nlapiSubmitFile" : false ,
112+
"nlapiDeleteFile" : false ,
113+
"nlapiCreateFile" : false ,
114+
"nlapiMergeRecord" : false ,
115+
"nlapiPrintRecord" : false ,
116+
"nlapiXMLToPDF" : false ,
117+
"nlapiCreateTemplateRenderer" : false ,
118+
"nlapiCreateEmailMerger" : false ,
119+
"nlapiLogExecution" : false ,
120+
"nlapiScheduleScript" : false ,
121+
"nlapiOutboundSSO" : false ,
122+
"nlapiLoadConfiguration" : false ,
123+
"nlapiSubmitConfiguration" : false ,
124+
"nlapiStringToDate" : false ,
125+
"nlapiDateToString" : false ,
126+
"nlapiAddDays" : false ,
127+
"nlapiAddMonths" : false ,
128+
"nlapiFormatCurrency" : false ,
129+
"nlapiEncrypt" : false ,
130+
"nlapiEscapeXML" : false ,
131+
"nlapiStringToXML" : false ,
132+
"nlapiXMLToString" : false ,
133+
"nlapiValidateXML" : false ,
134+
"nlapiSelectValue" : false ,
135+
"nlapiSelectValues" : false ,
136+
"nlapiSelectNode" : false ,
137+
"nlapiSelectNodes" : false ,
138+
"nlapiExchangeRate" : false ,
139+
"nlapiInitiateWorkflow" : false ,
140+
"nlapiInitiateWorkflowAsync" : false ,
141+
"nlapiTriggerWorkflow" : false ,
142+
"nlapiCreateCurrentLineSubrecord" : false ,
143+
"nlapiEditCurrentLineItemSubrecord" : false ,
144+
"nlapiRemoveCurrentLineItemSubrecord" : false ,
145+
"nlapiViewCurrentLineItemSubrecord" : false ,
146+
"nlapiViewLineItemSubrecord" : false ,
147+
"nlapiGetCache" : false ,
148+
"createSubrecord" : false ,
149+
"editSubrecord" : false ,
150+
"removeSubrecord" : false ,
151+
"viewSubrecord" : false ,
152+
"nlobjRecord" : false ,
153+
"nlobjConfiguration" : false ,
154+
"nlobjFile" : false ,
155+
"nlobjSearchFilter" : false ,
156+
"nlobjSearchColumn" : false ,
157+
"nlobjSearchResult" : false ,
158+
"nlobjContext" : false ,
159+
"nlobjError" : false ,
160+
"nlobjServerResponse" : false ,
161+
"nlobjResponse" : false ,
162+
"nlobjRequest" : false ,
163+
"nlobjPortlet" : false ,
164+
"nlobjList" : false ,
165+
"nlobjForm" : false ,
166+
"nlobjAssistant" : false ,
167+
"nlobjField" : false ,
168+
"nlobjSubList" : false ,
169+
"nlobjColumn" : false ,
170+
"nlobjTab" : false ,
171+
"nlobjAssistantStep" : false ,
172+
"nlobjFieldGroup" : false ,
173+
"nlobjButton" : false ,
174+
"nlobjSelectOption" : false ,
175+
"nlapiGetLogin" : false ,
176+
"nlapiGetJobManager" : false ,
177+
"nlapiYieldScript" : false ,
178+
"nlapiLoadSearch" : false ,
179+
"nlapiDisableField" : false
180+
}
27181
}

README.md

+35-9
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,25 @@ _PS: This is actually also a gulp plugin._
1212
```bash
1313
npm install nscabinet
1414
```
15-
- Install the __nscabinet restlet__ bundle in your netsuite account (or manually create the script using the file in the repo)
15+
- Install the __nscabinet restlet__ bundle in your netsuite account (or manually create the script using the file in the repo) *
1616

1717
- Create a `nsconfig.json` file in the root of you project with at least __email__ , __password__, __account__, __script__ number and __deployment__ number.
1818

1919
- Use it with gulp or with the CLI (see CLI section below)
20+
2021

2122
```javascript
2223
var nscabinet = require('nscabinet');
2324
gulp.src('myProject/dist/**/*.js').pipe(nscabinet({ rootPath : '/Templates' }));
2425
```
26+
_(*) if installing from the bundle, the minor version must match your current version of nscabinet_
27+
28+
---
2529

2630
## Accepted input ways
2731

28-
The parameters may be stored in config files, in environment variables, or passed directly.
32+
The parameters may be stored in config files, in environment variables,
33+
or passed directly as object.
2934

3035
For environment variables, prefix the options with "NSCONF_" and write in uppercase.
3136

@@ -41,7 +46,6 @@ The following priority is taken for each parameter (using `_.extend`)
4146

4247
For instance, let's say you call `nscabinet({ account : '1234' })`. Even if no e-mail is supplied, we also look up in the sources listed above for it. You may set a `nsconfig.json` for the project without the password, setting the latter machine-wise using an environment variable.
4348

44-
For more info see [nsconfig](https://github.com/suiteplus/nsconfig).
4549

4650
## Common parameters
4751

@@ -53,13 +57,21 @@ __Connection__
5357

5458
* `role` defaults to the account's default role.
5559

60+
* `account`
61+
62+
* `email`
63+
64+
* `password`
65+
66+
* `script`
67+
5668
* `deployment` defaults to 1.
5769

5870
__Path__
5971

6072
* `rootPath` sets the root path on the server. Defaults to `/SuiteScripts`. Must begin with `/`.
6173

62-
Example: Upload file with path `img/image.jpg` with rootPath `/Templates` will "upsert" the file
74+
Example: Upload file with path `img/image.jpg` to rootPath `/Templates` will "upsert" the file
6375
onto '/Templates/img/image.jpg'.
6476

6577
## nscabinet.upload
@@ -96,10 +108,17 @@ nscabinet.download(['MyProject/*.js','/Web Site Hosting Files/My Site/*.html'])
96108

97109
* `files` file selector (one or many).
98110

99-
* `*` is accepted on the file part. The restlet then runs a file search in which `*` is replaced with `%`.
111+
* `*` is accepted on the file part. The restlet then runs a file search by name
112+
in which `*` is replaced with `%`.
100113

101114
* Paths are also relative to `opts.rootPath`. If a file selector begins with `/`, files will be queried
102115
by absolute path in netsuite, but saved locally inside the `cabinet_root` folder.
116+
117+
* If a path has `/**/`, a recursive search will be done. This can be used to search
118+
just by file name, regardless of path.
119+
120+
* (PS: While the syntax is similar, don't expect full glob funcionality. It's not a glob!)
121+
103122

104123
* `opts` Common options.
105124

@@ -132,7 +151,7 @@ $ nscabinet d "remote.txt" -p "/Downloads"
132151
$ nscabinet d "remote.txt"
133152
```
134153

135-
Takes in the same arguments (lowercased).
154+
Takes in the same arguments (always lowercased).
136155

137156
Encase path parameters in string quotes (avoids bash expansion).
138157

@@ -148,8 +167,15 @@ $ Views nscabinet u view.html
148167
Uploading Views/view.html to /SuiteScripts
149168
```
150169

151-
## Gulp tasks
170+
## Contributing
152171

153-
**gulp/development.js** is for straightforward tasks: lint and unit tests.
172+
- If you add new funcionality, also add a new test!
173+
174+
At the time tests are ran locally. To set up the tests:
154175

155-
**gulp/test.js** is for more involved things.
176+
- Install the restlet in an available account;
177+
178+
- Set up nsconfig.json, pointing to that account; Don't forget to set
179+
a rootPath to where the tests will play around and create its lots of files;
180+
181+
- Run 'gulp'

gulp/development.js

+3-12
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,22 @@
11
'use strict';
22

33
var gulp = require('gulp'),
4-
gulpLoadPlugins = require('gulp-load-plugins'),
5-
plugins = gulpLoadPlugins(),
6-
appRoot = process.cwd(),
7-
paths = {
8-
js: [
9-
appRoot + '/reslet/**/*.js',
10-
appRoot + '/src/**/*.js'
11-
],
12-
jsTest: [appRoot + '/test/**/*-test.js']
13-
};
4+
plugins = require('gulp-load-plugins')();
145

156
gulp.task('env:development', function () {
167
process.env.NODE_ENV = 'development';
178
});
189

1910
gulp.task('dev:eslint', function () {
20-
return gulp.src(paths.js)
11+
return gulp.src(['restlet/*.js', 'src/*.js'])
2112
.pipe(plugins.plumber())
2213
.pipe(plugins.eslint())
2314
.pipe(plugins.eslint.format())
2415
.pipe(plugins.eslint.failAfterError());
2516
});
2617

2718
gulp.task('dev:mocha', () => {
28-
gulp.src(paths.jsTest)
19+
gulp.src('test/*-test.js')
2920
.pipe(plugins.plumber())
3021
.pipe(plugins.mocha());
3122
});

package.json

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "nscabinet",
3-
"version": "0.5.0-pre",
3+
"version": "0.5.0",
44
"description": "Upload and download files from netsuite.",
55
"engines": {
66
"node": ">=4.x",
@@ -10,10 +10,6 @@
1010
"bin": {
1111
"nscabinet": "./src/cli.js"
1212
},
13-
"scripts": {
14-
"test": "gulp test",
15-
"coveralls": "cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"
16-
},
1713
"repository": {
1814
"type": "git",
1915
"url": "git+https://github.com/suiteplus/nscabinet.git"

0 commit comments

Comments
 (0)